机器学习-SVM笔记
向量机的分类标准
将两个线性可分的点集(Linearly separable case)分类可以有很多种选择,但如何让机器学习后选择最佳的Decison Boundary?
向量机(Support Vector Machine)给出的标准是:找出一条曲线, 使其距离两个类别的最近的样本最远
支持向量:样本中距离超平面最近的一些点,这些点叫做支持向量。
软间隔和硬间隔
然而当样本数据有噪音点时,SVM同样需要处理欠/过拟合的问题。与之前的逻辑回归不同的是SVM控制过拟合的参数是C,但作用相当于正则化里的1/λ。
当C很大时,所得出的曲线会尽量的将所有的样本点都正确的分离出来,容错率很低。相当于逻辑回归中λ很小的情况,也就是过拟合。也叫硬间隔
当C很小的时候,所得出的曲线会容忍噪音点,不再那么固执的去把所有点分类正确。相当于逻辑回归中的λ很大的情况,这种情况下又有可能会出现欠拟合。也叫软间隔
所以如何调整参数C的取值,在欠拟合和过拟合之间保持一个平衡在SVM中是个很重要的问题。
非线性核函数分类-高斯函数
若数据样本并不是线性可分时,可以将二维不可分样本映射到高维空间,让样本在高维空间上可分。核函数可以帮助我们完成这个映射过程中设计到的数学计算问题,来简轻模型计算量和储存数据的内存使用量。
核函数类别:
高斯函数的目的是利用数据点的临近性作为新的feature:f(f1,f2,f3…) 来代替x(x1,x2,x3…)
评价临近性的函数也就叫做高斯函数:
其特性如下
简单来说就是数据x离标识点l越近 高斯函数值越接近1,越远越接近0。变量α2来控制收敛为1速率,变量值越大收敛越慢,变量值越小收敛越快。
模型构造过程如下:
通过这种转换特征的方式,高斯函数就达到了我们想简轻模型计算量和储存数据的内存使用量的目的。
多分类
分类问题一般有两种方法,假设有A,B,C三种类别
一种是分别计算 A vs BC,B vs AC, C vs AB,在每一个分类问题上求出最优解,然后合并。如果类别为K的话则需要做K次优化。
另外一种分别计算 A vs B, B vs C, A vs C,然后再就每个分类求出最优解。如果类别为K的话需要做K*(K-1)/2次计算。
我尝试在变量中为SVC中的变量decision_function_shape 设置不同的