基于贝叶斯理论的微博“僵尸粉”识别研究.doc

上传人:仙人指路1688 文档编号:3940908 上传时间:2023-03-28 格式:DOC 页数:30 大小:744.50KB
返回 下载 相关 举报
基于贝叶斯理论的微博“僵尸粉”识别研究.doc_第1页
第1页 / 共30页
基于贝叶斯理论的微博“僵尸粉”识别研究.doc_第2页
第2页 / 共30页
基于贝叶斯理论的微博“僵尸粉”识别研究.doc_第3页
第3页 / 共30页
基于贝叶斯理论的微博“僵尸粉”识别研究.doc_第4页
第4页 / 共30页
基于贝叶斯理论的微博“僵尸粉”识别研究.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于贝叶斯理论的微博“僵尸粉”识别研究.doc》由会员分享,可在线阅读,更多相关《基于贝叶斯理论的微博“僵尸粉”识别研究.doc(30页珍藏版)》请在三一办公上搜索。

1、基于贝叶斯理论的微博“僵尸粉”识别研究高中组 数学 个人项目摘 要随着微博迅速发展,微博“僵尸粉”(机器批量生成的恶意用户)泛滥,污染微博数据,危害网络安全,但现有识别方法大多不能有效识别僵尸粉、难以适应其更新换代. 本研究基于贝叶斯理论建立七个包含不同样本特征的微博僵尸粉识别模型,并根据ROC曲线和AUC值选出识别能力最佳的模型,最后利用MATLAB软件进行算例分析并制作用户界面. 研究分析表明:以用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值为样本特征的僵尸粉识别模型识别能力最佳,当概率阈值为0. 7时,其召回率和准确率分别达到92. 37%和98. 37%,识别效果良好.

2、关键词 微博“僵尸粉”,贝叶斯理论,识别模型 目录摘 要I1. 前言11.1 课题由来及意义11.2 相关研究现况21.3 贝叶斯理论简介22. 模型部分32.1 模型符号说明32.2 模型假设32.3 基于贝叶斯理论的识别模型42.4 基于最小风险的概率阈值选取52.5 模型评价指标72.5.1 ROC曲线和AUC值72.5.2 召回率、准确率和值83. 算例分析83.1 基于ROC曲线和AUC值的模型识别能力评价93.2 模型检验114. 用户界面制作125. 结论与展望145.1 结论145.2 展望14致谢16参考文献17附录181. 前言1.1 课题由来及意义随着互联网以及信息时代的

3、发展,微博(MicroBlog简称)已成为网络社交平台中炙手可热的焦点,截止2013年3月,仅新浪门户下的微博注册用户就已超过5亿. 微博作为用户即时分享交流的平台,部分企业营销的新路径,社会学等研究的重要依据,对于网络生活、经济发展和科学研究有着重大影响. 在微博中,粉丝是对某一博主保持持续关注的群体,粉丝数的增加使得博主的影响力逐步扩大,由此引发了粉丝数量的竞争和一场虚假粉丝(即僵尸粉)的买卖风波1. 僵尸粉是由计算机程序批量生成的恶意注册用户,它们有的以增加特定用户的粉丝数为目的,有的以散布广告信息为目的,其行为均由程序操控,不具有人的情感. 僵尸粉带来的虚假关注度大大减弱了微博平台信息

