我们在了解核函数前,我们先将线性向量机公式变形
文章图片
具体的过程可以自行查阅下资料,我们这里还是主要以介绍核函数为主
变形之后的式子:
文章图片
看我们红色方框框出来的,因为这个式子是由一个线性的svm变形过来的,如果我们想对这个式子添加多项式的话。
我们以前的思路将我们红框进行变形:
文章图片
现在,我们希望能设计出一个函数,可以直接计算出我们的
文章图片
,而不用先将X(i),X(j)变形,然后再做点乘即:
文章图片
代入上面式子中就是
文章图片
K这个函数主要就是想省略掉对x进行多项式的变形,变形后再做乘法这一步。
文章图片
我们看下,如果我们对我们的 x做一个平方的多项式转换
转换出来结果就是x' ,y同理。具体转换结果可以对照多项式转换代入进去看下是否正确哦。
所以我们将 这个
文章图片
公式中的K(x,y)称为我们的核函数,c 和d就是我们的两个超参数.
当然这个是我们的其中一个多项式核函数。
核函数有很多,下面我们看下另一个核函数,高斯(RBF)核函数(也叫径向基函数)
文章图片
其中的
文章图片
也是我们的一个超参数
理解我们的高斯核函数之前,我们先回想下我们的多项式核函数的过程:
多项式函数就是将我们的两个样本点,首先先变形添加多项式项(也就是升维的过程),然后再将变形后的多项式项进行点乘得到一个多项式核函数。
而对于我们的高斯核函数,也应该具有这样的特征。
而对于高斯核函数的本质,用一句话就是 将每一个样本点映射到一个无穷维的特征空间
这个要怎么理解呢?
我们再先来看看我们多项式特征原理:
多项式特征原理是将我们一个线性不可分的数据通过升维变得线性可分
比如我们的 x 通过多项式变形之后变成 x^2 +2x +1,从一维变成2维
画出图形
文章图片
————>
文章图片
很明显,我们变形后的数据线性可分了
而我们的高斯核函数是
文章图片
在我们的一维空间中,找出2个已知的地标点,即l1,l2
文章图片
我们让我们高斯核函数的y取固定的值,我们的X 经过变形由一维数据变成了2维数据,
我们使用代码去是实现这个高斯函数,看看变形后的图像是什么样子的
文章图片
很明显,下面的数据线性可分了
而我们的高斯核函数就是让我们的每个样本数据都作为一个地标点,即如果我们的数据是一个m*n(m个样本,每个样本有n个特征)
那么我们的数据就会由m*n的数据映射成一个m*m的数据,如果m无穷大的时候,那么我们的数据也是无穷维了。回到上面的定义,、
文章图片
就可以理解了
我们理解了高斯核函数,然后再看下高斯核函数刚才提到的
超参数ganma(
文章图片
)
先看看我们的高斯函数(正态分布)
文章图片
我们将我们的高斯函数变形,超参数gamma就相当于
文章图片
,
文章图片
代表平均数,
文章图片
代表标准差。 .所以我们可以得知图中,gamma和高斯分布的关系
我们来使用 scikit-learn看下不同的gamma的影响
文章图片
很显然,当我们的gamma越大,svm的拟合程度就越高,反之也成立。图中我们的gamma取100,显然已经过拟合了、
【5.1-机器学习——SVM支撑向量机原理之(核函数,RBF,SVM解决回归问题)】最后,我们看下SVM思想如何解决回归问题,这里就提供下思想
文章图片
利用容错区间,我们希望区间内的数据点越多越好,就说明我们中间的实线拟合的数据越多,也就是最后我们的损失函数越小。
这个和解决分类问题刚好相反。这里引入容错区间距离的超参数
文章图片
,
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现