一、概述

根据邮件中各单词的出现情况,对邮件进行是否为垃圾邮件的预测。

 

二、数据

1、样本数量

标签 垃圾邮件(1类) 非垃圾邮件(0类)
训练集 1046 2574
测试集 454 1098

 

2、数据说明

Email No the to ect Prediction
Email 1 0 0 1 0
Email 2 8 13 24 1

每一行为邮件,“Email No”列为收件人编号;“Prediction”列为邮件标签;其余3000列为特征(所有电子邮件中3000个最常用的单词),每一列代表该单词在每个邮件中的出现次数。

 

三、模型

1、朴素贝叶斯

(1)选用朴素贝叶斯的原因

1)(数据角度)单词与单词的组合可能性众多,特征与特征之间的相关性较小。

2)(算法角度)朴素贝叶斯基于数据的先验概率和后验概率,使得模型较为稳定,常用于文本分类且效果普遍较好。

(2)测试集效果

由于数据集正负两类样本数量不均衡,因此使用回召率和F1分数来作为模型评价指标。

标签 recall f1-score f1-score 综合
垃圾邮件 96% 91% 94.72%
非垃圾邮件 94% 96%

2、TF-IDF + 朴素贝叶斯

(1)选用TF-IDF的原因

如果单单考虑到单词在单个邮件的出现情况、而不考虑到单词在整体中的出现情况,那么一些无意义单词(比如the、to等)容易对结果造成干扰,因此使用TF-IDF进行特征转换。

(2)测试集效果

标签 recall f1-score f1-score 综合
垃圾邮件 53% 68% 0.84%
非垃圾邮件 99% 91%

由于正负两类的召回率差别较大,猜测可能是样本不均衡导致的。

3、欠采样

(1)欠采样

基于“2、TF-IDF + 朴素贝叶斯”的结果,调整后模型如下:

步骤1:确定要构造的分类器个数n(n大于0且为奇数);

步骤2:对训练集的“非垃圾邮件”类样本进行随机抽样,使得正负两类的样本一样多(欠采样),继而构造“TF-IDF + 朴素贝叶斯”分类器并对测试集进行预测;

步骤3:重复n次步骤2,因此测试集的每个样本有n个预测标签,对n个标签进行以下运算:

邮件分类模型      注:sⁱ为第i个分类器的预测标签;

          1)label > 0.5:则最终预测结果为1(垃圾邮件);

          2)label < 0.5:则最终预测结果为0(非垃圾邮件);

(2)测试集效果

分类器个数 标签 recall f1-score f1-score 综合
n = 1 垃圾邮件 100% 86% 0.91%
非垃圾邮件 87% 93%
n = 3 垃圾邮件 100% 85% 0.90%
非垃圾邮件 85% 92%
n = 5 垃圾邮件 100% 85% 0.90%
非垃圾邮件 86% 92%

 

四、总结

1、测试集效果比较

邮件分类模型

对于TF-IDF特征转换,直接用朴素贝叶斯进行分类,效果更好。

对比没有对训练集进行欠采样的“TF-IDF + 朴素贝叶斯”模型,经过欠采样处理后效果更好。

2、问题

只考虑到单个单词的频次信息,忽略了单词与单词之间的联合信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-09-16
  • 2021-11-02
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2021-05-03
  • 2021-09-01
  • 2021-11-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-11-21
  • 2022-02-09
  • 2021-11-17
相关资源
相似解决方案