浅谈SVM三特征模型的可视化与拟合度的分析

支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使训练集上正负样本间隔最大。SVM既可以用来解决线性可分的训练数据,也可以利用核函数解决线性不可分的训练数据。下面利用两张图片直观的表示数据是否线性可分:


浅谈SVM三特征模型的可视化与拟合度的分析

图1 线性可分

浅谈SVM三特征模型的可视化与拟合度的分析


图2 线性不可分

针对图2在二维平面上线性不可分的数据,是否有办法找出一个模型从而正确的分类数据呢?答案就是投影到更高维的空间中!以图2为例,令

浅谈SVM三特征模型的可视化与拟合度的分析

可得到这些数据在三维空间中的分布,如图3所示:

浅谈SVM三特征模型的可视化与拟合度的分析

图3 3维空间中的数据

我们能够很直观的找出一个平面区分这两种数据。SVM的原理将数据从低维空间投影到更高维的空间,在该高维空间下,用一个超平面分割这些数据,其核心就是利用核函数。常用的核函数如表1所示:

表1 常用核函数

浅谈SVM三特征模型的可视化与拟合度的分析

在本文中,给定一些3特征训练数据,利用高斯核 (RBF) 训练模型。其中有两个非常重要的参数: C和gamma。C表示模型对误差的惩罚系数,gamma反映了数据映射到高维特征空间后的分布;C越大,模型越容易过拟合;C越小,模型越容易欠拟合。gamma越大,支持向量越多,gamma值越小,支持向量越少。gamma越小,模型的泛化性变好,但过小,模型实际上会退化为线性模型;gamma越大,理论上SVM可以拟合任何非线性数据。下面给出3特征训练数据的代码:


浅谈SVM三特征模型的可视化与拟合度的分析

浅谈SVM三特征模型的可视化与拟合度的分析

浅谈SVM三特征模型的可视化与拟合度的分析

令gamma=0.1,运行代码,得出图4的模型:

 

浅谈SVM三特征模型的可视化与拟合度的分析

图4 gamma=0.1时的模型

其中粉色点代表训练数据,红点代表测试数据 (其实际背景为异常点),绿色为正常点。再令gamma=4,我们可以得出如下模型:

浅谈SVM三特征模型的可视化与拟合度的分析

图5 gamma=20时的模型

虽然采用相同的核函数,在参数的选择上,gamma过高过低都不利于建立准确的模型。图4由于gamma太低,导致模型欠拟合;而图5又因为gamma值太高,导致模型过拟合,就像以为只会背题而不会做题的学生,泛化能力差。利用SVM能够较好地分类数据,在核函数的选择、参数的调整上,需要针对不同的训练集做出适当的模型。对数据的处理过程也是一个需要考虑的因素,通常只给定训练数据,我们需要将这些训练数据分成训练集和测试集,一般训练数据占2/3,测试集占1/3。同时,尽量随机的选择这些训练集和测试集,否则也会造成训练模型的不正确。例如,给定99个数据,其中正例有66个,负例33个,如果将66个正例全部用作训练集,剩余的33个为测试集,其模型的精确度可想而知。


上一篇:拉格朗日插值


下一篇:《SQL必知必会》学习笔记