【吴恩达机器学习笔记】十、支持向量机

简介: 【吴恩达机器学习笔记】十、支持向量机

十、支持向量机


1. 优化目标

在讲支持向量机之前,我们先从逻辑回归开始渡过到支持向量机。

e10c716f32be4a44ab51d030b495754a.png



上面图中粉红色的那条线就是支持向量机的曲线,和逻辑回归很相似,代价函数都分两个部分构成。


支持向量机(Support vector machine)- SVM

c282008bed9c41eca229a4e03342e548.png



支持向量机和逻辑回归不相同的主要在两个地方:


支持向量机代价函数没有m,因为就算没有m对最终θ的结果都没有影响,上面图左下就举了个例子。

逻辑回归的代价函数分两个部分,像上面一样我们分成A和B两部分,逻辑回归对于λ较为看重,因为它决定了A所占的权重。支持向量机没有λ,而是用另一种方式表示,拿C来代替,它会放在A上面,决定着B的权重。


3ee270d77dc74e6494fecd19dcd9f52d.png

支持向量机还有一个地方与逻辑回归不同的是,逻辑回归假设函数输出的是概率,而支持向量机假设函数输出的结果是直接预测了y是1还是0。


2f7212b4041543539e937c6f8afd7024.png


2. 直观上对大间隔的理解

来看看支持向量机代价函数肚饿图像,会发现:


当y=1时,我们希望θTx ≥ 1才能得到z为0,而不是单纯的只需其≥0即可。

当y=1时,我们希望θTx 小于等于 -1才能得到z为0,而不是单纯的只需其≤0即可。


5fb3aebc49ca4b14899991cd21ef697a.png

而这个-1到1的间隔,我们称为安全间隔,如果我们想要让代价函数第一部分的式子为0,那么就要满足上面y=1或y=0的要求。接下来我们来看看,支持向量机的决策边界会呈现什么效果。

f8d488e0f2924cdaaaa21f2214b70cf4.png



图中黑色的那条线就是支持向量机分类的结果,可以看出它和绿色与紫色的划分线不同,它与样本之间有一定的间距,所以我们有时候也会称SVM为大间距分类器(Large margin classifier)。


但是,如果我们将C设置的特别大的话,就会出下下面这种情况:

85b2f7f4ae0a4a5ba4927eaa60def7a8.png



如上图紫色划分线,如果C太大,支持向量机对于异常值就会特别敏感,导致变化特别大,而如果C设置的很小,支持向量机对于异常值就会几乎忽略不计,就还会是我们上图的黑线那样。


3. 核函数

首先,我们来看一个复杂的非线性函数:


a261d8c5163a4063b00e956cfdbe4c60.png


可以发现,这个函数中包含了一些复合的特征,那对于这种非常复杂的非线性边界,是否有更好的特征去代替这些f1、f2、f3等等呢。


核函数(Kernel)

40ad3b80293643c7aefd67901038de22.png



假设我们通过给定一个x案例,并且选出三个标记(landmark),然后定义特征f为一个相似度函数,这里用到的函数就是高斯核函数(Gaussian kernels),是核函数中的一种。


接下来,我们来看看新特征内的具体计算。


c02c4f593934497ba7e365374be6527f.png


可以发现,如果标记离给出的案例x点很近时,(xj-lj)2会几乎为0,那么e函数会接近于1,所以特征f就会接近于1;同样如果标记离给出的案例x点很远时,特征f就会接近于0,我们再来看一个具体的例子。


03c919d0b536444f915af8d2d03847d2.png


上图中我们对σ的值进行了改变,σ是高斯核函数的参数,当σ越小时,可以发现当x离l越远时,下降的比σ原先下降的更快,同理当σ越大时,则下降的会更慢。


现在我们再将这些新的特征代替原来函数中的特征,可以得到下面这个例子:


5adbb4be3c1c417d894b129d52ef8d18.png


我们可以假设θ的值并取一些x进行计算,发现靠近l(1)和l(2)时,y都被预测为1;远离l(1)和l(2)时,y都被预测为0,从而利用核函数得到一个非线性的决策边界。


大概解释完上面核函数的流程后,我们来看看核函数中的标记l是如何选择的。


