使用线性SVM实现对垃圾邮件分类

该博客介绍了如何使用线性支持向量机(SVM)对垃圾邮件进行分类。首先,通过loadData()函数加载训练集(task3_train.mat)和测试集(task3_test.mat)的数据,展示数据的样本数和特征维度。接着,利用sklearn的svm库训练线性SVM模型,计算并在训练集上评估了模型的准确率。此外,还尝试了高斯核函数(RBF),并探讨了SVM参数C和核函数sigma对模型的影响。最后,讨论了支持向量机的参数选择和核函数选择的一般原则。

代码地址

代码地址

使用线性SVM实现对垃圾邮件分类

(1)问题描述:

​ 编程实现一个垃圾邮件SVM线性分类器,分别在训练集和测试集上计算准确率。其中训练数据文件:task3_train.mat,要求导入数据时输出样本数和特征维度。测试数据文件:task3_test.mat,要求导入数据时输出样本数和特征维度,测试数据标签未给出。(程序运行时间10mins左右)

(2)实现过程:

  1. 分析数据:

    利用给出loadData(),读取数据,并输出维度:

    X, y = svmF.loadData('task3_train.mat')
    shape = np.shape(X)
    print('训练集样本数:%d,特征维度:%d' % (shape[0], shape[1]))
    
    '''
    output:
    训练集样本数:4000,特征维度:1899
    '''
    
    

    观察输入如下图所示:

    image-20210505210255981

    可知,这里是已经完成了邮件特征变量的提取的数据。

    完成了邮件特征变量的提取之后, 可以利用4000个训练样本和1000个测试样本训练SVM算法, 每个原始的邮件将会被转化为一个 x ∈ R 1900 x \in R^{1900}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuetianw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值