支持向量机(SVM)内容概述

一、SVM 的核心目标与理想超平面

SVM 的基本需求是在样本空间中找到一个 "划分超平面",将不同类别的样本准确分离。这里的 "超平面" 是根据样本空间维度变化的子空间 ------ 比如二维空间中是直线,三维空间中是平面,更高维空间中则是 n-1 维的抽象子空间。

而 "理想超平面" 有一个关键特性:对训练样本的局部扰动 "容忍性" 最好。简单来说,就是超平面与两类样本中 "离它最近的点"(即 "支持向量")的距离最大,这些支持向量是支撑超平面的关键样本,其他样本不会影响超平面的位置。SVM 的核心目标就是最大化超平面与支持向量之间的 "间隔"(两类支持向量到超平面的距离之和),以此提升模型对新样本的泛化能力。

二、SVM 的数学逻辑与优化方向

为实现 "最大化间隔" 的目标,PPT 先明确了样本标签规则 ------ 将正例样本标记为 + 1,负例标记为 - 1,同时定义了判断样本类别的决策方程(可对样本进行特征映射以适配复杂数据)。

随后,通过几何逻辑将 "最大化间隔" 转化为可求解的优化问题:由于间隔大小与超平面的参数相关,最终目标转化为 "最小化超平面参数的复杂度",同时保证所有样本都能被正确分类(即样本代入决策方程后,结果需满足一定约束条件)。

三、SVM 的求解过程(拉格朗日乘子法)

由于 SVM 的优化问题是 "带约束的规划问题",PPT 引入拉格朗日乘子法进行求解,核心思路是将原始的 "极小化目标 + 约束条件" 转化为对偶问题,降低求解难度。

具体步骤包括:构建拉格朗日函数(引入乘子将约束融入目标),对超平面参数求偏导并令其为 0,得到参数与样本、乘子之间的关系,再代入原函数得到对偶问题的目标函数。最终通过求解对偶问题,确定关键的拉格朗日乘子(仅支持向量对应的乘子非零),进而计算出超平面的参数。PPT 还通过具体数值实例演示了这一过程,从化简目标函数到验证约束条件,最终得到超平面方程,让抽象的数学求解更易理解。

四、SVM 的进阶优化(软间隔与核变换)

  1. 软间隔(应对噪声样本)

原始 SVM 要求 "完全分离所有样本"(硬间隔),但实际数据中常存在噪声样本(异常点),硬间隔会导致超平面过度偏向噪声,影响泛化能力。为此,PPT 引入 "松弛因子",放松分类约束 ------ 允许部分样本分类偏差或错误,同时将 "最小化偏差" 纳入目标函数。

还定义了惩罚系数 C:C 越大,对分类错误的惩罚越重,接近硬间隔;C 越小,对错误的容忍度越高,可避免过度拟合噪声。

  1. 核变换(应对低维不可分)

当样本在低维空间中无法用线性超平面分离时(如环形分布数据),PPT 提出 "核变换" 思路:将样本映射到更高维的特征空间,使高维空间中样本可线性分离。

为避免 "维度灾难"(高维计算量暴增),引入核函数 ------ 无需直接计算高维特征的内积,只需通过低维样本的计算就能间接得到高维内积结果,大幅降低计算成本。PPT 以具体例子验证了核函数的有效性,并介绍了常用的核函数类型(如线性核、高斯核),其中高斯核可适配多数低维不可分场景,应用广泛。

五、整体总结

本次学习 以 "问题 - 目标 - 求解 - 优化" 为逻辑线,完整呈现了 SVM 的核心脉络:从解决 "样本分类" 的基本问题出发,通过定义理想超平面明确目标,用拉格朗日乘子法实现数学求解,再针对实际数据的噪声、不可分问题,用软间隔和核变换进行优化,最终形成一套兼顾理论严谨性与工程实用性的分类算法,为理解和应用 SVM 提供了清晰的框架。

实践代码:

复制代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC  # 导入支持向量机分类器
from sklearn.preprocessing import StandardScaler  # SVM也需要特征标准化

# 1. 加载数据
data = pd.read_csv("D:\\pythonProject\\heart.csv")

# 2. 拆分特征与目标值
X = data.drop('target', axis=1)  # 特征
y = data['target']  # 目标值(0=无心脏病,1=有心脏病)

# 3. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 4. 特征标准化(SVM对特征尺度敏感,必须标准化)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)  # 训练集拟合并标准化
X_test_scaled = scaler.transform(X_test)        # 测试集使用相同的标准化参数

# 5. 训练支持向量机模型
# 可以通过调整kernel参数尝试不同的核函数:linear(线性), rbf(径向基), poly(多项式)等
model = SVC(kernel='rbf', random_state=42, gamma='scale')  # rbf是默认核函数
model.fit(X_train_scaled, y_train)

# 6. 预测与评估
accuracy = model.score(X_test_scaled, y_test)
print(f"支持向量机模型准确率:{accuracy:.4f}")

结果如下所示:

支持向量机模型准确率:0.8242

相关推荐
AImatters29 分钟前
透视光合组织大会:算力生态重构金融AI落地新实践
人工智能·合合信息·国产算力·海光dcu·光合组织·光合大会·青云
DDC楼宇自控与IBMS集成系统解读35 分钟前
BA 楼宇自控系统 + AI:重构楼宇设备管理的 “智能决策” 体系
大数据·网络·数据库·人工智能·3d·重构
躺不平的小刘37 分钟前
通义灵码插件——AI 重构表单开发!半小时搭建可视化拖拽系统,效率碾压传统模式
人工智能·重构
爱喝奶茶的企鹅1 小时前
Ethan独立开发新品速递 | 2025-08-25
人工智能
江瀚视野1 小时前
多地闭店上热搜,中产的白月光无印良品怎么了?
大数据·人工智能
yuanpan1 小时前
OpenCV打开视频函数VideoCapture使用详解
人工智能·opencv·音视频
朱程2 小时前
写给自己的 LangChain 开发教程(三):Agent & Tools
前端·人工智能
AI前沿简报-ALLMHUB2 小时前
AI前沿简报20250825——腾讯、阿里IDE迎重大更新,字节跳动首次开源36B大语言模型,快手8B模型刷新记录,马斯克称xAI最大竞争对手是中国公司
人工智能·语言模型·自然语言处理
AI technophile2 小时前
OpenCV计算机视觉实战(21)——模板匹配详解
人工智能·opencv·计算机视觉
掘金安东尼2 小时前
互联网不再由 URL 为核心入口
前端·人工智能·github