c930d9b7420f42d6ba4f84f9d983e309.png


我们得到标记l的方式很简单,可以直接将训练集样本的位置作为标记的位置即可。


接下来,我们来看一下核函数的参数。


C(作用类似于正则化中的1/λ)


如果C很大,则对应着低偏差,高方差即过拟合问题。

如果C很小,则对应这高偏差,低方差即欠拟合问题。

σ2


如果σ2很大,则对应着高偏差,低方差即欠拟合问题。

如果σ2很小,则对应着低偏差,高方差即过拟合问题。

7080c41556cb4dd29e06b1139b8e751c.png


最后,我们再来对支持向量机中的核函数使用过程进行一个小回顾。


ca9230d6689d45348784bcc7c3ef1fe8.png


4. 使用SVM

这节课我们来讨论一下,使用SVM时的一些注意事项。


首先,第一个建议是不要尝试去写一些已经有人写好的数据包,直接去调用即可(例如liblinear,libsvm等)。


其次,你要注意的是,有两个地方是需要你人为完成的:


选择一个参数C。

选择一个核函数(相似函数)。

可以是线性的核函数即不使用核函数,这种一般是在特征很多,训练集很少容易过拟合的情况下使用。

可以是高斯核函数,这种一般是在特征很少,训练集比较多的情况下使用。

7105b19bac344574b6b906ad3f743830.png


如果你选择了高斯核函数,那么在训练时若你的x特征之间差别特别大,需要进行等比例缩放。



f42bc7cd56844b96825afe9577a016e2.png

除上述的两个函数之外,还有其他的核函数,但有效的核函数都要满足默塞尔定理(Mercer’s Theorem),即确保所有的SVM软件包能够利用大类的优化方法并从而迅速得到参数θ。


多项式核函数

通过改变参数增加一些参数来调整效果,并且x和l一般是非负的以保证内积大于0,如下图中的一些例子。

其他复杂函数

字符串核函数(String kernel),卡方核函数(chi-square kernel),直方相交核函数(histogram intersection kernel)等等。

5ccbff7f8787410ca6659fe6c6b55923.png


再者,我们来讨论讨论SVM一对多的分类情况,这与逻辑回归中的一对多的方法一样,都是分别训练各个类别的分类器,预测时选取分类器得分最高的即可。


bfdd6ea87dfe4592bd6e4619c90856f5.png


最后,我们来讨论一下逻辑回归和支持向量机何时使用较好。


395152f09f97474a8590707738dbd8d7.png


如果特征比训练集多很多,则一般用逻辑回归或不带核函数的SVM。

如果特征很少,训练集数量适中,则一般用高斯核函数。

如果特征很少且训练集数量很大很大,则一般用逻辑回归或不带核函数的SVM。


神经网络不管对应哪个情形效果都不错,但是缺点是训练速度会比较慢。


目录
相关文章
|
25天前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
38 1
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第27天】在数据科学和人工智能的领域中,支持向量机(SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将详细介绍SVM的工作原理、核心概念以及如何在实际问题中应用该算法进行分类和回归分析。我们还将讨论SVM面临的挑战以及如何通过调整参数和核技巧来优化模型性能。
|
3月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
71 3
|
3月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
139 2
|
3月前
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
56 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 吴恩达:机器学习的六个核心算法!
吴恩达教授在《The Batch》周报中介绍了机器学习领域的六个基础算法:线性回归、逻辑回归、梯度下降、神经网络、决策树和k均值聚类。这些算法是现代AI的基石,涵盖了从简单的统计建模到复杂的深度学习。线性回归用于连续变量预测,逻辑回归用于二分类,梯度下降用于优化模型参数,神经网络处理非线性关系,决策树提供直观的分类规则,而k均值聚类则用于无监督学习中的数据分组。这些算法各有优缺点,广泛应用于经济学、金融、医学、市场营销等多个领域。通过不断学习和实践,我们可以更好地掌握这些工具,发掘智能的乐趣。
111 1
算法金 | 吴恩达:机器学习的六个核心算法!
|
5月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
5月前
|
机器学习/深度学习 算法 数据可视化
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
44 0
|
5月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
39 0
|
6月前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。