毕业设计基于机器学习的垃圾邮件分类算法研究与实现

毕业设计-基于机器学习的垃圾邮件分类算法研究与实现

对毕设有任何疑问都可以问学长哦!

基于机器学习的垃圾邮件分类

学长这里给一个题目综合评分(每项满分5分)

毕设帮助,选题指导,技术解答,欢迎打扰,见B站个人主页

网络舆情是社会舆情的一种表现形式,网络舆情具有形成迅速、影响力大和组织发动优势强等特点,网络舆情的好坏极大地影响着社会的稳定,通过提高舆情分析能力有效获取发布舆论的性质,避免负面舆论的不良影响是互联网面临的严肃课题。

将邮件分为垃圾邮件(有害信息)和正常邮件,网络舆论分为负面舆论(有害信息)和正面舆论,那么,无论是垃圾邮件过滤还是网络舆情分析,都可看作是短文本的二分类问题。

贝叶斯算法解决概率论中的一个典型问题:一号箱子放有红色球和白色球各20个,二号箱子放油白色球10个,红色球30个。现在随机挑选一个箱子,取出来一个球的颜色是红色的,请问这个球来自一号箱子的概率是多少?

利用贝叶斯算法识别垃圾邮件基于同样道理,根据已经分类的基本信息获得一组特征值的概率(如:“茶叶”这个词出现在垃圾邮件中的概率和非垃圾邮件中的概率),就得到分类模型,然后对待处理信息提取特征值,结合分类模型,判断其分类。

贝叶斯公式:

P(B|A)=P(A|B)*P(B)/P(A)

P(B|A)=当条件A发生时,B的概率是多少。代入:当球是红色时,来自一号箱的概率是多少?

P(A|B)=当选择一号箱时,取出红色球的概率。

P(B)=一号箱的概率。

P(A)=取出红球的概率。

代入垃圾邮件识别:

P(A|B)=当邮件是垃圾邮件时,包含“茶叶”这个单词的概率是多少?

P(B)=垃圾邮件总概率。

P(A)=“茶叶”在所有特征值中出现的概率。

使用中文邮件数据集:丹成学长自己采集,通过爬虫以及人工筛选。

数据集“data”文件夹中,包含,“full”文件夹和“delay”文件夹。

“data”文件夹里面包含多个二级文件夹,二级文件夹里面才是垃圾邮件文本,一个文本代表一份邮件。“full”文件夹里有一个index文件,该文件记录的是各邮件文本的标签。

数据集可视化:

邮件大致内容如下图:

然后将样本标签写入单独的文件中,0代表垃圾邮件,1代表非垃圾邮件。代码如下:

将文本型数据转化为数值型数据,本文使用的是TF-IDF方法。

TF-IDF是词频-逆向文档频率(Term-Frequency,InverseDocumentFrequency)。公式如下:

在所有文档中,一个词的IDF是一样的,TF是不一样的。在一个文档中,一个词的TF和IDF越高,说明该词在该文档中出现得多,在其他文档中出现得少。因此,该词对这个文档的重要性较高,可以用来区分这个文档。

这里学长简单的给一个逻辑回归分类器的例子

测试了2000条数据,使用如下方法:

可以看到,2000条数据训练结果,200条测试结果,精度还算高,不过数据较少很难说明问题。

还可以构建深度学习模型

网络架构第一层是预训练的嵌入层,它将每个单词映射到实数的N维向量(EMBEDDING_SIZE对应于该向量的大小,在这种情况下为100)。具有相似含义的两个单词往往具有非常接近的向量。

第二层是带有LSTM单元的递归神经网络。最后,输出层是2个神经元,每个神经元对应于具有softmax激活功能的“垃圾邮件”或“正常邮件”。

