《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解

支持向量机:

  • 1、SVM
    • 1.1 算法原理
    • 1.2 公式推导过程
  • 2、常用的核函数
    • 2.1 如何选择算法
  • 3、sklearn中的SVM

1、SVM

support vector machine 支持向量机(二分类模型)
这是一种分类算法,针对于数据小的情况,非线性以及高维的分类问题。
在小数据的情况下,神经网络的的拟合算法都没有svm

1.1 算法原理

svm - 构造出最大间距的边界,可以提高分类算法的鲁棒性

1.2 公式推导过程

公式推导过程

其中:w为超平面方向;b为位移项,决定距离;

于是:求解svm算法,就是满足约束条件的前提下,求解||W ^2||的最小值

但是:
对于那种线性不可分的数据集,用上面这种方法找不到分隔超平面,应该怎么办呢???
这种时候就需要加入一个

松弛系数
《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第1张图片

2、常用的核函数

线性函数:
在这里插入图片描述

多项式函数
在这里插入图片描述

高斯核函数
在这里插入图片描述

2.1 如何选择算法

《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第2张图片

3、sklearn中的SVM

SVC - 用来进行分类的任务
SVR - 用来进行数值回归任务

以SVC为例子:
《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第3张图片

1、选择SVM的核函数,由参数kernel指定,其中linear表示线性函数,只能产生直线形状的分割超平面
2、核函数表示:

  • 线性函数 - linear
  • 多项式函数 - poly
  • 高斯核函数 - rbf

3、注意点:

  • 线性函数只需要指定kernel
  • 多项式函数还需要指定degree
  • 高斯核函数还需要指定gamma,对应的是1/(2σ^2)的值
    《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第4张图片

另一个例子:

俩个特征,三个类别的数据集,用四个SVM算法拟合数据集,分别用线性核函数,三阶多项式核函数,y = 0.5和y = 0.1的高斯核函数,最后将拟合画面全部都拟合出了。
《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第5张图片
plot_hyperplane()函数 - 画出样本点,同时画出分类区间

具体功能:
《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第6张图片

最后的图片:
《scikit-learn机器学习》支持向量机① - SVM+核函数+sklearn中的SVM 基本算法原理理解_第7张图片

你可能感兴趣的:(sklearn,机器学习,python,机器学习,scikit-learn,线性回归,支持向量机)