【机器学习】支持向量机(SVM)原理与实战

文章目录

  • 前言
  • 一、什么是SVM
    • 1.1 SVM划分数据的依据
    • 1.2 SVM的损失函数推导
  • 二、SVM实战
    • 2.1 三种分类问题类型
    • 2.2 实际模型训练
  • 三、总结
    • 待补充的内容
  • 四、参考资料

本文属于我的机器学习/深度学习系列文章,点此查看系列文章目录

前言

本文涵盖对于支持向量机概念的理解(可视化模型),并拓展到其实际的应用当中,与以往的两个分类器LogisticRegression,DecisionTree的同样的数据集上做效果对比。

一、什么是SVM

支持向量机(Support Vector Machine,SVM)是非常经典的机器学习分类模型,常被作为baseline与其他模型的分类效果做对比。本质上SVM与其他线性分类器(如LogisticRegression)一样,也是通过训练模型拟合数据样本得到 y = w T x + w 0 y=\mathbf w^T\mathbf x +w_0 y=wTx+w0决策函数中的参数( w , w 0 \mathbf w,w_0 w,w0),重点在于损失函数的不同,导致超平面分界线的结果也不一样。因此,要理解SVM,需懂得两点:

  • SVM划分数据的依据
  • SVM的损失函数推导

1.1 SVM划分数据的依据

给定如下两类样本数据点,用一个超平面将两者划分开,一共有无数种划分办法,SVM定义了一种最好的划分办法,即最大间隔,所谓最大间隔就是超平面到两边最近样本点的间隔大小,如下图所示:
【机器学习】支持向量机(SVM)原理与实战_第1张图片

图中阴影部分是超平面与数据点之间的间隔大小,特殊标注的点是支持向量,其实我更愿意称其为支撑向量,因为就像是支撑木板(阴影区域)的钉子,要使得木板的面积最大。

这种划分方式的好处就在于给两边的数据都留出了最大的空间,能够保证尽可能将多的同类数据点划分到一边。

1.2 SVM的损失函数推导

根据SVM最大间隔的依据(两类样本点到超平面距离最大化),我们首先需要刻画数据点 ( x i , y i ) (\mathbf x_i,y_i) (xi,yi)到超平面的距离,这部分内容我在中已经提到过,这里沿用一下之前的图:
在这里插入图片描述

其中 w \mathbf w w是超平面法向量,绿色线是超平面,横纵轴是坐标系, x \mathbf x x是数据样本点, x p \mathbf x_p xp x \mathbf x x在超平面上的投影,由图可知,我们需要的是 x − x p \mathbf x-\mathbf x_p xxp w \mathbf w w上投影的长度

根据上面的关系可以建立如下关系式( z z z是数据点到超平面距离):
x = x p + z ( w ∣ ∣ w ∣ ∣ ) → w T x = w T x p + z ( w T w ∣ ∣ w ∣ ∣ ) , w T x p + w 0 = 0 ( 超 平 面 定 义 ) → w T x = − w 0 + z ∣ ∣ w ∣ ∣ → z = w T x + w 0 ∣ ∣ w ∣ ∣ \mathbf x = \mathbf x_p + z(\frac{\mathbf w}{||\mathbf w||})\\ \to \mathbf w^T\mathbf x = \mathbf w^T\mathbf x_p + z(\frac{\mathbf w^T \mathbf w}{||\mathbf w||}),\mathbf w^T \mathbf x_p + w_0=0(超平面定义)\\ \to \mathbf w^T \mathbf x = -w_0 + z||\mathbf w||\\ \to z = \frac{\mathbf w^T \mathbf x+w_0}{||\mathbf w||} x=xp+z(

你可能感兴趣的:(机器学习(深度学习),SVM,支持向量机,原理与实战)