支持向量机
作者:樱花猪
摘要:
本文为七月算法(julyedu.com)12月机器学习第十二次次课在线笔记。SVM是一种常见的分类器,在很长一段时间起到了统治地位。而目前来讲SVM依然是一种非常好用的分类器,在处理少量数据的时候有非常出色的表现。
引言:
SVM是一个非常常见的分类器,在真正了解他的原理之前我们多多少少都有接触过他。本位将会详细的介绍SVM的原理、目标以及计算过程和算法步骤。我们针对线性可分数据和线性不可分数据介绍了线性支持向量机和非线性支持向量机,并在最后简单阐述非线性支持向量机的重要概念核函数。
SVM实际上就是一个求解极值凸优化的过程,想要更好的了解SVM一定要非常熟悉有关于“凸优化”的内容。当了解“凸优化”后,SVM实际上变得非常容易。
预备知识
凸优化
一、线性可分支持向量机
1、概念
给定线性可分训练数据集,通过间隔最大化得到的分离超平面为:
相应的分类决策函数:,这个决策函数成为线性可分支持向量机。
某个确定的特征空间转换函数,它的作用是将x映射到(更高的)维度。(核函数)
求解分离超平面问题可以等价为求解相应的凸二次规划问题。
分割平面:
训练集:
目标值:
新数据的分类:
2、求解方法
建立目标函数:通过等比例缩放w的方法,使得两类点的函数值都满足。
原目标函数:
新目标函数:
拉格朗日乘子法可以得出:
原问题:
原始问题的对偶问题:
计算方案:
1、计算:
推导方式:目标函数的凸优化求极值,为约束最优化解。
2、求得分割超平面
3、分类决策函数
二、线性支持向量机:
若数据线性不可分,则增加松弛影子,使函数间隔加上松弛变量大于等于1,则约束条件变成:
目标函数:
求解过程类似线性可分支持向量机,但是在求的时候,有所区别(要考虑松弛因子)
实践中往往取支持向量的所有值取平均,作为b*
三、核函数
可以使用核函数,将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分。
常见的核函数:多项式核函数、高斯核函数、字符串核函数。
在实际应用中,往往依赖先验领域知识/交叉验证等方案才能选择有效的核函数。
如果有更多先验信息,则使用高斯核函数。