对于数据集非线性可分的情况,要使用SVM,必须先用核函数将数据从低维空间映射到高维空间,转化成易于分离器理解的形式。核函数并不仅仅应用于SVM,很多其它的机器学习算法也会用到核函数。
径向基函数是SVM中常用的一类核函数。径向基函数是一个采用向量作为自变量的函数,能够基于向量距离运算出一个标量。这个距离可以是从零向量或者其它向量开始计算的距离。本篇我们会用到径向基函数的高斯版本,其公式为:
σ是用户定义的用于确定到达率(reach)或者说函数值跌落到零的速度参数。上述高斯核函数将数据从其特征空间映射到更高维的空间,具体说来这里是映射到了一个无穷维的空间。
具体算法实现的代码如下:
下面是测试和2d绘图的代码(注意,本篇的算法适用于多维特征的数据集,但其中的绘图函数只适用于2d特征):
结果如下:
领取专属 10元无门槛券
私享最新 技术干货