什么是SVM?
支持向量机是一种监督学习算法,常用于分类和回归任务。其核心思想是通过寻找最佳分类边界(超平面)来分隔不同类别的数据点。
SVM可视化关键概念
- 最大间隔分类:SVM通过最大化分类边界与最近样本的距离(间隔)来提升泛化能力
- 支持向量:决定分类边界的关键数据点,用
||
标注 - 软间隔:允许少量错误分类,通过引入松弛变量实现
- 核技巧:通过核函数将数据映射到高维空间,解决非线性分类问题
可视化示例
线性可分情况
非线性分类
代码实现(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的关键,建议结合不同数据集观察边界变化!