机器学习sklearn-支持向量机

支持向量机SVM 支持向量网络

可以做有监督学习、无监督学习、半监督学习

监督学习:线性二分类与多分类、非线性二分类与多分类、普通连续性变量的回归、概率型连续变量的回归

支持向量机 深度学习之外机器学习的天花板存在

SVM可以用来做图像分类和图像分割系统

使用支持向量机来识别用于模型预测的各种特征

支持向量机的分类方法,是在这组分布中找出一个超平面作为决策边界,使模型在数据上的分类误差接近于小,尤其是在未知数据集上的分类误差尽量小。

超平面:是一个空间的子空间,它是维度比所在空间小一维的空间,如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则超平面是一维的直线。

二分类问题中超平面是决策边界

决策边界margin 超平面往两边移动直到碰到最近的样本点为止

支持向量机就是通过找出边际最大的决策边界来对数据进行分类的分类器

支持向量机的理解:

机器学习sklearn-支持向量机_第1张图片

sklearn中的svm

机器学习sklearn-支持向量机_第2张图片

 libsvm库 直接使用

sklearn.svm.SVC

 为了推导和计算能简便规定决策边界以上的点标签都为正;决策边界以下的点标签都为负。

两类数据中距离决策边界最近的点被称为支持向量

参数向量不可以是零向量

损失函数变成拉格朗日乘数形态   解决凸优化问题   损失函数+约束条件

拉格朗日乘数α   是否符合约束条件分情况讨论

约束条件满足 一定能求出解,不满足条件损失函数最小化 参数w b就没有解,

机器学习sklearn-支持向量机_第3张图片

 定义对偶差异,即拉格朗日函数最优解语气对偶函数最大值之间的差值

 机器学习sklearn-支持向量机_第4张图片

matplotlib.axex.Axes.contour 专门用来绘制等高线的函数

只要在样本构成的平面上,把所有到决策边界的距离为0的点相连,就是我们的决策边界,二爸所有到决策边界的相对距离为1的点相连,就是超平面

np.meshgrid 制作网格

三维情况做决策边界需要插进去一个平面 二维平面作为三维空间中的超平面 ,本质是将数据投影到高维空间中直到数据线性可分

 非线性SVM损失函数初始形态为:

机器学习sklearn-支持向量机_第5张图片

 重要参数kernel   linear线性  poly多项式核 偏线性  sigmoid双曲正切核,非线性  rbf高斯径向基,偏非线性

核技巧 是一种能够使用数据原始空间中的向量计算来标识升维后的空间中的点积结果的数学方式,这个原始空间中的点积函数就叫做核函数

正是因为有了核函数才能帮助做非线性等需求

通过不同核函数在不同数据集上的表现来探索该使用什么核函数

如果确定使用svm了 可以先用rbf来测试,效果最好

数据完全线性可分的,训练误差比较好很小

不完全线性可分的数据集,需要引入软间隔的概念,当两组数据是完全线性可分,可以照吃一个决策边界是的训练集上的分类误差为0 是硬间隔,两组数据几乎是完全线性可分,但决策边界在训练集上存在较小误差,被称为软间隔

需要找到最大边际和被分错的样本数量之间的平衡  松弛系数,可以作为点在原始决策边界上的分类错误的程度的表示,隔得越远分的越错。

松弛系数的惩罚力度C,拉格朗日乘数值在硬间隔的条件下需要大于等于0,现在在软间隔条件下被要求不能够大于用来控制惩罚项的惩罚力度C

重要参数C 用于权衡将训练样本的正确分类与决策函数的边际最大化 ,C越小 边际越小,越接近硬间隔,分类准确度更高,速度更慢;C越大,边际越大,误差越大。

你可能感兴趣的:(机器学习,机器学习,支持向量机,sklearn)