4、的可信度,影响了微博营销的公正诚信,增加了科学研究中数据采集过滤的难度,阻碍了微博这一新型社交平台的发展. 对于僵尸粉的泛滥新浪微博官方已采取相关措施2,过滤了部分僵尸粉. 然而“上有政策,下有对策”,从开始时“无头像无微博无粉丝”的低级僵尸,到如今逼近真实用户的高级僵尸,僵尸粉也在不断更新升级. 一些剔除僵尸粉的应用软件也应运而生3,但它们仅仅以简单的硬性标准过滤去一些不活跃的粉丝用户,对稍高级的僵尸粉依然束手无策,且很可能将新注册的用户误判为僵尸粉. 根据对淘宝“刷粉”店铺和卖家的调查,目前新浪门户关注型僵尸粉1大致分为四个级别:低级僵尸粉(一般无头像、无粉丝、无微博,现大多已被新浪官方屏

5、蔽),初级粉(一般有头像,无粉丝,无微博,部分可被新浪官方屏蔽),高级粉(有头像,有粉丝,有微博,新浪官方无法识别)和顶级粉(接近真实用户,且有部分“微博达人”新浪门户对活跃用户的奖励机制). 本研究基于贝叶斯理论建立微博僵尸粉识别模型,通过大量实际样本数据学习僵尸粉(主要针对初级粉和高级粉)和真实用户的基本特征,并投入实际的识别应用,具有较好的理论和实际应用意义. 1.2 相关研究现况针对僵尸粉的泛滥,微博官方与非官方都采取了一定措施进行过滤. 但现有方法仅能除去部分低级的僵尸粉,且很容易对新注册的真实用户造成误判. 僵尸粉问题也引起一些学者的关注,并纷纷进行探讨. 文献1对僵尸粉的概念和基

6、本类型进行了梳理,分析他们的行为特征,并提出基本识别方法,为微博僵尸粉的识别和清理奠定基础. 文献4根据微博用户存在的形式和用户间关系的特征,提出了一种降低僵尸粉影响的方法. 文献5提出一种基于微博注册用户名特征提取的智能分类方法,准确率达92%,但它对除用户名外的信息没有很好地利用. 贝叶斯理论是统计学决策方法的基础之一,通过采样,修正先验信息来减少事物的不确定性6. 它因具有较强的信息融合能力而广泛应用于分类、预测、决策等领域. 其中,在垃圾邮件过滤中贝叶斯方法表现出了很好的效果,较其他方法有较大的优势7. 综上所述,目前缺少有效识别僵尸粉的方法,本文将基于贝叶斯理论建立微博僵尸粉识别模型

7、,并通过算例分析来验证模型的有效性. 1.3 贝叶斯理论简介6贝叶斯理论是统计学决策方法的基础之一,它通过采样,不断修正先验信息,从而减少事物的不确定性,在此基础上制定最优决策. 它不仅仅承认和利用已有的知识,甚至包括主观的判断和直觉,而且它主张利用客观的采样信息修改并丰富已有的知识,因此贝叶斯统计推断过程类似于成人的学习过程,即知识的综合与更新过程. 假设个事件是互斥的,为另一给定事件,贝叶斯定统计推断的表达式为: (1)其中,表示事件的先验概率;表示事件在事件发生的条件下发生的概率,称为似然概率,通常表示采样信息;表示事件发生的概率,且;表示事件发生的后验概率,它综合了先验概率和似然概率(

8、采样信息). 2. 模型部分由于僵尸粉的产生由机器操控,且具有一定的目的性,它们的特征与真实用户有着本质的区别. 本文作者在观察统计大量僵尸粉与真实用户的基本信息(头像、关注数、粉丝数、微博数)后,发现僵尸粉与真实用户在头像、关注数、粉丝数和关注数的比值等方面有较大的差异. 文献1通过数据分析得出两类用户间,关注数和微博数的比值、微博数和粉丝数的比值等特征参数有明显的区别. 因此,从用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值、微博数和粉丝数的比值这五项特征中选取部分或全部作为样本特征,建立7个基于贝叶斯理论的识别模型. 用ROC曲线和AUC值选出识别能力最佳的模型并检验其识别

9、效果. 2.1 模型符号说明(1)表示真实用户的样本集,表示僵尸粉的样本集. (2)将用户头像分为类,分别用表示;(3)将用户关注数分为类,分别用表示;(4)将用户粉丝数和关注数的比值分为类,用表示;(5)将用户关注数和微博数的比值分为类,用表示;(6)将用户微博数和粉丝数的比值分为类,用表示. 2.2 模型假设基于新浪微博平台的样本对用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值、微博数和粉丝数的比值这五项特征进行相关度分析,其两两之间的相关度如表1所示. 表1:相关度矩阵头像关注数粉丝数和关注数的比值关注数和微博数的比值微博数和粉丝数的比值头像1. 0000-0. 33280

