使用朴素贝叶斯对垃圾邮件分类

简介: 用Python创建朴素贝叶斯模型

分为以下几个步骤:
- 用Python创建朴素贝叶斯模型;
- 使用朴素贝叶斯模型对垃圾邮件分类;
- 把文本文件变成词向量
- 评价朴素贝叶斯模型的分类效果。

  1. 把给定的数据集message.csv拆分成训练集和测试集,使用sklearn.naive_bayes.MultinomialNB类创建一个朴素贝叶斯模型,使用训练数据训练出一个预测模型,然后用预测模型对测试集中数据进行分类,评价模型的分类效果。
  2. message.csv数据集中包含大量的短信,每行数据包括2个字段:短信内容,短信类别(1或者0),短信类别为1的是垃圾邮件。

注意:

  • 短信内容均为文本数据,需要使用词编码word2vec等将其转换为向量形式,
  • 而且需要创建字典,这里使用哈工大提供的库。
  • 如果自己数据集是脏数据比较多,需要先自己写一个过滤器,过滤掉已经知道的无意义的字符,比如符号*、#等等;
  • 如果要训练一个特定领域的邮件分类器,可以自己自定义字典大小,理论上,字典越小,训练越快;
  1. 根据训练数据生成特征矩阵和分类矩阵,显示训练矩阵特征维度
  2. 根据测试数据生成特征矩阵和分类矩阵,显示测试矩阵特征维度
  3. 用训练集训练朴素贝叶斯模型

注意:

  • 训练时候,直接采用sklearn提供的接口就可以,model.fit(x,y);
  • 这里采用sklearn已经提供的naive_bayes.MultinomialNB类创建分类器,可以根据实际情况更换分类器或者自定义分类器。
  1. 用测试集进行预测
  2. 计算并显示模型的准确率、精度、召回率和F1值
相关文章
|
7月前
|
数据采集 机器学习/深度学习 存储
基于多项式朴素贝叶斯的中文垃圾邮件识别
基于多项式朴素贝叶斯的中文垃圾邮件识别
|
6月前
|
算法 Serverless
使用朴素贝叶斯算法过滤垃圾邮件
使用朴素贝叶斯算法过滤垃圾邮件
58 2
|
7月前
|
机器学习/深度学习 算法
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
|
7月前
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
|
7月前
|
机器学习/深度学习 自然语言处理 算法
weka文本挖掘分析垃圾邮件分类模型
weka文本挖掘分析垃圾邮件分类模型
|
7月前
|
机器学习/深度学习
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
使用Python实现一个简单的垃圾邮件分类器
使用Python实现一个简单的垃圾邮件分类器
212 0
分类问题的判别
分类问题的判别 自用
64 0
|
机器学习/深度学习 自然语言处理 算法
机器学习算法(五):基于企鹅数据集的决策树分类预测
机器学习算法(五):基于企鹅数据集的决策树分类预测
|
机器学习/深度学习 资源调度 算法
使用线性SVM实现对垃圾邮件分类
使用线性SVM实现对垃圾邮件分类
266 0
使用线性SVM实现对垃圾邮件分类