[有监督学习]5.详细图解支持向量机(核方法)

支持向量机(核方法)
在深度学习出现之前,使用了核方法的支持向量机非常受欢迎。
通过在支持向量机中引入核方法(kernel methods)这个技巧,那些无法人力标注特征值的复杂数据也能被处理。当然,这个算法现在也用于解决各种分类和回归问题。


概述
本节介绍通过在支持向量机中引入核方法,使模型可以学习复杂的决策边界的做法。这里以分类为例进行介绍,但是对于回归问题,同样可以使用核方法。
线性支持向量机通过最大化间隔,可以得到尽可能远离数据的“好的”决策边界。但是由于决策边界必定为直线,所以它很难对如图 2-21 所示的“每个标签的边界为曲线的数据”进行分类。

▲图 2-21 以某个点为中心分布的数据


为了分隔如图 2-21 所示的数据,模型需要学习曲线的线性决策边界。支持向量机可以使用核方法学习复杂的决策边界。例如,对这次的数据使用核方法,模型可以学到如图 2-22 所示的圆形的决策边界。

▲图 2-22 支持向量机(核方法)
下面的“算法说明”部分将详细探讨核方法。


算法说明
核方法的一个常见解释是“将数据移动到另一个特征空间,然后进行线性回归”。对于这个解释,我们再详细地看一下。
首先,思考一下如何使线性不可分数据成为线性可分数据。假设有一个比训练数据更高维的空间,训练数据中的每一个点都对应着这个高维空间中的一个点。在这个高维空间中,训练数据对应的点是可以线性分离的,实际的训练数据是来自于该高维空间的投影。一旦有了这样的空间,模型就可以在高维空间中使用支持向量机来学习决策边界。最后,将高维空间的决策边界投影到由原始特征形成的向量空间上,得到决策边界
图 2-23 所示为在高维空间中对数据进行线性分离的情形,该数据原本是线性不可分的。

▲图 2-23 使原本线性不可分的数据变为线性可分


虽然构建线性分离的高维空间非常困难,但通过一个叫作核函数的函数,核方法就可以使用在高维空间中学习到的决策边界,而无须构建具体的线性分离的高维空间。
“详细说明”部分将介绍具有代表性的核函数。


示例代码
下面通过示例代码来看一下使用核方法的支持向量机如何学习呈圆形分布的数据的决策边界。我们生成呈圆形分布的数据,将其拆分为训练数据和验证数据,使用训练数据训练模型,使用验证数据评估正确率。代码中没有明确指定使用哪个核方法,这是因为代码默认使用 RBF(Radial Basis Function,径向基函数)核方法。
▼示例代码

from sklearn.svm import SVC
from sklearn.datasets import make_gaussian_quantiles # 用于生成高斯量化数据。
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 生成一个包含 300 个二维样本数据的数据集,类别数量为 2, 其中每个样本的特征数量为 2。这些数据是通过生成高斯分布的方式得到的,并根据特定的量化规则进行了分类。
X, y = make_gaussian_quantiles(n_features=2, n_classes=2, n_samples=300)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = SVC()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy_score(y_pred, y_test)

结果: 

0.9777777777777777

详细说明
学习结果因核函数而异
核方法中可以使用的核函数多种多样。使用不同的核函数,得到的决策边界的形状也不同。图 2-24 所示为使用具有代表性的核函数在相同的数据上训练支持向量机的结果,这些核函数分别是线性核函数、Sigmoid 核函数、多项式核函数和 RBF 核函数。

▲图 2-24 各种核函数


图 2-24a 中的线性核函数等价于线性支持向量机。图 2-24b 中使用 Sigmoid 函数作为核函数。从图中可以看出,通过改变核函数,模型学习到了曲线的决策边界。另外,图 2-24c 中的多项式核函数(二次)学习到了圆形的决策边界。从图 2-24d 中可以看到 RBF 核函数是如何学习更复杂的决策边界的。


注意点
使用核方法后,我们就无法清楚地知道支持向量机使用的是什么特征了。在将 RBF 作为核函数,并将 RBF 核函数的超参数 γ 设置为 3.0 时,模型学习的结果如图 2-25 所示。通过增加这个超参数的值,模型会从数据中学习更复杂的决策边界。

▲图 2-25 使用了 RBF 核函数的决策边界
图 2-25 中的模型学习的是一个复杂的决策边界,但我们已经不知道模型使用的是什么特征了。核方法适合用于“相比特征的可解释性更看重精度”的场景。还需要注意的是,得到的决策边界不一定是通过示例代码学习到的那种一目了然的决策边界。
由于这些特点,在使用支持向量机时,不宜立即使用非线性核函数,在此之前,应先使用线性核函数进行分析,以了解数据。

———————————————————————————————————————————

文章来源:书籍《图解机器学习算法》

作者:秋庭伸也 杉山阿圣 寺田学

出版社:人民邮电出版社

ISBN:9787115563569

本篇文章仅用于学习和研究目的,不会用于任何商业用途。引用书籍《图解机器学习算法》的内容旨在分享知识和启发思考,尊重原著作者宫崎修一和石田保辉的知识产权。如有侵权或者版权纠纷,请及时联系作者。
———————————————————————————————————————————

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值