一、核函数(Kernel Function)
1)格式
K(x, y):表示样本 x 和 y,添加多项式特征得到新的样本 x'、y',K(x, y) 就是返回新的样本经过计算得到的值;
在 SVM 类型的算法 SVC() 中,K(x, y) 返回点乘:x' . y' 得到的值;
2)多项式核函数
业务问题:怎么分类非线性可分的样本的分类?
内部实现:
对传入的样本数据点添加多项式项;
新的样本数据点进行点乘,返回点乘结果;
多项式特征的基本原理:依靠升维使得原本线性不可分的数据线性可分;
升维的意义:使得原本线性不可分的数据线性可分;
例:
一维特征的样本,两种类型,分布如图,线性不可分:
为样本添加一个特征:x2 ,使得样本在二维平面内分布,此时样本在 x 轴升的分布位置不变;如图,可以线性可分:
3)优点 / 特点
不需要每次都具体计算出原始样本点映射的新的无穷维度的样本点,直接使用映射后的新的样本点的点乘计算公式即可;
减少计算量
减少存储空间
一般将原始样本变形,通常是将低维的样本数据变为高维数据,存储高维数据花费较多的存储空间;使用核函数,不用考虑原来样本改变后的样子,也不用存储变化后的结果,只需要直接使用变化的结果进行运算并返回运算结果即可;
核函数的方法和思路不是 SVM 算法特有,只要可以减少计算量和存储空间,都可以设计核函数方便运算;
对于比较传统的常用的机器学习算法,核函数这种技巧更多的在 SVM 算法中使用;
4)SVM 中的核函数
svm 类中的 SVC() 算法中包含两种核函数:
SVC(kernel = 'ploy'):表示算法使用多项式核函数;
SVC(kernel = 'rbf'):表示算法使用高斯核函数;
S