什么是SVM?

支持向量机是一种监督学习算法,常用于分类和回归任务。其核心思想是通过寻找最佳分类边界(超平面)来分隔不同类别的数据点。

支持向量机原理

SVM可视化关键概念

  • 最大间隔分类:SVM通过最大化分类边界与最近样本的距离(间隔)来提升泛化能力
  • 支持向量:决定分类边界的关键数据点,用||标注
  • 软间隔:允许少量错误分类,通过引入松弛变量实现
  • 核技巧:通过核函数将数据映射到高维空间,解决非线性分类问题

可视化示例

线性可分情况

线性分类边界
- 数据点被明确分为两类 - 超平面位于两类数据点之间,距离最近点最远

非线性分类

非线性分类
- 使用核函数(如RBF)将数据映射到更高维度 - 在高维空间中找到线性分隔超平面

代码实现(Python)

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
import matplotlib.pyplot as plt

# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2]  # 取前两个特征用于可视化
y = iris.target

# 训练模型
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X, y)

# 可视化
plt.scatter(X[:, 0], X[:, 1], c=y, s=20, cmap='rainbow')
plt.xlabel('特征1')
plt.ylabel('特征2')
plt.xlim(-1, 6)
plt.ylim(-1, 6)
plt.show()

应用场景

  • 图像识别:如人脸识别(点击查看案例
  • 文本分类:通过高维特征空间分隔不同主题
  • 生物信息学:基因分类与蛋白质结构预测

扩展学习

📌 提示:可视化是理解SVM的关键,建议结合不同数据集观察边界变化!