13-垃圾邮件分类2
Posted rushb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13-垃圾邮件分类2相关的知识,希望对你有一定的参考价值。
1.读取
2.数据预处理
3.数据划分—训练集和测试集数据划分
from sklearn.model_selection import train_test_split
x_train,x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0, stratify=y_train)
4.文本特征提取
sklearn.feature_extraction.text.CountVectorizer
sklearn.feature_extraction.text.TfidfVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf2 = TfidfVectorizer()
观察邮件与向量的关系
向量还原为邮件
4.模型选择
from sklearn.naive_bayes import GaussianNB
from sklearn.naive_bayes import MultinomialNB
说明为什么选择这个模型?
因为垃圾邮件的分类是随机散乱的,属于离散型变量,因此多项式朴素贝叶斯算法模型较为合适。
5.模型评价:混淆矩阵,分类报告
from sklearn.metrics import confusion_matrix
confusion_matrix = confusion_matrix(y_test, y_predict)
说明混淆矩阵的含义
from sklearn.metrics import classification_report
说明准确率、精确率、召回率、F值分别代表的意义
准确率是衡量的查准率,是所有的预测正确(正类负类)的占总的比重,也就是找的对;
精确率是真正正确的占所有预测为正的比例;
召回率是衡量的查全率,是真正正确的占所有实际为正的比例,也就是找的全;
F 值是正确率和召回率的调和平均值。
6.比较与总结
如果用CountVectorizer进行文本特征生成,与TfidfVectorizer相比,效果如何?
相对于TfidfVectorizer来说使用CountVectorizer进行文本特征生成会降低准确率,因为CountVectorizer只考虑词频,而TfidfVectorizer兼顾词频与词数,因此也能够降低反复出现等的高频垃圾词汇,使得数据分析更具意义。
以上是关于13-垃圾邮件分类2的主要内容,如果未能解决你的问题,请参考以下文章