10、. 06410. 17190. 0305关注数-0. 33281. 0000-0. 0632-0. 16700. 1074粉丝数和关注数的比值0. 0641-0. 06321. 0000-0. 0166-0. 0365关注数和微博数的比值0. 1719-0. 1670-0. 01661. 0000-0. 1863微博数和粉丝数的比值0. 03050. 1074-0. 0365-0. 18631. 0000由表1可知:用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值、微博数和粉丝数的比值这五项特征两两相关度绝对值大多不超过0.2,仅头像和关注数的相关度达到-0.3328,故假设它们均

11、互相独立. 2.3 基于贝叶斯理论的识别模型根据贝叶斯理论,一个样本特征为的未知用户属于僵尸粉和真实用户的后验概率分别为: (2) (3)其中,分别为该用户属于僵尸粉、真实用户的先验概率;分别为该用户属于僵尸粉、真实用户的似然概率. 选取不同的样本特征建立七个僵尸粉识别模型,其中:模型一的样本特征包括用户头像、关注数、粉丝数和关注数的比值;模型二的样本特征包括用户头像、关注数、关注数和微博数的比值;模型三的样本特征包括用户头像、关注数、微博数和粉丝数的比值;模型四的样本特征包括用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值;模型五的样本特征包括用户头像、关注数、粉丝数和关注数的比

12、值、微博数和粉丝数的比值;模型六的样本特征包括用户头像、关注数、关注数和微博数的比值、微博数和粉丝数的比值;模型七的样本特征包括用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值、微博数和粉丝数的比值. 在模型一中,对某一样本特征为的未知用户,根据假设,用户头像、关注数、粉丝数和关注数的比值这三个特征相互独立,故: (4)同理: (5)这里,与分别表示僵尸粉和真实用户中头像分类为的概率;与分别表示僵尸粉和真实用户中关注数分类为的概率;与分别表示僵尸粉和真实用户中粉丝数和关注数的比值分类为的概率. 令式(2)中,将式(4)、式(5)代入式(2)和式(3)中即可得出该用户属于僵尸粉的后验

13、概率和该用户属于真实用户的后验概率. 类似地,在模型二、模型三、模型四、模型五、模型六、模型七中可得到某未知用户属于僵尸粉的后验概率与其属于真实用户的后验概率七个模型仅样本特征不同,其计算方法均相同. 2.4 基于最小风险的概率阈值选取8在基于贝叶斯理论的模型中,计算出某未知用户属于僵尸粉的后验概率后,还需要决策是否将该用户判定为僵尸粉. 这里采用概率阈值的方法. 当某样本特征为的未知用户属于僵尸粉的后验概率不小于某一概率阈值时,将其判定为僵尸粉. 以下根据最小风险原则确定僵尸粉识别的概率阈值. 对于每一次判定,人们总要承受其错判可能带来的损失,并希望这个损失最小. 因此,引入损失因子的概念.

14、 记将僵尸粉误判为真实用户的损失因子为,将真实用户误判为僵尸粉的损失因子为,且令,. (6)由于正确的判定不需要承担损失,故将特征为的未知用户判定为僵尸粉的期望损失 (7)同理,将特征为的未知用户判定为真实用户的期望损失 (8)当 (9)时,该用户判定为僵尸粉的期望损失小于将其判断为真实用户的期望损失,根据最小风险的原则,应将其判定为僵尸粉. 又式(2)和式(3): (10)将式(6)、式(7)、式(8)和式(10)代入式(9)中,可得当时,应将该特征为未知用户判定为僵尸粉. 因而在数值上即为概率阈值. 即表明使用者认为两种误判造成的损失一样大;越大,即越大,表明使用者越不能接受将真实用户误判

15、为僵尸粉的错误;越小,即越小,表明使用者越不能接受将僵尸粉误判为真实用户的错误. 2.5 模型评价指标9为选出以上七个微博僵尸粉识别模型中识别能力最佳的模型,引入ROC曲线(Receiver Operating Characteristic Curve)和AUC(Area Under the ROC Curve)值10-11;并引入召回率(Recall)、准确率(Precision)和值三个评价指标以检验该最佳模型的识别效果. 假设某组未知用户识别情况如表2所示. 表2:未知用户识别情况 识别类别实际类别僵尸粉真实用户僵尸粉NFFNFT真实用户NTFNTT表2中,NFF表示将实际僵尸粉正确判为

