【机器学习】最小二乘法支持向量机LSSVM的数学原理与Python实现
一、LSSVM数学原理
1. 感知机
SVM是从感知机发展而来。假设有m个训练样本 { ( x i , y i ) } i = 1 m \left\{ {\left. {\left( {
{x_i},{y_i}} \right)} \right\}} \right._{i = 1}^m {
(xi,yi)}i=1m, y i ∈ { 1 , − 1 } {y_i} \in \left\{ {1, - 1} \right\} yi∈{
1,−1}, x i ∈ R n {x_i} \in {R^n} xi∈Rn表示n维的训练样本输入向量。我们企图找到分隔超平面 W X + b = 0 WX + b = 0 WX+b=0能够分隔正负样本。
感知机直接将误分类的样本到分隔超平面之间的距离作为损失函数。在感知机模型求解过程中,分隔超平面权重W和偏差b的初始值选择不同,求出最终的分隔超平面是不同的。这就引出了SVM的模型训练思想:使得离分隔超平面最近的样本与分隔超平面的距离最远。下面介绍函数间隔与几何间隔的含义:
2. SVM
-
函数间隔:
对于训练集中的一个样本 ( x i , y i ) \left( { {x_i},{y_i}} \right) (xi,yi),其函数间隔为 r i = y i ( W ⋅ x i + b ) { r_i} = {y_i}(W \cdot {x_i} + b) ri=yi(W⋅xi+b)。
训练集的函数间隔等于所有样本点的函数间隔的最小值: r = min i = 1 , ⋯ m r i r = \mathop {\min }\limits_{i = 1, \cdots m} {r_i} r=i=1,⋯mminri
函数间隔只能表示分类预测的正确性,不能表示样本到分隔超平面的准确距离。 -
几何距离
对于训练集中的一个样本 ( x i , y i ) \left( { {x_i},{y_i}} \right) (xi,yi),其函数间隔为 R i = y i ⋅ 1 ∥ W ∥ ( W ⋅ x i + b ) {R_i} = {y_i} \cdot \frac{1}{ {\left\| W \right\|}}\left( {W \cdot {x_i} + b} \right) Ri=yi⋅∥W∥1(W⋅xi+b)。
训练集的函数间隔等于所有样本点的函数间隔的最小值: R = min i = 1 , ⋯ m R i R = \mathop {\min }\limits_{i = 1, \cdots m} {R_i} R=i=1,⋯mminRi
几何间隔不但可以表示分类预测的正确性还能准确地表示样本到分隔超平面的距离。
SVM的优化问题转化为最大化训练样本的几何距离:
max W , b r ∥ W ∥ s . t . y i ( W ⋅ x i + b ) ≥ r , i = 1 , 2 , ⋯ m \begin{array}{l}\mathop {\max }\limits_{W,b} \frac{r}{ {\left\| W \right\|}}\\s.t.{y_i}\left( {W \cdot {x_i} + b} \right) \ge r,i = 1,2, \cdots m\end{array} W,bmax∥W∥rs.t.yi(W⋅xi+