这段代码旨在帮助可视化学习的分类器,当训练非线性c - svm将2维数据(2个特征)分类为2个或更多类时。当C = Inf时给出硬边缘分类器,而C < Inf时给出1范数软边缘分类器。(见参考文献[2]中的命题6.12和式(7.1))
使用MATLAB的quadprog对对偶变量进行求解,a.求解器设置为使用内点法。采用高斯径向基函数核来生成非线性边界。
在二进制分类文件(SVMtrial.m)中:有6个不同的训练集可供使用。输出为分类器的三维网格图和支持向量的个数。
用于二元分类的数据集:
(1)典型的
(2)鞍
(3)随机
(4)随机,在椭圆w / 1离群值
(5)螺旋
(6)不平衡+重叠
在多类分类文件(DAGsvm.m)中:有5个不同的训练集可供使用。输出是K*(K-1)/2分类器的3D网格图、训练集的图和错误分类的训练样本列表。您还可以让代码根据[4]估计RBF内核宽度。我使用了[3]中的DAG-SVM算法进行多类分类。输出网格图,因此,安排在一个有向无环图(DAG)。
多类分类数据集:
(1)(3类)鸢尾花-花瓣
(2)(4类)风扇W/ 4臂
(3)(6类)随机圆
(4)(5类)东南亚地图
(5)(7类)彩虹
您可以从简单地运行SVMtrial开始。m或DAGsvm.m。有了这些,用户可以改变某些数据点或超参数(内核宽度和框约束),并直接看到3D流形的效果。我希望这对教育有用。此实现在Ref.[5]中使用。
引用:
[1] Coursera -机器学习by Andrew Ng。
[2]支持向量机,Cristianini和Shawe-Taylor, 2000
[3] Platt等。多类分类的大裕度DAGs, NIPS进展,2000。
[4] Karatzoglou等。R中的支持向量机,统计软件学报,15(9),2006。
[5] Eyo等。“使用核方法开发实时目标流态标识符”,IEEE Trans。《控制论》,DOI 10.1109/TCYB.2019.2910257。
引用作为
卡尔·埃兹拉·皮拉里奥(2023年)。二进制和多类支持向量机(//www.ru-cchi.com/matlabcentral/fileexchange/65232-binary-and-multi-class-svm), MATLAB中央文件交换。检索.