system: [SYSTEM]

user: 4. 实验结果与分析 4.1. 实验数据集 在本实验中，数据集分为两大类：仿真数据集和真实数据集。其中，仿真数据集主要模拟了erdos_renyi模型，BA模型，随机生长模型，森林火灾模型。真实数据集则是来自斯坦福官网的SNAP数据集，包括了wiki-Vote，ca-GrQc，ca-HepTh，p2p-Gnutella08这4个数据集。原始数据txt下载后如图1所示。 由于真实的数据集数据量很大，为了使算法性能达到最佳，对数据集进行如下预处理： 1) 数据集全部作为无向图处理； 2) 将数据集的真实节点从1开始重新编号； 3) 将真实网络删去10%的边(连接边的两个节点的度至少为1，否则有的指标会产生除零异常)，边数记为n，记下每条边对应的节点对，作为测试集label为1的样本。剩下的节点对全部都未连接，作为训练集label为0的样本。 4.2. 评价指标 1) 正确率：正确预测的样本数占整个样本数的比率。 2) 识别准确度 accuracy = TP + FP TP + TN + FP + FN × 100 % (13) TP (True Positives)：表示正确肯定的分类数。 TN (True Negatives)：表示正确否定的分类数。 FP (False Positives)：表示错误肯定的分类数。 FN (False Negatives)：表示错误否定的分类数。 3) 识别精确率 Precision = TP TP + FP × 100 % (14) 图1. SNAP数据集原始文本示意图 4) 反馈率(召回率) Recall = TP TP + TN × 100 % (15) 5) 真正类率(灵敏度) TruePositiveRate = TP TP + FN × 100 % (16) 6) 假正类率(特异性) FalsePositiveRate = FP FP + TN × 100 % (17) 7) ROC曲线 ROC曲线，是一个图形化说明二进制分类器系统的性能的工具，它的判别阈值是变化的。纵轴为灵敏度，横轴为特异性。曲线的绘制真正类率(TPR)创建对假正类率(FPR)在不同的阈值设置。该曲线下的积分面积能衡量模型的优劣，ROC下的积分面积值越接近1则该模型效果越好。以图2为例，最左侧曲线下面积明显最大，因此其分类效果最好，右侧粗线次之。如果ROC曲线下面积在1~0.85，则认为分类器表现优秀，在0.85~0.7，认为表现良好，0.7~0.5认为有待改善，小于0.5，那可以认为分类器效果比随机猜测还要差。 4.2. 验证算法 本文将链接预测问题转化为一个分类问题来求解，使用的分类算法包括：最近邻节点算法(KNN)、朴素贝叶斯(NaiveBayes)、多层感知器神经网络(MLP)、支持向量机(SVM)、决策树(DT)，依次来验证所选择特征的有效性，以及基于机器学习算法在此问题中的可行性。 4.3. 实验结果 4.3.1. 仿真数据实验结果 1) Erdos_Renyi模型 在如表1描述的5000节点的Erdos_Renyi模型上进行实验，结果如表2、图3所示，实验效果没有随着拓扑结构变得稠密而有很大改进，如图4所示，MLP，SVM，DT算法表现良好，NB表现不稳定，KNN算法表现不佳，此模型最优算法为DT，所有算法正确率均能达到半数以上。 Table 1 ER model generation networ 名称 类型 节点数 边数 Erdos_Renyi 随机图 5000 8743 表1. ER模型生成网络说明 Table 2 Experimental results of ER mode 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.6462 0.5809 1.0 0.6460 NB 0.6439 0.7180 1.0 0.6035 MLP 0.5974 0.7020 0.5332 0.7664 SVM 0.5301 0.7329 0.3593 0.8114 DT 0.6788 0.7386 0.7048 0.7719 表2. ER模型实验结果 图2. ROC曲线示例 图3. 连接边的数量与识别结果的关系 图4. ER模型链接预测ROC曲线 2) BA模型 BA模型具有两个特性：1) 增长性，是指网络节点的数量不断增多；2) 优先连接机制，是指网络当中的新节点更倾向于和那些连接度较大的节点相连接，本文使用网络的说明如表3所示。 在如表3描述的5000节点的BA模型上进行实验，结果如表4、图5所示，随着图越来越稠密，测试集正确率也随之有小幅提升，从图6中可以得出，SVM和MLP都有优秀表现，MLP表现要更好一些，KNN在稀疏时表现一般，稠密时表现良好，DT和NB则表现不稳定。 3) 随机生长模型 在每一个时间t，从网络中随机添加节点，并形成一个新的完整的图，本文中使用的网络如表5中所述。 在5000初始节点的随机生长模型上，如表6和图7所示，随着图越来越稠密，测试集正确率也随之有小幅提升，SVM表现最好。ROC曲线面积，MLP和SVM都表现优秀，难分伯仲，DT表现良好，但是会随着更加稠密而略有下降，KNN表现一般，NB则表现不稳定，如图8所示。因此，该模型链接预测最好的方法是MLP。 4) 森林生长模型 森林生长模型的图模型，在某一个时间，在图中添加新的顶点，本文中所使用网络如表7所述。 Table 3 BA model generation networ 名称 类型 初始节点数 每个节点带来的边数 Barabasi-Albert 无标度网络 5000 3 表3. BA模型生成网络说明 Table 4 Experimental results of BA mode 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.7071 0.7132 0.4209 0.9844 NB 0.6191 0.9388 0.2395 0.9945 MLP 0.8600 0.9448 0.7645 0.9448 SVM 0.5967 0.9071 0.2001 0.9677 DT 0.4903 0.6989 0.8999 0.4947 表4. BA模型实验结果 图5. 出度与识别结果的关系 图6. BA网络模型链接预测ROC曲线 如表8与图9所示，在5000初始节点的森林火灾模型中，随着图越来越稠密，测试集正确率整体变化不大，ROC曲线面积，整体略有下降，其中MLP一直表现最好。各模型结果如图10中所示，MLP和SVM都表现优秀，DT，KNN表现有待提升，NB表现不稳定。因此，该模型链接预测最好的方法是MLP。 Table 5 Random growth model generation networ 名称 类型 初始节点数 每个节点带来的边数 Growing_Random 生长网络 5000 2 表5. 随机生长模型生成图说明 Table 6 Experimental results of random growth mode 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.7608 0.6424 0.9279 0.7957 NB 0.3595 0.5520 0.1842 0.9946 MLP 0.5724 0.9274 0.4605 0.9914 SVM 0.3576 0.9318 0.1722 0.9942 DT 0.6576 0.8695 0.5706 0.9777 表6. 随机生长模型实验结果 图7. 添加边数与识别结果的关系 图8. 随机生长网络模型链接预测ROC曲线 Table 7 Forest growth model generation networ 名称 类型 节点数 正向燃烧的概率 每一步选择的节点数 Forest_Fire 生长网络 5000 0.1 2 表7. 森林生长模型生成图说明 Table 8 Experimental results of Forest growth mode 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.7024 0.7876 0.6422 0.7301 NB 0.6482 0.7416 0.2982 0.9941 MLP 0.7218 0.8372 0.4735 0.9405 SVM 0.6326 0.8214 0.2680 0.9902 DT 0.7126 0.7910 0.5208 0.8451 表8. 森林生长模型实验结果 4.3.2. SNAP数据实验结果 在仿真模型取得不错的结果以后，针对斯坦福大学的SNAP实验数据，进行了以下实验。 1) CA-GrQc 在表9中描述的CA-GrQc数据集上进行测试，结果如表10、图11所示，测试集正确率和ROC曲线下面积，五种方法表现都十分优秀，由于MLP的测试集正确率和ROC曲线下面积都为第二好，所以此数据集链接预测最优方法为MLP。 图9. 选择节点数与识别结果的关系 图10. 森林生长模型链接预测ROC曲线 Table 9 CA-GrQc networ 名称 节点数 边数 说明 CA-GrQc 5，242 14，496 Arxiv普通相关性合作网络 表9. CA-GrQc网络图说明 Table 1 0 Experimental results of CA-GrQc networ 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.9593 0.9698 0.9323 0.9854 NB 0.9641 0.9634 0.9316 0.9963 MLP 0.9585 0.9872 0.9206 0.9963 SVM 0.9185 0.9887 0.8391 0.9975 DT 0.9517 0.9467 0.9102 0.9925 表10. CA-GrQc网络实验结果 图11. CA-GrQc数据集链接预测ROC曲线 2) CA-HepTh 在表11中描述的CA-HepTh数据集上进行测试，结果表12，图12所示，测试集正确率KNN相对最低，为0.86，其他四种方法表现都在0.9以上，五种方法都十分优秀。ROC曲线下面积，五种方法表现也都十分优秀。由于MLP的测试集正确率和ROC曲线下面积都为最好，所以此数据集链接预测最优方法为MLP。 3) Wiki-Vote 在表13描述的Wiki-Vote数据集上进行测试，结果如表14、图13所示，发现测试集正确率NB相对最低，为0.84，其他四种方法表现都在0.9左右，五种方法都十分优秀。ROC曲线下面积，五种方法表现也都十分优秀。由于MLP的测试集正确率和ROC曲线下面积都为最好，所以此数据集链接预测最优方法为MLP。 4) p2p-Gnutella08 在表15描述的p2p-Gnutella08数据集上进行测试，结果如表16、图14所示，测试集正确率相比前三种有所下降，其中MLP和DT在0.75以上，表现良好，其余三种在0.7以内，有待提高。ROC曲线 Table 1 1 CA-HepTh networ 名称 节点数 边数 说明 CA-HepTh 9，877 25，998 Arxiv高能物理合作网络 表11. CA-HepTh网络图说明 Table 1 2 Experimental results of CA-HepTh networ 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.8693 0.9472 0.9608 0.8435 NB 0.9380 0.9488 0.8799 0.9956 MLP 0.9455 0.9860 0.8964 0.9940 SVM 0.9303 0.9805 0.8637 0.9964 DT 0.9438 0.9600 0.8971 0.9894 表12. CA-HepTh实验结果 Table 1 3 Wiki-Vote networ 名称 节点数 边数 说明 Wiki-Vote 7，115 103，689 维基百科一对一投票网络 表13. Wiki-Vote网络图说明 Table 1 4 Experimental results of Wiki-Vote networ 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.9195 0.9581 0.9058 0.9313 NB 0.8477 0.9767 0.7085 0.9818 MLP 0.9125 0.9839 0.8526 0.9686 SVM 0.8974 0.9785 0.8398 0.9492 DT 0.8999 0.8827 0.8396 0.9546 表14. Wiki-Vote实验结果 Table 1 5 P2p-Gnutella08 networ 名称 节点数 边数 说明 p2p-Gnutella08 6，301 20，777 2002年8月8日的Gnutella对等网络 表15. p2p-Gnutella08网络图说明 Table 1 6 Experimental results of Wiki-Vote networ 方法 正确率 ROC曲线面积 召回率 精确率 KNN 0.6978 0.7625 0.8874 0.6434 NB 0.6295 0.7352 0.2666 0.9719 MLP 0.7647 0.9116 0.6367 0.8558 SVM 0.6076 0.9070 0.2262 0.9533 DT 0.7769 0.8455 0.7141 0.8167 表16. Wiki-Vote实验结果 图12. CA-HepTh数据集链接预测ROC曲线 图13. Wiki-Vote数据集链接预测ROC曲线 图14. CA-HepTh数据集链接预测ROC曲线 下面积，KNN和NB在0.75左右，表现良好，DT表现优秀，MLP和SVM都在0.91，表现优秀。由于MLP的测试集正确率和ROC曲线下面积都为最好，所以此数据集链接预测最优方法为MLP。