1、基本介绍
(1)概述:SVM是指支持向量机。其是一种分类方法。SVM在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。SVM包括SVC(支持向量机分类器)和SVR(支持向量机回归器)。该算法是建立在统计学习理论的VC维理论和结构风险最小化原理基础之上的,根据有限的样本信息在模型的复杂性(对特定样本的学习精度)和学习能力(无错误地识别任意样本的能力)之中寻求最佳折中(trade off),以获取更好的推广能力。
(2)优点
[1]
[2]
[3]
(3)缺点
[1] 对大规模的训练样本难以实施(因为求解过程中需要借助二次规划,当样本量很大时,计算将有非常大的开销);
[2]
[3] 对缺失数据敏感。
2、算法流程
(1)问题说明
(2)算法步骤(文字描述版)
(3)算法步骤(数学描述版)
3、详细例子
(1)例子一(靠嘴模拟)
(2)例子二(R语言实操)
[1] 代码
library(e1071) # 加载e1071包,使用里面的svm函数进行分类决策
data(iris) # 获取数据集
attach(iris) # 绑定数据集
x<-subset(iris,select=-Species) # 构建特征向量,subset函数是用于从某一个数据框中选择出符合某条件的数据或是相关的列
y<-Species # 构建类别向量
model<-svm(x,y) # 构建svm模型
summary(model) # 查看描述统计结果
pre<-predict(model,x) # 对模型进行预测
table(pre,y) # 查看预测的结果的混淆矩阵,分类结果不错
[2] 结果