16、僵尸粉的个数,NFT表示将实际僵尸粉错误判为真实用户的个数,NTF表示将实际真实用户错误判为僵尸粉的个数,NTT表示将实际真实用户正确判为真实用户的个数. 2.5.1 ROC曲线和AUC值ROC曲线是一个全面反映模型分类性能的指标,它不受模型概率阈值以及未知用户中实际类别分布的影响. ROC关注正例判对率和正例判错率两个指标. 其中, (11)代表实际僵尸粉中,被正确判定为僵尸粉的比例,越大,模型识别效果越好. 而 (12)代表真实用户中,被错判为僵尸粉的比例,越小,模型识别效果越好. 在ROC平面内,横轴表示,纵轴表示. 选取不同的概率阈值以得到不同的与的组合,绘制出单位正方形内的ROC曲线

17、. 定性地看,该曲线向左上方凸的程度越大,该模型识别效果越好. 用单位正方形中ROC曲线下方面积即AUC值定量表示该曲线左上凸的程度,即AUC值越大,模型识别能力越佳. 2.5.2 召回率、准确率和值召回率考察模型找全僵尸粉的能力,越大,漏网的僵尸粉越少;准确率考察模型找对僵尸粉的能力,越大,被误判为僵尸粉的真实用户就越少;值是召回率和准确率的调和平均数,它综合考虑了召回率和准确率. 3. 算例分析本文作者通过从多家网店购买不同级别的新浪僵尸粉,得到有效的新浪僵尸粉样本1425个;通过网络调查问卷的形式征集新浪真实用户样本,收回来自上海、北京、浙江、江苏等八个地区的110份有效问卷,征集到有效

18、的新浪真实用户样本413个. 由于对新浪僵尸粉的真实数量和概率信息目前无清晰认识,故将模型中的先验概率设定为,即假设僵尸粉出现的几率与真实用户出现的几率是相等的. 此外,令模型中(1)即将头像分为3类:为真人照片的头像、其他头像以及无头像,分别用表示;(2)即将关注数(新浪普通用户关注上限为2000)分为20类,用表示,且 (3)即将粉丝数和关注数的比值分为13类,用表示,且(4)即将关注数和微博数的比值分为20类,用表示,且(5)将微博数和粉丝数的比值分为20类,用表示,且本节基于新浪微博的样本数据,利用MATLAB软件12进行算例分析,选出识别能力最优的模型并检验其识别效果. 3.1 基于

19、ROC曲线和AUC值的模型识别能力评价建立样本库,对7个僵尸粉识别模型分别运用十折交叉验证法(10-fold cross-validation)13 进行测试,即将样本库随机等分成10份,每次用9份作训练集,1份作测试集,循环10次. 采用文献14中的算法用MATLAB软件在一个ROC平面内绘制出它们的ROC曲线,如图1所示;并计算出单位正方形内曲线下部的面积即AUC的值,如图2所示. 模型一模型二模型三模型四模型五模型六模型七图1:七个识别模型的ROC曲线图2:七个识别模型的AUC值 由图1、图2可得到如下结论:(1)模型四(以用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值为样

20、本特征)的ROC曲线左上凸程度和AUC值最大,故其综合识别能力最强,而模型七(以用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值、微博数和粉丝数的比值为样本特征)的识别能力次之. (2)分别对比观察模型一和模型五、模型二和模型六、模型四和模型七,后者的样本特征中均比前者多了微博数和粉丝数的比值,但识别效果却不如前者. 说明微博数和粉丝数的比值这一样本特征不足以反映僵尸粉和真实用户的本质区别,且对识别造成了干扰. 因此样本特征的数量并非是模型识别能力的决定性因素,选出最合适贴切、能反映用户本质的样本特征才是建立有效识别模型的关键. 3.2 模型检验虽然十折交叉验证法的每一组训练集和测

