1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5mUmpht
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
支持向量机(support vector machines, SVM)是二分类算法,所谓二分类即把具有多个特性(属性)的数据分为两类,目前主流机器学习算法中,神经网络等其他机器学习模型已经能很好完成二分类、多分类,学习和研究SVM,理解SVM背后丰富算法知识,对以后研究其他算法大有裨益;在实现SVM过程中,会综合利用之前介绍的一维搜索、KKT条件、惩罚函数等相关知识。本篇首先通过详解SVM原理,后介绍如何利用python从零实现SVM算法。
实例中样本明显的分为两类,黑色实心点不妨为类别一,空心圆点可命名为类别二,在实际应用中会把类别数值化,比如类别一用1表示,类别二用-1表示,称数值化后的类别为标签。每个类别分别对应于标签1、还是-1表示没有硬性规定,可以根据自己喜好即可,需要注意的是,由于SVM算法标签也会参与数学运算,这里不能把类别标签设为0。
4.部分源码
load('example1.mat');
plotData(X, y);
title('Traning Dataset');
C = 1;
model = svmTrain(X, y, C, @linearKernel, 1e-3, 20);
figure;
visualizeBoundaryLinear(X, y, model);
title('Decision Boundary');
load('example2.mat');
figure,
plotData(X, y);
title('Traning Dataset');
C = 1; sigma = 0.1;
figure,
visualizeBoundary(X, y, model);
title('Decision boundary with RBF kernel');
load('example3.mat');
% Plot training data
figure,
plotData(X, y);
% Training SVM with RBF Kernel (Dataset 3)
load('example3.mat');
[C, sigma] = example3parameters(X, y, Xval, yval);
% Train the SVM
model= svmTrain(X, y, C, @(x1, x2) gaussianKernel(x1, x2, sigma));
figure,
visualizeBoundary(X, y, model);
title('Decision boundary with RBF kernel');
a97