SVM 是机器学习中的一种分类方法,SVM 的目标是找到一个超平面,找到每个分类的数据点离超平面的距离最小,这些最小距离的数据点就是 Support Vector 支持向量。
SVM 分为线性可分和线性不可分,线性可分又分为硬距离和软距离,软距离添加了一些容错,允许某些数据点分类错误。对于线性不可分,通过核函数转为线性可分。
- 线性可分,公式如下,确保 yi(w⋅xi+b)≥1
- 软距离,允许分类错误,确保 yi(w⋅xi+b)≥1−ξi
- 线性不可分,通过核函数将非线性函数转为线性函数,核函数可以是线性函数或者高斯函数。确保 0≤αi≤C,α 为拉格朗日乘子。
SKLearn 实现 SVM
线性可分,硬距离,完全可分。
import numpy as np
import pandas as pd
import matplotlib.pyplot