21、试集都没有重复,但由于采样的局限性,僵尸粉样本会有同源、相似的情况,故同时使用样本库中的数据进行训练和测试的结果不能代表模型的真实识别效果. 本节使用样本库中的数据来识别一批全新的僵尸粉和真实用户,以检验模型的真实识别效果. 通常,人们认为将一个僵尸粉判定为真实用户的损失不如将一个真实用户判定为僵尸粉的损失大,故一般僵尸粉识别的概率阈值在不同概率阈值下,模型四识别一批全新用户的召回率、准确率和值的变化如表3和图3所示. 表3:模型四在不同概率阈值下的识别效果概率阈值召回率准确率值0. 50. 93890. 94620. 94250. 60. 92370. 97580. 94900. 70. 9

22、2370. 98370. 95280. 80. 84730. 98230. 90980. 90. 74811. 00000. 8559图3:模型四在不同概率阈值下的召回率、准确率和值由表3、图3可得出以下结论:(1)召回率随概率阈值增大而呈减小趋势,准确率随概率阈值增大而呈增大趋势. 故在实际应用中,概率阈值视具体需求而定:对召回率要求较高时,适当调低概率阈值;对准确率要求较高时,适当调高概率阈值. (2)兼顾召回率与准确率的值在概率阈值时表现最好,此时,识别效果良好. 4. 用户界面制作利用MATLAB的GUI(Graphical User Interfaces)功能制作微博“僵尸粉”识别的

23、用户界面11,如图4所示. 图4:微博“僵尸粉”识别用户界面具体操作步骤如下:(1)选择两种误判(将真实用户误判为僵尸粉与将僵尸粉误判为真实用户)后果的严重程度,以根据实际需求确定概率阈值;(2)选择待识别用户的头像类型;(3)输入待识别用户的关注数、粉丝数和微博数;(4)点击“识别”按钮,识别结果将在界面右侧显示. 该用户界面简洁友好,直观地展现了本研究成果,并在一定程度上满足了用户的需求. 5. 结论与展望5.1 结论随着微博迅速发展,微博“僵尸粉”泛滥,阻碍微博发展,危害网络安全,但现有识别方法难以适应僵尸粉的更新升级、不能充分利用已有信息. 本研究基于贝叶斯理论建立“僵尸粉”识别模型,

24、利用MATLAB软件进行算例分析并制作用户界面,具有较强的理论意义和广阔的应用前景. 本研究主要成果如下:(1)基于贝叶斯理论建立七个包含不同样本特征的微博僵尸粉识别模型并根据ROC曲线和AUC值选出识别能力最佳的模型;(2)僵尸粉识别模型包含的样本特征的数量并不是决定模型识别能力的决定性因素,选出最合适贴切、能反映本质的样本特征才是建立有效识别模型的关键. 基于新浪微博平台,以用户头像、关注数、粉丝数和关注数的比值、关注数和微博数的比值为样本特征的模型综合识别能力最强,而微博数和粉丝数的比值这一样本特征不足以反映僵尸粉和真实用户的本质区别,反而对识别造成了干扰. (3)对于以用户头像、关注数

25、、粉丝数和关注数的比值、关注数和微博数的比值为样本特征的模型,值在概率阈值为0. 7时表现最好,此时召回率达到,准确率达到,值达到,识别效果良好. 由于召回率随概率阈值增大而呈减小趋势,准确率随概率阈值增大而呈增大趋势,在实际应用中,概率阈值视具体需求而定:对召回率要求较高时,适当调低概率阈值;对准确率要求较高时,适当调高概率阈值. 5.2 展望本研究中的样本特征仅基于用户的头像、关注数、粉丝数、微博数等基本信息,若能进一步获取用户的评论数、转发数等信息特征,识别效果将更好. 当通过软件制作、图像识别等技术将本研究投入实际应用时,在经过使用者反馈等形式后,可将识别后的未知用户加入样本库,实现样

26、本库的不断扩充和更新,以适应微博“僵尸粉”的更新升级,使识别更准确有效. 致谢感谢母校提供的研究场所和研究氛围. 感谢张老师全程细致的指导以及给予的支持和肯定. 感谢王昱提供的技术支持. 感谢父母和家人在背后至始至终的关怀和鼓励. 感谢郭怡洋同学在编程方面给予我的帮助. 感谢毛婕同学提供的宝贵建议. 感谢所有为我填写问卷的网友们. 参考文献1 于光, 于璇. 微博僵尸粉的行为特征和识别方法DB/OL. 2014-1-14. . 2 王婧. 名人停微博,僵尸粉遭围剿N. 青年报, 2010-9-13(A13). 3 王洋. 僵尸粉清理CP/OL. 新浪微博, 2014-1-14. 4 原福永,

