基于Andrew ng课后作业6,matlab实现svm算法的垃圾邮件分类器(spam classifier)

本文介绍了基于Andrew ng课程的作业,利用MATLAB实现SVM算法创建垃圾邮件分类器。首先从Apache SpamAssassin网站下载邮件数据,接着构建字典(vocabList),在构建过程中遇到并解决了格式问题。最后,训练模型时发现由于词汇表不足,导致在hard_ham数据上的准确率仅为5%。
摘要由CSDN通过智能技术生成

零、 背景

matlab也不熟,python也不熟。机器学习没入门。啥也不会。

我们的目标是: 获得数据集 ---> 构造字典 ---> 获得特征向量X,y ---> 训练模型 ---> 预测数据。


一、 邮件数据下载

http://spamassassin.apache.org/old/publiccorpus/

各压缩包内容在该网站上readme.html都有介绍。我使用了spam_2,hard_ham 和 easy_ham。(其实只取了其中的几十个)

然后大概需要批量重命名:  ren  *.*  *.txt

注意: 

spam:  y=1

non-spam: y=0

(根本记不住啊有木有


二、 构造字典(vocabList)

这里有个大坑。因为Andrew男神的作业vocab.txt也就是字典是直接给出的。所以我们要自己构造。

注意字典是采集于垃圾邮件,这里我用100封垃圾邮件(完全不够啊喂,emmmm速度快啊!


处理邮件内容:

function contents = myProcessEmail(email_contents)

%word_indices = [];

contents = [];

% load vocabulary
vocabList = getVocabList();

fprin
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值