Logo
Section 1 / 4

支持向量机的实现

本节课将介绍支持向量机的基本概念及其实施步骤。

导入

支持向量机的实现

本节课将介绍支持向量机的基本概念及其实施步骤。

支持向量机(SVM)被认为是监督学习中分析复杂数据和降低异常值影响的最佳分类器之一。

SVM 于20世纪90年代由计算机科学领域提出,最初被设计为一种双目标预测技术,用于预测数值型和类别型结果。如今,SVM 主要用于预测类别型结果的分类任务,类似于逻辑回归。

在二分类预测场景中,SVM 与逻辑回归类似,都是试图基于变量之间的数学关系来区分不同类别。但与逻辑回归不同的是,SVM 力求以最大间隔分离数据类别,即在划分的数据点之间保持最大的距离。

其关键特征是“间隔”(margin),即边界线到最近数据点的距离乘以2。该间隔能够更好地应对新数据点以及可能侵犯逻辑回归边界线的异常值。

示例

给定以下负类标记的数据点:{(1,1), (2,1), (1,-1), (2,-1)}
以及以下正类标记的数据点:{(4,0), (5,1), (5,-1), (6,0)}

  • 绘制所有给定的数据点。

  • 绘图后,需要识别出距离最近的数据点。其中,(2,1) 和 (2,-1) 是负类标记的数据点,(4,0) 是正类标记的数据点。据此可知它们彼此最为接近。

令:
s1=(21)s1=\binom{2}{1}, s2=(2−1)s2=\binom{2}{-1},s3=(40)s3=\binom{4}{0}

现在写出超平面的方程。每个向量都增加一个偏置项1。
s1′=((21)1)s1'=\binom{\binom{2}{1}}{1}, s2′=((2−1)1)s2'=\binom{\binom{2}{-1}}{1},s3′=((40)1)s3'=\binom{\binom{4}{0}}{1}

建立如下方程组:
α1s1′.s1′+α2s2′.s1′+α3s3′.s1′=−1\alpha_1s_1'.s1' + \alpha_2s_2'.s1' + \alpha_3s_3'.s1'=-1
α1s1′.s2′+α2s2′.s2′+α3s3′.s2′=−1\alpha_1s_1'.s2' + \alpha_2s_2'.s2' + \alpha_3s_3'.s2'=-1
α1s1′.s3′+α2s2′.s3′+α3s3′.s3′=1\alpha_1s_1'.s3' + \alpha_2s_2'.s3' + \alpha_3s_3'.s3'=1

  • 计算 α1,α2\alpha_1, \alpha_2 和 α3\alpha_3 的值:

展开点积得:
α1((21)1).((21)1)+α2((2−1)1).((21)1)+α3((40)1).((21)1)=−1\alpha_1 \binom{\binom{2}{1}}{1} . \binom{\binom{2}{1}}{1} + \alpha_2 \binom{\binom{2}{-1}}{1} . \binom{\binom{2}{1}}{1} + \alpha_3 \binom{\binom{4}{0}}{1} . \binom{\binom{2}{1}}{1}=-1
α1((21)1).((2−1)1)+α2((2−1)1).((2−1)1)+α3((40)1).((2−1)1)=−1\alpha_1 \binom{\binom{2}{1}}{1} . \binom{\binom{2}{-1}}{1} + \alpha_2 \binom{\binom{2}{-1}}{1} . \binom{\binom{2}{-1}}{1} + \alpha_3 \binom{\binom{4}{0}}{1} . \binom{\binom{2}{-1}}{1}=-1
α1((21)1).((40)1)+α2((2−1)1).((40)1)+α3((40)1).((40)1)=1\alpha_1 \binom{\binom{2}{1}}{1} . \binom{\binom{4}{0}}{1} + \alpha_2 \binom{\binom{2}{-1}}{1} . \binom{\binom{4}{0}}{1} + \alpha_3 \binom{\binom{4}{0}}{1} . \binom{\binom{4}{0}}{1}=1

计算得:
6α1+4α2+9α3=−16\alpha_1 + 4\alpha_2 + 9\alpha_3=-1
4α1+6α2+9α3=−14\alpha_1 + 6\alpha_2 + 9\alpha_3=-1
9α1+9α2+17α3=19\alpha_1 + 9\alpha_2 + 17\alpha_3=1

解此三元一次方程组得:
α1=−3.25\alpha_1 = -3.25,α2=−3.25\alpha_2 = -3.25,α3=3.5\alpha_3 = 3.5

计算权重向量 w′w'

$w' = \sum_{i=1}^{3} \alpha_i s_i'$

代入计算:
w′=−3.25((21)1)+(−3.25)((2−1)1)+3.5((40)1)w' = -3.25 \binom{\binom{2}{1}}{1} + (-3.25) \binom{\binom{2}{-1}}{1} + 3.5 \binom{\binom{4}{0}}{1}

结果为:
w′=((10)−3)w' = \binom{\binom{1}{0}}{-3}

超平面方程

$y = wx + b$

其中,
w=(10)w = \binom{1}{0}(方向平行于 y 轴)
b=−3b = -3,或写作 b+3=0b + 3 = 0

该超平面成功将正类与负类标记的数据点分隔开。

支持向量机(SVM)的实现通常包括以下步骤:

    1. 导入库
    1. 导入数据集
    1. 删除无关变量
    1. 转换非数值型变量
    1. 设置 X 和 y 变量
    1. 选择算法
    1. 模型评估
    1. 网格搜索
    1. 网格搜索预测

练习

本章将使用支持向量机算法作为二分类器,预测用户是否会点击在线广告。使用第6章介绍的 Advertising 数据集,模型的输入变量包括 Age(年龄)、Male(性别)、Daily Time Spent On Site(每日网站停留时间)、Area Income(地区收入)和 Daily Internet Usage(每日互联网使用时长)。

在接下来的课程中,你将详细学习 SVM 的具体实现步骤。

逻辑回归

SVM 实现步骤:1 到 7