基于主成分分析的垃圾邮件分类.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB编程课程项目 、 项目题目:基于主成分分析的垃圾邮件分类 姓名: 学号: 院系: 小组成员: 内容介绍 我在小组中主要负责邮件的测试部分,也就是接收新邮件,利用已获得的垃圾邮件特称判断新邮件是否属于垃圾邮件。 项目所用方法与已有方法的分析和比较 项目所用方法为对于一封邮件,计算该邮件中每个单词在垃圾邮件和非垃圾邮件中出现的频率乘以次数并进行求和,最后通过比较垃圾邮件和非垃圾邮件的计算结果来判断此邮件是否是垃圾邮件。 项目的意义与特点 我所负责的内容在项目中属于一个比较靠后的部分,是对前面所做的工作的一个检测,是本项目最终所要实现的功能。 项目的实施原理 核心代码分析: 1:for i = 1:numTestDocs 2: for k = 1:numclassifier 3: for j = 1:numTokens 4: result(k) = result(k) + testMatrix(i,j) * log(P_numToken(k,j)); 5: end 6: result(k) = result(k) + log(P_category(k)); 7: end 8: if(result(1) result(2)) 9: output(i) = 0; 10: else 11: output(i) = 1; 12: end 13:numerror = 0; 14:for g = 1: numTestDocs 15: if(category(g) ~= output(g)) 16: numerror = numerror + 1; 首先numTestDocs中存储是测试样本的大小(如100封邮件);numclassifier为常量值,指的是种类的个数,在本项目中种类只有垃圾邮件和非垃圾邮件两种,所以numclassifier默认为2;numTokens为字典中单词的个数,因为本项目所使用的字典单词个数为1448,所以numTokens默认为1448;从第2行到第6行是对每一个邮件样本的处理,计算是垃圾邮件的概率和非垃圾邮件的概率;第4行为算法的核心,是对于字典中的每个单词,统计每个单词的P(Xi|Ck);第6行为计算P(Xi|Ck)P(Ck)的值;第8-11行是判断过程,若是垃圾邮件的概率大,则判断此邮件是垃圾邮件,否则判断其为非垃圾邮件;第13行到16行为计算误判的邮件数,用来评判算法的优劣。 项目所用数据分析 根据测试邮件数目的大小不同,本项目所使用的测试数据分为50封、100封、200封、400封、800封、1400封邮件(来源为互联网),因为技术能力有限,每个测试样本中对于格式有着严格的要求,需要按照顺序详细列出每一封邮件中在字典中出现过的单词的次数,只有严格按照这个格式,本项目才能顺利运行。 项目实施过程 项目实施结果 Output为一个矩阵,用于存储每一封邮件是否是垃圾邮件。截图上方显示了误判的概率为1.87%。 总结与展望 总的来说,我大致完成了我所负责部分的内容,但是因为时间和技术的限制,本算法并没有完全严格的按照主成分分析的算法,希望以后有时间多进行研究。目前我国垃圾邮件情况不容乐观,研究出一套好的垃圾邮件分类技术无疑是大有裨益的。

文档评论(0)

ebitjij + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档