SVM属于判别式的模型,主要是进行二分类的分类模型,现在模型也被广泛用于多分类。
理解svm的原理我们需要从以下几点来入手。
主要思想
核函数
松弛变量(偏移量)
SVM的主要思想:
根本问题就是要找一个分割线/分割平面。
思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。对于一个多维的样本集,系统随机产生一个超平面并不断移动,对样本进行分类,直到训练样本中属于不同类别的样本点正好位于该超平面的两侧,满足该条件的超平面可能有很多个,SVM正式在保证分类精度的同时,寻找到这样一个超平面,使得超平面两侧的空白区域最大化,从而实现对线性可分样本的最优分类。
支持向量机中的支持向量(Support Vector)是指训练样本集中的某些训练点,这些点最靠近分类决策面,是最难分类的数据点。SVM中最优分类标准就是这些点距离分类超平面的距离达到最大值;“机”(Machine)是机器学习领域对一些算法的统称,常把算法看做一个机器,或者学习函数。SVM是一种有监督的学习方法,主要针对小样本数据进行学习、分类和预测,类似的根据样本进行学习的方法还有决策树归纳算法等。
SVM的优点:
1、不需要很多样本,不需要有很多样本并不意味着训练样本的绝对量很少,而是说相对于其他训练分类算法比起来,同样的问题复杂度下,SVM需求的样本相对是较少的。并且由于SVM引入了核函数,所以对于高维的样本,SVM也能轻松应对。
2、结构风险最小。这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累积误差。
3、非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量)和核函数技术来实现,这一部分也正是SVM的精髓所在。
核函数;:
在进行数据分割过程中,对于二维平面无法进行区分的数据,也就是不可分数据,我们需要将数据映射到高纬上进行分割,找最合适的分割平面。
在数据的高纬度映射过程中,会使得我们模型的计算了=复杂度增加,模型的计算量大大增加,模型变得更加复杂,然后,加入了和函数就可以使得我们的计算仍然属于低纬度的计算,不会增加计算的时间复杂度。
偏移量:
在找最大的分割平面过程中,我们可能会找到某点的最大分割平面,存在局部最优,并没有考虑到全局的点,加入了偏移量后,分割平面可以在一定的范围内变化,可以使得我们的模型达到全局最优的效果,更加适合数据分割。
详细的原理见:
https://blog.csdn.net/dcrmg/article/details/53000150
然而,这只是最基础的原理,还未涉及到原理的计算参数的计算。入门都不算。