27、冯静, 符茜茜, 等. 一种降低微博僵尸粉影响的方法J. 情报分析与研究, 2012(5):70-75. 5 方明, 方意. 一种新型智能僵尸粉甄别方法J. 计算机工程, 2013(4):190-193. 6 言茂松. 贝叶斯风险决策工程M. 清华大学出版社, 1989. 7 张铭锋, 李云春, 李 巍. 垃圾邮件过滤的贝叶斯方法综述J. 计算机应用研究, 2005(8):14-19. 8 石霞军, 林亚平, 陈治平. 基于最小风险的贝叶斯邮件过滤算法J. 计算机科学, 2002(8):50-51,46.9 秦锋, 杨波, 程泽凯. 分类器性能评价标准研究J. 计算机技术与发展, 2006(1

28、0):85-88.10 Bradley A P. The use of the area under the ROC curve in the evaluation of machine learning algorithmsJ. Pattern Recognition Society, 1997, 30(7):1145-1159.11 Fawcett T. ROC Graphs :Notes and practical considerations for researchersR. Palo Alto, CA: HP Laboratories, 2004.12 张志涌 等. 精通MATLA

29、B R2011aM. 北京航空航天大学出版社, 2011.13 张学农, 张立成. 基于简单贝叶斯的中英文垃圾邮件过滤的比较分析J. 计算机应用与软件, 2008(8):178-180,228.14 邹洪侠, 秦锋, 程泽凯, 等. 二类分类器的ROC曲线生成算法J. 计算机技术与发展, 2009, 19(6):109-112.附录附录1:相关度分析MATLAB程序A=xlsread(fansall. xls,sheet1,B2:E1839);label=xlsread(fansall. xls,sheet1,F2:F1839);a=1838;B=zeros(a,5);%计算所需要的数据for

30、 p=1:a B(p,1)=A(p,1); B(p,2)=A(p,2); B(p,3)=A(p,3)/(A(p,2)+1); B(p,4)=A(p,2)/(A(p,4)+1); B(p,5)=A(p,4)/(A(p,3)+1);endx=B(:,2);y=B(:,3);z=B(:,4);w=B(:,5);t=B(:,1);XY=corrcoef(x,y)XZ=corrcoef(x,z)XW=corrcoef(x,w)YZ=corrcoef(y,z)YW=corrcoef(y,w)ZW=corrcoef(z,w)XT=corrcoef(x,t)YT=corrcoef(y,t)ZT=corrcoe

31、f(z,t)WT=corrcoef(w,t)附录2: ROC图像绘制MATLAB程序程序一:运用十折交叉检验法计算样本库中每一个用户属于僵尸粉的后验概率,为ROC图像绘制做准备A=xlsread(fansall. xls,sheet1,B2:E1839);label=xlsread(fansall. xls,sheet1,F2:F1839);a=1838;B=zeros(a,5);train=zeros;N=0 0;r=0. 5;u=0. 8;K=zeros(2,2);R=zeros(2,1);Ph=zeros(184,10);label_test=;%计算所需要的数据for p=1:a B(

32、p,1)=A(p,1); B(p,2)=A(p,2); B(p,3)=A(p,3)/(A(p,2)+1); B(p,4)=A(p,2)/(A(p,4)+1); B(p,5)=A(p,4)/(A(p,3)+1);end%分组C=B;for p=1:a if B(p,2)2000 C(p,2)=fix(B(p,2)/100)+1; else C(p,2)=20; end if B(p,3)1 C(p,3)=fix(B(p,3)/0. 1)+1; else if B(p,3)2 C(p,3)=11; else if B(p,3)3 C(p,3)=12; else C(p,3)=13; end end

