用C++完成贝叶斯分类算法的设计与实现
答案:3 悬赏:40
解决时间 2021-04-09 11:00
- 提问者网友:宿醉何为情
- 2021-04-08 14:12
因为是本人的毕业设计,因此需要开题报告,类似于如何去完成该课题,流程是那些,有源代码是最好不过了,跪求,哪位大侠有的话可以发本人邮箱:[email protected],不胜感激~~~
最佳答案
- 二级知识专家网友:瘾与深巷
- 2021-04-08 15:22
你算法都有了,那报告上无非是写写啥是贝叶斯分类算法,自己选用什么开发工作实现,大体上的代码结构(设计那些类,类的功能和层次关系)不就ok了吗,老师又不会看你代码,你就是写一坨字母上去估计也能通过开题报告。天下文章一大抄,奉劝兄台要善于综合利用。
全部回答
- 1楼网友:末路丶一枝花
- 2021-04-08 16:21
1. 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。 2. 提取邮件主题和邮件体中的独立字符串,例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。 3. 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。 4. 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)。 5. 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为: A 事件 ---- 邮件为垃圾邮件; t1,t2 …….tn 代表 TOKEN 串 则 P ( A|ti )表示在邮件中出现 TOKEN 串 ti 时,该邮件为垃圾邮件的概率。 设 P1 ( ti ) = ( ti 在 hashtable_good 中的值) P2 ( ti ) = ( ti 在 hashtable_ bad 中的值) 则 P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] ; 6. 建立新的哈希表hashtable_probability存储TOKEN串ti到P(A|ti)的映射 7. 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。 当新到一封邮件时,按照步骤2,生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。 假设由该邮件共得到N个TOKEN 串,t1,t2…….tn,hashtable_probability中对应的值为 P1 , P2 , ……PN , P(A|t1 ,t2, t3……tn) 表示在邮件中同时出现多个TOKEN串t1,t2……tn时,该邮件为垃圾邮件的概率。 由复合概率公式可得 P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)] 当 P(A|t1 ,t2, t3……tn) 超过预定阈值时,就可以判断邮件为垃圾邮件。
- 2楼网友:情战辞言
- 2021-04-08 15:57
按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。 3. 每一个你算法都有了,那报告上无非是写写啥是贝叶斯分类算法,自己选用什么开发工作
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