SPSSPRO,让数据分析更简单,问卷调查类数据分析不再愁 产品介绍 帮助中心 客户端
微信登录
  • 产品简介

  • 我的数据

  • PRO绘图

  • 数据处理

  • 数据分析

    • 描述性分析

    • 问卷分析

    • 综合评价

    • 差异性分析

    • 相关性分析

    • 预测模型

    • 统计建模

    • 计量经济模型

    • 医学统计模型

    • 机器学习分类

      • 决策树分类
      • 随机森林分类
      • adaboost分类
      • 梯度提升树(GBDT)分类
      • CatBoost分类
      • ExtraTrees分类
      • K近邻(KNN)分类
      • bp神经网络分类
      • 支持向量机(SVM)分类
        • 1、作用
        • 2、输入输出描述
        • 3、案例示例
        • 4、案例数据
        • 5、案例操作
        • 6、输出结果分析
        • 7、注意事项
        • 8、模型理论
        • 9、手推步骤
        • 10、参考文献
      • XGBoost分类
      • LightGBM分类
      • 朴素贝叶斯分类
      • 逻辑回归(梯度下降法)
    • 机器学习回归

    • 规划求解

    • 研究模型

    • 信号分析

    • 自定义算法

    • 过程能力分析

    • 控制图

    • 测量系统分析

    • 可靠性生存分析

支持向量机(SVM)分类

操作视频
SPSSPRO教程-支持向量机(SVM)分类

# 1、作用

支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面。

# 2、输入输出描述

输入:自变量 X 为 1 个或 1 个以上的定类或定量变量,因变量 Y 为一个定类变量。
输出:模型的分类结果和模型分类的评价效果。

# 3、案例示例

有一批 Iris 花,已知这批 Iris 花可分为 3 个品种,现需要对其进行分类。根据花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。用已有的数据训练一个支持向量机用作分类器。

# 4、案例数据


支持向量机分类案例数据

# 5、案例操作


Step1:新建分析;
Step2:上传数据;
Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;

step4:选择【支持向量机分类】;
step5:查看对应的数据数据格式,按要求输入【支持向量机分类】数据;
step6:进行参数设置(“更多设置”里的参数在客户端可进行设定)
step7:点击【开始分析】,完成全部操作。

# 6、输出结果分析

输出结果 1:模型参数
图表说明: 上表展示了训练该模型的时候,输入的参数以及训练所耗的时间。

​

输出结果 2:混淆矩阵热力图



图表说明: 上表以热力图的形式展示了混淆矩阵,可以通过右上角切换在测试数据集和训练数据集中的情况。
分析:
上图是训练集的分类结果,绝大部分样本分类正确,只有 1 个被分错的样本,说明分类效果较好。
下图是测试集的分类结果,绝大部分样本分类正确,只有 2 个被分错的样本,说明训练集训练出来的模型结果是有效实用的,分类效果较好。
​

输出结果 3:模型评估结果

图表说明: 上表中展示了训练集和测试集的分类评价指标,通过量化指标来衡量支持向量机对训练、测试数据的分类效果。
● 准确率:预测正确样本占总样本的比例,准确率越大越好。
● 召回率:实际为正样本的结果中,预测为正样本的比例,召回率越大越好。
● 精确率:预测出来为正样本的结果中,实际为正样本的比例,精确率越大越好。
● F1:精确率和召回率的调和平均,精确率和召回率是互相影响的,虽然两者都高是一种期望的理想情况,然而实际中常常是精确率高、召回率就低,或者召回率低、但精确率高。若需要兼顾两者,那么就可以用 F1 指标。
分析:
训练集的各分类评价指标都大于 0.9,说明模型在训练集的分类效果较好,模型具有实用性。
测试集的各分类评价指标都大于 0.9,说明模型在测试集的分类效果较好,模型具有实用性。
​

输出结果 4:测试数据预测评估结果

图表说明: 上表格为预览结果,只显示部分数据,全部数据请点击下载按钮导出。
上表展示了支持向量机模型对测试数据的分类结果,第一列是预测结果,第二列是因变量真实值,第三、四、五列分别是对所属每一个分类水平概率的预测结果,最终分类预测结果值是拥有最大预测概率的分类组别。其余列是各自变量的值。
​

输出结果 6:模型预测与应用(此功能只在客户端支持使用)
注:当无法进行预测功能时,可检查数据集中是否存在定类变量或者缺失值:
● 当存在定类变量时,请在用于训练模型的数据集和用于预测的数据集中将变量编码,再进行操作。
(SPSSPRO:数据处理->数据编码->将定类变量编码为定量)
● 当用于预测数据的数据集中存在缺失值时,请删去缺失值再进行操作。

情况 1:在上面模型评估后,模型分类结果较好,具有实用性,这时我们将该模型进行应用。点击【模型预测】上传文件可以直接得到预测结果。


​

情况 2:若是上传的数据包括因变量真实值,不仅仅可以得到预测结果,还可以得到当前数据分类混淆矩阵和分类评价效果。