33、 end if B(p,4)1 C(p,4)=fix(B(p,4)/0. 1)+1; else if B(p,4)10 C(p,4)=fix(B(p,4)+10; else C(p,4)=20; end end if B(p,5)1 C(p,5)=fix(B(p,5)/0. 1)+1; else if B(p,5)10 C(p,5)=fix(B(p,5)+10; else C(p,5)=20; end endend%十折交叉验证indices = crossvalind(Kfold,a,10);for i=1:10 test=(indices=i); train=test; C_train=C

34、(train,:); label_train=label(train,:); C_test=C(test,:); label_test=label_test;label(test,:); b,d=size(label_train); c=a-b; N=0 0; % 计数 for p=1:b for j=1:2 if label_train(p,1)=j N(j)=N(j)+1; end end end D=ones(2,5,20); for p=1:b for j=1:2 if label_train(p,1)=j for m=1:5 for n=1:20 if C_train(p,m)=n

35、D(j,m,n)=D(j,m,n)+1; end end end end end end for j=1:2 for m=1:5 for n=1:20 E(j,m,n)=D(j,m,n)/N(j); end end end %似然概率&后验概率计算 Psf=ones(c,1);Pst=ones(c,1); for p=1:c for k=1:5 Pf(p,k)=E(2,k,C_test(p,k); Pt(p,k)=E(1,k,C_test(p,k); end for k=1:5 if k=1|k=2|k=4|k=5 Psf(p,1)=Psf(p,1)*Pf(p,k); Pst(p,1)=Pst

36、(p,1)*Pt(p,k); end end Ph(p,i)=r*Psf(p,1)/(1-r)*Pst(p,1); endendP=Ph(:,1);Ph(:,2);Ph(:,3);Ph(:,4);Ph(:,5);Ph(:,6);Ph(:,7);Ph(:,8);Ph(:,9);Ph(:,10);xlswrite(note1245. xls,P,sheet1,B1:B1840);xlswrite(note1245. xls,label_test,sheet1,A1:A1838);程序二:ROC图像绘制(7个模型)A=xlsread(note1-3. xls,sheet1,A1:B1838);B=x

37、lsread(note124. xls,sheet1,A1:B1838);C=xlsread(note125. xls,sheet1,A1:B1838);D=xlsread(note1-4. xls,sheet1,A1:B1838);E=xlsread(note1235. xls,sheet1,A1:B1838);F=xlsread(note1245. xls,sheet1,A1:B1838);G=xlsread(note1-5. xls,sheet1,A1:B1838);tp=0;fp=0;p=0;n=0;for i=1:1838 if A(i,1)=1 n=n+1; else p=p+1;

38、 endendfor i=1:1838 if A(i,1)=1 fp=fp+1; else tp=tp+1; end plot(fp/n,tp/p,b) hold on xlabel(FPR(True Positive Rate) ylabel(TPR(False Positive Rate) grid on axis squareendtp=0;fp=0;p=0;n=0;for i=1:1838 if B(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if B(i,1)=1 fp=fp+1; else tp=tp+1; end plo

39、t(fp/n,tp/p,g) hold onendtp=0;fp=0;p=0;n=0;for i=1:1838 if C(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if C(i,1)=1 fp=fp+1; else tp=tp+1; end plot(fp/n,tp/p,r) hold onendtp=0;fp=0;p=0;n=0;for i=1:1838 if D(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if D(i,1)=1 fp=fp+1; else tp=tp+

40、1; end plot(fp/n,tp/p,c) hold onendtp=0;fp=0;p=0;n=0;for i=1:1838 if E(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if E(i,1)=1 fp=fp+1; else tp=tp+1; end plot(fp/n,tp/p,m) hold onendtp=0;fp=0;p=0;n=0;for i=1:1838 if F(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if F(i,1)=1 fp=fp+1; e

41、lse tp=tp+1; end plot(fp/n,tp/p,y) hold onendtp=0;fp=0;p=0;n=0;for i=1:1838 if G(i,1)=1 n=n+1; else p=p+1; endendhold onfor i=1:1838 if G(i,1)=1 fp=fp+1; else tp=tp+1; end plot(fp/n,tp/p,k) hold onend附录3:模型识别效果检验MATLAB程序A=xlsread(fansall. xls,sheet1,B2:E1839);label=xlsread(fansall. xls,sheet1,F2:F1839);A_test=xlsread(fansalltest. xls,sheet1,B2:E205);labe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号