《速通机器学习》-第五章 经典分类模型

5.1 支持向量机

5.1.1 支持向量机的基本原理

通过前面的学习我们知道,逻辑回归其实就是在平面上通过画直线进行二分类,其学习过程就是通过梯度下降法在训练数据中寻找分类线。当训练数据线性可分时,能够正确进行分类的分类线有无数条,不同的分类线对应于不同的 w 和 w_0 及不同的 Loss,如图5-1所示。

图5-1

在图5-1中,直线 L_1 和 L_2 都可以把训练数据完美地分成两类,但哪条更好呢?Loss 最小的直线一定是最好的吗?我们可以从几何的角度审视这个问题。直线 L_2 与一些数据点的距离相对较近,如果测试集中的数据点发生轻微的移动(特征轻微变化),那么测试数据将跑到直线的另一侧,如图5-2所示。

图5-2

这种直线虽然能够在训练样本中实现正确分类,但在实际应用中面对大量没有见过而与训练样本有偏差的数据时,其准确性就会打折扣(其实这就是过拟合)。相对来说,数据点离直线 L_1 较远,即使发生了轻微的移动,也不会跑到直线的另一侧(导致分类结果改变),因此,直线 L_1 的泛化能力相对较强。

综上所述,在这两条直线中 L_1 更好,因为它离边界数据点更远。

在数据线性可分的情况下,我们把以上分析细化一下。数据点可以分为两种类型,即边界点和内部点。边界点是指一个类别中距离分类线最近的点,每个类别可以有不止一个边界点。除了边界点,其他的数据点都是内部点,如图5-3所示。

图5-3

因为内部点远离直线,所以,它们即使发生了轻微移动,也不会来到直线的另一侧。但是,因为边界点靠近分类线,所以它们的随机移动很容易跨越直线,被分类器判断为另一类别。因此,分类器在边界点附近的稳定性差,即泛化能力弱。

如何提高分类线的稳定性呢?可以增大边界点到分类线的距离——距离越远,边界点随机移动至直线另一侧的概率就越小。

为了方便,我们以输入数据为2维的情况为例进行分析,所有结论均可推广至高维空间。首先看一下点到分类线的距离公式。因为分类线有无数条平行线,所以,可以把分类线放在两个类别的边界点的中间位置,即

distance_N类=distance_P类

已知分类线的方程为 w_1 x_1+w_2 x_2+w_0=0,那么P类的边界点 〖[x_1,x_2]〗^T 到直线的距离为

distance_P类=distance_N类=|w_1 x_1+w_2 x_2+w_0 |/√(w_1^2+w_2^2 )

在讲解逻辑回归时提到过,对同一条直线,可以在系数上进行放缩,即

w_1 x_1+w_2 x_2+w_0=0

α_P类 (w_1 x_1+w_2 x_2+w_0 )=0,〖 α〗_P类≠0

以上两个方程对应的是同一条直线。对直线进行系数缩放不会改变直线本身,因此,点到直线的距离也不会改变。因为我们总能找到一个合适的缩放方法,使得边界点满足 |w_1 x_1+w_2 x_2+w_0 |=1,所以,P类的边界点到分类线的距离变为

distance_P类=|w_1 x_1+w_2 x_2+w_0 |/√(w_1^2+w_2^2 )=1/√(w_1^2+w_2^2 )

P类的内部点满足 w_1 x_1+w_2 x_2+w_0>1。

同理,N类的边界点到分类线的距离为

distance_N类=1/√(w_1^2+w_2^2 )

N类的内部点满足 w_1 x_1+w_2 x_2+w_0<-1。

我们的优化目标是在保证分类正确的前提下使边界点远离分类线,从而提高泛化能力,即找到一个合适的 w 使下式的值最大。

〖distance=distance〗_P类+distance_N类=2/√(w_1^2+w_2^2 )

distance 也称作margin,是指两类边界点中间的空白部分。

现在,我们的优化目标变为最大化下式。

distance=1/√(w_1^2+w_2^2 )

