支持向量机SVM

是什么?

支持向量机SVM(Support Vector Machine)是一个有监督的学习模型。
SVM的主要思想可以概括为两点:
⑴它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而 使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能;
⑵它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。

SVM,常用的核函数有以下4种:
⑴线性核函数K(x,y)=x·y;
⑵多项式核函数K(x,y)=[(x·y)+1]^d;
⑶径向基函数K(x,y)=exp(-|x-y|^2/d^2)
⑷二层神经网络核函数K(x,y)=tanh(a(x·y)+b)


什么用?

通常用来进行模式识别、分类、以及回归分析。


怎么用?

libsvm


优点:

  1. 对线性不可分问题通过将数据映射到高维空间在通过一个线性超平面实现线性划分(或回归)
  2. SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
  3. 小规模数据集上效果比较好

缺点:
SVM一般只能用在二类问题,对于多类问题效果不好。
在大规模的数据集上训练耗时比较长

你可能感兴趣的:(机器学习,svm)