数据挖掘知识点串烧:SVM
本文为数据茶水间群友原创,经授权在本公众号发表。
关于作者:DD-Kylin,一名喜欢编程与机器学习的统计学学生,勤学好问,乐于钻研,期待跟大家多多探讨机器学习的相关内容~
0x00 前言
有人认为支持向量机是所有机器学习算法中最难的一个了,但是仔细去看数据挖掘的招聘要求,你会发现支持向量机(SVM)出现的频率异常地高。果然,该过的坎再难都得跨,那就让我们一起来看看SVM究竟是什么吧~
0x01 初始SVM
问题1:你能给我讲讲什么是SVM吗?
回答:SVM是一种二分类模型,它的基本模型是在特征空间中寻找间隔最大化的分割超平面的线性分类器。如在下面的两个类别中(暂且称两个类为黄球和红球),
我们要将其分割开的方式有多种,但是究竟哪一种才是最优的分割方式呢?这就是支持向量机所要解决的问题。简单而又通俗点的理解:支持向量机的优化目标是找到一条线(w和b), 使得离该线最近的点之间的距离最长。但是在这个过程中,不同的数据所采用的分割策略可能会有所不同,主要的分割策略有三种:
- 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
- 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
- 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
问题2:你知道什么是支持向量吗?alpha什么时候为0什么时候不为0?
回答:支持向量的本质其实也是向量。支持向量机是想找到一个分割超平面或者说分类面,使得它所产生的结果是最鲁棒的,即对未知实例的泛化能力是最强的(这也是支持向量机为什么采用间隔最大化的原因之一)。而支持向量就是这些支撑分割超平面的数据点,其实就是距离分界线最近的点,或者说分界面就是靠这些数据点来确定的,它们支撑着分界面。 对于边界上的样本来说,alpha不等于0,这些边界上的样本点属于支持向量,它们会对最终的结果产生影响。而对于非边界上的样本点来说,alpha等于0, 非边界上的这些样本点是非支持向量,非支持向量不会对最终的结果产生影响。
举个栗子,如在下方的图形中,A、B、C三点就