也就是说,最优目标为:在保证正确分类的情况下,最小化 min⁡√(w_1^2+w_2^2 )。

可以发现,min⁡√(w_1^2+w_2^2 ) 和 min⁡〖(w_1^2+w_2^2)〗 是等价的。为了求解方便,最小化目标变为

min⁡〖〖(w〗_1^2+w_2^2)〗

那么,如何通过数学方法表示“保证分类正确”呢?不同于逻辑回归的两个类别(标签为1或0),在这里可以分别设P类和N类所对应的标签 y 为 +1 和 -1。此时,y 已不具备概率意义,仅代表一个类别(如图5-3所示)。

P类:当标签为 y=+1 时,w_1 x_1+w_2 x_2+w_0 ≥ 1。

N类:当标签为 y=-1 时,w_1 x_1+w_2 x_2+w_0 ≤ -1。

以上两式可以统一写成

y(w_1 x_1+w_2 x_2+w_0 )≥1

当 x 为边界点时,“=”成立;当 x 为内部点时,取“>”。y(w_1 x_1+w_2 x_2+w_0 )≥1 作为约束条件,保证了分类的正确性。

但是,在实际应用中,大部分情形都是线性不可分的,即肯定不能正确地进行分类(无法保证下式成立)。

y(w_1 x_1+w_2 x_2+w_0 )≥1

不满足上式的数据点称为误差点。因此,可以进一步将数据点分成三类,即内部点、边界点、误差点。误差点有两种:一种是正确误差点,它的分类正确,但位于边界点外(分类正确,但到分类线的距离小于1);另一种是错误误差点,它不仅位于边界点外,而且分类错误。

对P类来说,误差点如图5-4所示。

图5-4

需要注意的是,正确误差点比边界点更靠近分类线。

为了使误差点满足上式,我们放宽(松弛)条件,引入松弛系数 ε ≥ 0。此时,约束条件变为

y(w_1 x_1+w_2 x_2+w_0 )≥1-ε

这样,不等式就相对没有那么严格了。数据点在不同约束条件下的情况如下。

内部点:y(w_1 x_1+w_2 x_2+w_0 )>1,即 ε=0。

边界点:y(w_1 x_1+w_2 x_2+w_0 )=1,即 ε=0。

正确误差点:y(w_1 x_1+w_2 x_2+w_0 )=1-ε,且 1>ε>0。

错误误差点:y(w_1 x_1+w_2 x_2+w_0 )=1-ε,且 ε ≥ 1。

也就是说