THE END
1.机器学习分类算法详解机器学习算法分类机器学习中的分类算法是用于将输入数据分配到预定义类别中的算法。分类任务是监督学习的一种,模型根据训练数据中的输入-输出对进行学习,然后预测新的输入数据的类别。常见的分类算法包括: 逻辑回归(Logistic Regression) k-近邻(k-Nearest Neighbors, k-NN) https://blog.csdn.net/a6181816/article/details/139317333
2.回归分类与聚类:三大方向剖解机器学习算法的优缺点机器之心对机器学习算法进行分类不是一件容易的事情,总的来看,有如下几种方式:生成与判别、参数与非参数、监督与非监督等等。 然而,就实践经验来看,这些都不是实战过程中最有效的分类算法的方式。因为对于应用机器学习而言,开发者一般会在脑海中有一个最终目标,比如预测一个结果或是对你的观察进行分类。 https://www.jiqizhixin.com/articles/2017-05-20-3
3.[MachineLearning]机器学习常见算法分类汇总Poll的笔记机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类。 博主在原创基础上加入了遗传算法(2.9)的介绍,这样一来,本篇博文所包含的机器学习算法更加全面丰富。该博文属于总结型文章,https://www.cnblogs.com/maybe2030/p/4665816.html
4.机器学习算法分类大全机器学习算法可以分为监督学习算法、无监督学习算法和半监督学习算法,下面以思维导图的形式总结了一下常见的监督学习和无监督学习算法,简单写了一下各种机器学习算法的分类: (1)监督学习:主要以分类、回归、概率图模型来写思维导图。 监督学习思维导图 https://www.jianshu.com/p/48a7f5fa44b3
5.机器学习算法的分类机器学习算法的分类 一、监督学习根据有无标签分类 根据有无标签,监督学习可分类为:传统的监督学习(Traditional Supervised Learning)、非监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)。 (1)传统的监督学习 传统的监督学习的每个训练数据均具有标签(标签可被理解为每个训练数据的正确输出,计算机https://www.elecfans.com/d/2061025.html
6.机器学习中常用的几种分类算法,如何选择合适的算法?今天和大家分享一下机器学习中常见的六种分类算法:K近邻、决策树、朴素贝叶斯、逻辑回归、支持向量机、随机森林、AdaBoost、GBDT、XGBoost。 下面,介绍了各个算法的概念及特点。 KNN 决策树 朴素贝叶斯 逻辑回归 支持向量机 随机森林 AdaBoost GBDT XGBoost https://www.wokahui.com/article/industry/2697.html
7.机器学习中常见的六种分类算法(附Python源码+数据集)今天和大家学习一下机器学习中常见的六种分类算法,如K近邻、决策树、朴素贝叶斯、逻辑回归、支持向量机、随机森林 除了介绍这六种不同分类算法外,还附上对应的Python代码案例,并分析各自的优缺点。 01 K近邻(KNN) k-近邻算法KNN就是K-Nearest neighbors Algorithms的简称,它采用测量不同特征值之间的距离方法进行分类https://blog.51cto.com/u_11949039/4882936
8.科学网—[转载]联邦学习算法综述摘要:近年来,联邦学习作为解决数据孤岛问题的技术被广泛关注,已经开始被应用于金融、医疗健康以及智慧城市等领域。从3个层面系统阐述联邦学习算法。首先通过联邦学习的定义、架构、分类以及与传统分布式学习的对比来阐述联邦学习的概念;然后基于机器学习和深度学习对目前各类联邦学习算法进行分类比较和深入分析;最后分别从通信https://blog.sciencenet.cn/blog-3472670-1280769.html
9.轻松看懂机器学习十大常用算法轻松看懂机器学习十大常用算法 通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。 每个算法都看了好几个视频,挑出讲的最清晰明了有趣的,便于科普。https://mse.xauat.edu.cn/info/1017/1739.htm
10.《常用算法之智能计算(三)》:机器学习计算机器学习计算(Machine Learning Computing)主要设计和分析一些让计算机可以自动“学习”的算法,是一类从数据中自动分析获得规律、利用规律,对未来数据进行分类、聚类和预测等的一类算法。因为机器学习计算中涉及了大量的统计学理论,机器学习与统计推断的联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习计算关注可以http://www.kepu.cn/blog/zhangjianzhong/201903/t20190327_475625.html
11.综述机器学习中的12类算法腾讯云开发者社区最近在研究一些机器学习方面的论文,翻到了一篇较早的机器学习综述(2017年),虽然不是最新的研究现状,但考虑到经典机器学习算法其实发展并不像深度学习那么迅猛,所以其论述还是很有参考性。本文就其中关于机器学习算法分类的一段进行选摘翻译,以供参考。原文链接可通过阅读原文查阅。 https://cloud.tencent.com/developer/article/1851686