机器学习——libSVM(一)

2021-03-26  本文已影响0人  生信小工厂

一、什么是支持向量机

支持向量机(Support Vector Machine,SVM)也称为支持向量网络。是一类按监督学习方式对数据进行二元分类的广义线性分类器。(百度百科)

1.基础概念的了解

①线性可分

在二维空间中,两类点被一条直线完全分开称之为线性可分

线性可分
非线性可分
用数学语言来描述就是
D_0D_1分别是N维欧式空间中的两个点集。如果存在N维向量w和实数b,使得所有属于D_0的点都有wx_i+b>0,而对于所有属于D_1的点x_j则有wx_j+b<0,则我们称D_0D_1线性可分。

②Margin间隔

一个线性函数wx_j+b=0将样本分为两类,将这个函数向左平移直到与一个点相切后停止,向右移动后同理,则我们说这两个平移后的直线间的间隔称之为margin。与这两个边界相切的那些点称之为Support vectors也就是支持向量。

Margin

2.数学推导

超平面
设每个点的表达式为
g(x)=w \cdot x+b
它们在空间中满足
f(x,w,b)=sign(g(x))=sign(w \cdot x+b)

sign是一种数学函数,在数学和计算机运算中,其功能是取某个数的符号(正或负): 当x>0sign(x)=1;当x=0sign(x)=0; 当x<0sign(x)=-1

式中的w是一个向量,那么它的方向是指向哪边呢?我们在超平面上取两个点x_1x_2,两点均满足方程w \cdot x+b=0那么有
w \cdot x_1+b=w \cdot x_2+b
w(x_1+x_2)=0
也就是说w垂直于超平面,是超平面的法向量

w是超平面的法向量

设空间中有任意一点x向超平面投影,投影点为x'
二者之间的距离设为M

投影
计算M(方法一)

对于x
g(x)=w \cdot x+b
x=x'+ \lambda w
联立上两式
g(x)=w(x'+ \lambda w)+b
=wx'+b+\lambda w \cdot w
=\lambda w \cdot w
那么xx'之间的距离M
M=\begin{vmatrix} \begin{vmatrix}x-x'\end{vmatrix} \end{vmatrix}=\begin{vmatrix} \begin{vmatrix}\lambda w\end{vmatrix} \end{vmatrix}
={ \begin{vmatrix}g(x)\end{vmatrix}*\begin{vmatrix} \begin{vmatrix} w\end{vmatrix} \end{vmatrix} \over w \cdot w}
={ \begin{vmatrix}g(x)\end{vmatrix}\over \begin{vmatrix} \begin{vmatrix}w\end{vmatrix} \end{vmatrix}}

计算M(方法二)

要计算这两点之间的距离我们首先来看一下在二维空间中点(x,y)到直线Ax+By+C=0的距离公式为:
{Ax+By+C\over \sqrt{ A^2+B^2}}
扩展到n维空间后,点x到直线w \cdot x+b=0的距离为
M={ \begin{vmatrix}w \cdot x+b\end{vmatrix}\over \begin{vmatrix} \begin{vmatrix}w\end{vmatrix} \end{vmatrix}}

参考文章
【机器学习】支持向量机 SVM(非常详细)
支持向量机(SVM)入门理解与推导

上一篇下一篇

猜你喜欢

热点阅读