​

# 7、注意事项

  • 由于支持向量机具有随机性,每次运算的结果不一样。若需要保存本次训练模型,需要使用 SPSSPRO 客户端进行。
  • 支持向量机的参数修改需要使用 SPSSPRO 客户端进行。

# 8、模型理论

SVM 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。
任意超平面可以用下面这个线性方程来描述:

建立最优化问题如下

式中:ω 为法向量;b 为常数项;C 为惩罚因子;ξi 为松弛变量.
找出最优法向量 ω 和常数项 b 的解就可以得 到最优分类面,为了将上式转化为二次规划问题, 引入相应 Lagrange 函数,则分类问题变为

式中:αi,βi 为 Lagrange 乘子,αi≥0,βi≥0.
根据对偶原理,上式可变为

为核函数。
对于线性不可分问题,支持向量机需引进核函 数把数据从低维空间向高维空间投射,达到线性可 分的目的.常用的核函数有线性核函数、多项式核函数、径向基核函数以及感知器核函数,不同核函数得到的支持向量机形式也不同.
​

# 9、手推步骤

现有四个数据点,正例点 (3, 3) (4, 3) (10, 10) 负例点 (1, 1) ,用支持向量机求解超平面过程如下:

step1:写出原始问题

minw,b12∥w∥2s.t.yi(w⋅xi+b)≥1,i=1,2,3,4

step2:引入拉格朗日函数 对每个约束引入拉格朗日乘子αi≥0:

L(w,b,α)=12∥w∥2−∑i=14αi[yi(w⋅xi+b)−1]

step3:KKT条件
(1)稳定性条件

∂L∂w=w−∑i=14αiyixi=0⇒w=∑i=14αiyixi∂L∂b=−∑i=14αiyi=0⇒∑i=14αiyi=0

(2)原始可行性

yi(w⋅xi+b)≥1,i=1,…,4

(3)对偶可行性

αi≥0,i=1,…,4

step4:写出对偶问题
将w=∑αiyixi代回拉格朗日函数

L=12‖∑iαiyixi‖2−∑iαiyi(∑jαjyjxj)⋅xi−b∑iαiyi+∑iαi

利用∑i=14αiyi=0消去含b项

L=∑iαi−12∑i∑jαiαjyiyj(xi⋅xj)

对偶问题:

maxα∑i=14αi−12∑i=14∑j=14αiαjyiyj(xi⋅xj)s.t.αi≥0,∑i=14αiyi=0

step5:代入数据

x1⋅x1=18,x1⋅x2=21,x1⋅x3=60,x1⋅x4=6x2⋅x2=25,x2⋅x3=70,x2⋅x4=7x3⋅x3=200,x3⋅x4=20x4⋅x4=2y1=y2=y3=1,y4=−1

对偶目标函数:

W(α)=α1+α2+α3+α4−12[18α12+25α22+200α32+2α42+42α1α2+120α1α3−12α1α4+140α2α3−14α2α4−40α3α4]

约束:α1+α2+α3−α4=0,即α4=α1+α2+α3
代入得W(α1,α2,α3)=2(α1+α2+α3)−12[8α12+13α22+162α32+20α1α2+72α1α3+90α2α3]
对W(α1,α2,α3)求偏导得到

∂W∂α1=2−(8α1+10α2+36α3)=0∂W∂α2=2−(13α2+10α1+45α3)=0∂W∂α3=2−(162α3+36α1+45α2)=0

即

8α1+10α2+36α3=2(1)10α1+13α2+45α3=2(2)36α1+45α2+162α3=2(3)

解方程得α2<0,说明在内部α1,α2,α3>0无解,最优解在边界上(某些αi=0)。
观察数据分布:点 (10,10) 远离其他点,不太可能是支持向量,假设α3=0 。
方程组变为

8α1+10α2=2(1′)10α1+13α2=2(2′)

求解得到α2=−1<0不满足α2>0,所以α2=0。
假设α2=0,α3=0,有

8α1=2⇒α1=0.25α4=α1+α2+α3=0.25W=2×0.25−12[8×(0.25)2]=0.5−0.25=0.25w=0.25(3,3)−0.25(1,1)=(0.5,0.5)

所以正例支持向量是x1(3,3),负例支持向量是x4(1,1)。
用正例支持向量求解b:

x1=(3,3),y1=1:1⋅(w⋅(3,3)+b)=1w⋅(3,3)=0.5×3+0.5×3=1.5+1.5=33+b=1⇒b=1−3=−2

所以最终超平面方程为0.5x1+0.5x2−2=0,即x1+x2−4=0。

# 10、参考文献

[1]Scientific Platform Serving for Statistics Professional 2021. SPSSPRO. (Version 1.0.11)[Online Application Software]. Retrieved from https://www.spsspro.com.
[2] 周志华.机器学习.北京:清华大学出版社,2016:pp.121-139, 298-300
[3]李航.统计学习方法.北京:清华大学出版社,2012:第七章,pp.95-135


​

​

建议反馈