前言:
而今姐妹们对“svm算法难吗”可能比较珍视,朋友们都需要知道一些“svm算法难吗”的相关文章。那么小编同时在网摘上搜集了一些对于“svm算法难吗””的相关资讯,希望各位老铁们能喜欢,你们快快来学习一下吧!20世纪90年度,神经网络在研究人员中受到一定重视,但一种新的机器学习方法在这时声名鹊起,这种方法就是核方法(kernel method)。核方法是一组分类算法,其中最有名的就是支持向量机(support vector machine, SVM)。虽然Vladimir Vapnik和Alexey Chervonenkis早在1963年就发表了较早版本的线性公式,但SVM的现代公式由Vladimir Vapnik和Corinna Cortes于20世纪90年代初在贝尔实验室提出,并发表于1995年。
1、SVM简介
SVM的目标是通过在属于两个不同类别的两组数据点之间找到良好的决策边界(decision boundary)来解决分类问题。决策边界可以看作一条直线或一个平面,将训练数据划分为两块空间,分别对应于两个类别。对于新数据点的分类,只需判断位于决策边界的哪一侧。
2、SVM的训练过程
SVM通过两步来寻找决策边界:
(1)将数据映射到一个新的高维空间,这时决策边界可以用一个超平面来表示。
(2)尽可能让超平面与每个类别最近的数据点之间的距离最大化,然后计算出良好决策边界,这样决策边界可以很好地推广到训练数据集之外的新样本。
将数据映射到高维空间从而使分类问题简单化,这一想法很好,但在实践中很难实现。这时就需要用到核技巧(kernel trick),其核心思想为:要想在新的表示空间中找到良好的决策超平面,无需在新空间中直接计算点的坐标,只需要在新空间中计算点对之间的距离,而利用核函数(kernel function)可以高效地完成这种计算。核函数是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这两点在目标表示空间中的距离,从而避免了对新表示进行直接计算。核函数通常是人为选择的,而不是从数据中学到的,对于SVM而言,只有分割超平面是通过学习得到的。
3、SVM的优缺点
优点:
效果好,分类边界清晰;在高维空间中很有效;在空间维数大于样本数的情况下很有效;占用内存小,计算效率高。
缺点:
如果数据量过大,或者训练时间过长,SVM效果不佳; 如果数据中存在大量噪声,SVM效果不好;SVM在图像分类等感知问题上的效果也不好;SVM不能直接提供概率估计,需要进行多次交叉验证,代价过高。
SVM刚刚出现时,在简单的分类问题上表现出了最好的性能。当时只有少数机器学习方法得到大量的理论支持,并且适用于严谨的数学分析,因而非常易于理解和解释,SVM就是其中之一。由于SVM具有这些有用的性质,其在很长一段时间里非常流行。
(本文部分内容来自《Deep Learning with Python》,Francois Chollet著,张亮 译)
标签: #svm算法难吗