ε={█(0, 如果 y(w_1 x_1+w_2 x_2+w_0 )≥1@1-y(w_1 x_1+w_2 x_2+w_0 ),如果 y(w_1 x_1+w_2 x_2+w_0 )<1)┤

可以看出,ε 越小,分类效果就越好。因此,最小化 ε 也成为优化目标之一。

综上所述,考虑所有训练样本,我们的优化目标是

〖min(〗⁡〖w_1^2+w_2^2 〗+C∑_(i=1)^N▒〖ε_((i)))〗

C 为超参数,表示我们对“分类正确”的重视程度。

对于 i=1,⋯,N,x_((i))=〖[x_((i),1),x_((i),2)]〗^T 满足

y_((i)) (w_1 x_((i),1)+w_2 x_((i),2)+w_0 )≥1-ε_((i))

N 是训练样本的数量。

在求解分类线 w=〖[w_1,w_2]〗^T 和 w_0 时,一般不使用梯度下降法,而使用成熟的拉格朗日乘子法。其中的数学计算较为复杂,感兴趣的读者可自行查阅相关资料。

由于我们的优化目标始终围绕最大化边界点和分类线之间的距离,所以,可以不加推导地得到“分类线仅由边界点决定”这一结果(具体推导过程过于复杂,在此不再详述),如图5-5所示。

图5-5

由于内部点和误差点不会影响分类线(w 和 w_0),所以,我们可以不加推导地得到 w,公式如下。

SV 为P类和N类的边界点的集合。可以看出,w 是所有边界点通过 α_((i)) y_((i)) 加权求和得到的。将任意边界点代入分类线,都可以求出 w_0。例如,当边界点 x_((i))=〖[x_((i),1),x_((i),2)]〗^T 对应于类别 y_((i))=1 时,有

y_((i)) (w_1 x_((i),1)+w_2 x_((i),2)+w_0 )=1

w_0=1-w_1 x_((i),1)+w_2 x_((i),2)

在诸多边界点中,任意选择一个代入即可。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 机器学习模型评估、选择和验证是指评估模型的性能、从多个模型中选择最佳模型,并验证模型的泛化能力。常用的评估方法包括准确率、精确率、召回率、F1 分数、ROC 曲线和 AUC 等。常用的选择方法包括交叉验证、超参数调优、学习曲线分析等。 ### 回答2: 机器学习的目标是通过训练来构建模型,以便能够高效地预测未知数据。但是,模型的准确性不仅取决于所使用的算法,还取决于其它因素,例如数据和参数设置。 模型评估能够帮助我们了解模型性能的好坏。评估算法的过程通常涉及到数据划分、交叉验证和各种评估指标。一般来说,数据划分的过程将数据集拆分成训练集和测试集。用训练集来构建模型并进行参数调整,然后使用测试集来衡量模型的性能。交叉验证是在数据集合上的一个更安全和更可靠的方法,它将原始数据集划分成K个互斥的子集,并使用K-1个子集来训练模型,用剩余的子集来评估模型的性能。 选择正确的模型非常关键,因为模型的性能可以直接影响结果的准确性。选择模型的一个重要因素是如何表示数据集。数据可以使用多种方式表示,而不同的数据表示方式有不同的优劣。选择适当的模型是当然的,但是我们还应该使用技术来优化模型,并防止模型过度拟合或欠拟合。 模型验证是评估模型如何执行任务的最终步骤。验证后,我们可以使用模型进行预测并将其应用于新数据。如果模型的性能不符合要求,可以通过重新评估、更改数据集或改变模型参数来尝试改善。模型验证是机器学习流程中非常重要的一部分,可以确保我们的模型效果良好,从而为我们提供可靠的预测结果。 总之,机器学习是一种建立复杂模型的方法,不同的算法、数据表示方式和参数会影响其性能。为了找到最佳模型,我们需要进行模型评估、选择和验证等工作。这些步骤是机器学习流程的关键组成部分,可以帮助我们构建高效且准确的模型,从而应对各种实际应用场景。 ### 回答3: 机器学习是一种人工智能领域的重要技术,它允许计算机从历史数据中学习,建立预测模型,并用于未来的数据预测和决策。模型评估、选择与验证是机器学习过程中的重要一环,以保证模型的准确性、稳定性和泛化能力。 模型评估的目的是检验模型的表现,并度量其优劣。常用的评估指标包括精确度、召回率、F1值等,这些指标可以用于比较不同模型之间的性能表现。评估模型时,通常需要将数据集划分为训练集和测试集,训练集用于训练模型,而测试集用于评估模型性能。评估模型的结果可以指导我们调整模型的参数,提高模型的预测精度。 模型选择是在多个模型中选择最合适的模型。常用的模型选择方法包括交叉验证、留一法等。交叉验证是将数据集分成k个子集,每个子集轮流作为测试集进行模型评估,其余部分用于训练模型,最后将测试集误差取平均值作为综合误差来评估模型的性能。 模型验证是对模型的泛化能力的验证。泛化能力是指模型对未知数据的预测精度,即模型是否能够对新数据进行较好的预测。在模型验证中,需要将数据集划分为训练集、验证集和测试集。在训练集中训练模型,在验证集上调整模型参数,并在测试集上验证模型的泛化能力。常用的验证方法包括留存法、k折交叉验证等。 综上所述,模型评估、选择与验证对于机器学习中的预测模型非常重要。这些技术可以保证模型的准确性和稳定性,并提高模型的泛化能力,为数据分析和预测提供可靠依据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值