机器学习算法支持向量机完成渣滓邮件的分类义务
作者头像
  • 刘帅政
  • 2019-11-18 08:37:40 4

专栏引荐

本文介绍了一个关于垃圾邮件分类的数据集处理过程,该数据集包含两个部分:训练集和测试集。我们将从这些数据集中提取出关键特征,并构建一个分类器来预测邮件是否为垃圾邮件。以下是具体步骤及结果。


我们有两个数据集,分别名为spamTrain.matspamTest.mat,其中一个是训练集,另一个是测试集。首先,我们需要从训练集中提取特征X和标签y,以及从测试集中提取特征Xtest和标签ytest。通过这些数据,我们可以了解训练集的具体情况。


这个数据集实际上是一个邮件分类项目的一部分,其中包含了一些预处理步骤,如将单词映射到字典中的ID,去除HTML标签、词干化和标准化等。我们不再详细讨论这些预处理步骤,而是直接使用已经处理好的数据。训练集和测试集中的每个文档都被转换成一个向量,每个向量包含1,899个维度,对应于词汇表中的1,899个单词。这些向量的值为二进制,表示文档中是否存在某个单词。接下来,我们将使用支持向量机(SVM)算法来训练分类器,并评估其在训练集和测试集上的表现。


我们使用了SVM算法进行训练,代码如下: python svc = svm.SVC() svc.fit(X, y)

然后,我们计算了分类器在训练集和测试集上的准确率。 python print('Training accuracy = {0}%'.format(np.round(svc.score(X, y) * 100, 2))) print('Test accuracy = {0}%'.format(np.round(svc.score(Xtest, ytest) * 100, 2))) 最终结果为: Training accuracy = 94.4% Test accuracy = 95.3%


总结来说,通过上述步骤,我们成功地构建了一个垃圾邮件分类器,并验证了其在训练集和测试集上的性能。准确率达到94.4%和95.3%,表明模型具有较高的分类能力。


以下是完整的代码示例: ```python from sklearn import svm import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb from scipy.io import loadmat

加载数据集

spamtrain = loadmat('spamTrain.mat') spamtest = loadmat('spamTest.mat')

提取特征和标签

X = spamtrain['X'] Xtest = spamtest['Xtest'] y = spamtrain['y'].ravel() ytest = spamtest['ytest'].ravel()

训练SVM分类器

svc = svm.SVC() svc.fit(X, y)

输出训练和测试准确率

print('Training accuracy = {0}%'.format(np.round(svc.score(X, y) * 100, 2))) print('Test accuracy = {0}%'.format(np.round(svc.score(Xtest, ytest) * 100, 2))) ```

    本文来源:图灵汇
责任编辑: : 刘帅政
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
渣滓向量算法义务机器邮件完成支持学习分类
    下一篇