Week7_2Program_Support Vector Machines编程解析

本文介绍了支持向量机(SVM)的编程实现,并详细解析了高斯核函数的应用及参数选择过程。此外,还探讨了如何利用SVM进行垃圾邮件分类,包括预处理电子邮件和特征提取等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Week7_2Program_Support Vector Machines编程解析

1. ex6 流程分析

1.1 plotData

按照ex6.m中的流程走一遍


2. 编程分析

2.0 计算公式

hθ(x)=minθCi=1m[y(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))]+12i=1nθ2jhθ(x)=minθC∑i=1m[y(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))]+12∑i=1nθj2

2.1 Gaussian kernel 0 / 25

高斯核函数的计算公式:
K(x,z)=exp(xz22σ2)K(x,z)=exp⁡(−‖x−z‖22σ2)
在 gaussianKernel.m 中添加:

sim = exp(-sum((x1-x2).^2)/(2*sigma^2));
2.2 Parameters (C, sigma) for dataset 3 0 / 25

多用几组参数来进行测试:
ex7.pdf中给出了8个paramers

paramList = [0.01, 0.03, 0.1, 0.3,  1, 3, 10, 30];
results = [];

for C = paramList,
    for sigma = paramList,       
      model= svmTrain(X, y, C, @(x1, x2) gaussianKernel(x1, x2, sigma)); 
      pred = svmPredict(model, Xval);      
      testError = mean(double(pred ~= yval));      
      fprintf("C: %f\nsigma: %f\nerror: %f\n", C, sigma, testError);      
      results = [results; C, sigma, testError];      
    end
end
[minError, minIndex] = min(results(:,3));
C = results(minIndex,1);
sigma = results(minIndex,2);

3. 垃圾邮件分类

3.1 Email preprocessing 0 / 25

在 processEmail.m 中添加:

word_indices = [word_indices; find(ismember(vocabList, str))];
2.4 Email feature extraction 0 / 25

在 emailFeatures.m 中添加:

x(word_indices)=1;

3. 总结

1 Gaussian kernel 0 / 25
2 Parameters (C, sigma) for dataset 3 0 / 25
3 Email preprocessing 0 / 25
4 Email feature extraction 0 / 25

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值