支持向量机 (SVM) 详解
支持向量机(Support Vector Machine, SVM)是一种常用的监督学习模型,主要用于分类和回归任务。SVM 的核心思想是找到一个最优的超平面来分隔不同类别的数据点。本文将详细介绍 SVM 的基本原理、数学公式、代码实现以及如何通过代码绘制原理图。
1. SVM 基本原理
SVM 的目标是找到一个能够最大化类别间隔的超平面,从而使得分类准确率达到最优。假设我们有一个二分类问题,数据点 ( x i , y i ) (x_i, y_i) (xi,yi),其中 x i x_i xi 是特征向量, y i y_i yi 是类别标签( y i ∈ { − 1 , 1 } y_i \in \{-1, 1\} yi∈{ −1,1})。SVM 的目标是找到一个超平面 w T x + b = 0 w^T x + b = 0 wTx+b=0,使得类别之间的间隔最大。
1.1 超平面与分类
在二维空间中,超平面实际上是一个直线。对于 SVM 来说,分类的目标是找到一个直线,使得不同类别的样本点被分隔开,并且尽量使得距离直线最近的点距离最大。这个距离称为间隔(margin),我们希望最大化这个间隔。
1.2 最大化间隔
给定超平面 w T x + b = 0 w^T x + b = 0 wTx+b=0,其中 w w w 是权重向量, b b b 是偏置项。为了最大化间隔,我们需要确保:
- 对于正类样本( y i = 1 y_i = 1 yi=1), w T x i + b ≥ 1 w^T x_i + b \geq 1 wTxi+b≥1。
- 对于负类样本( y i = − 1 y_i = -1 yi=−1), w T x i + b ≤ − 1 w^T x_i + b \leq -1