统计学补充概念-16-支持向量机 (SVM)

概念

支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的机器学习算法。SVM的主要目标是找到一个最优的超平面,可以将不同类别的数据样本分开,同时使得支持向量(离超平面最近的样本点)与超平面之间的间隔最大化。这个超平面可以用于分类新的样本数据。

SVM在分类问题中的工作原理如下:

线性可分情况:如果数据可以在特征空间中被一个超平面完美地分开,SVM会寻找最大化类别之间间隔的超平面。这个间隔被称为"间隔边界"。

软间隔与松弛变量:实际数据可能存在一些噪声或离群点,导致无法完美分开。SVM引入了"软间隔"概念,允许一些样本位于超平面的错误一侧。为了处理这种情况,SVM引入了"松弛变量"来调整样本允许违反间隔边界的程度。

核技巧与非线性情况:SVM还可以通过"核技巧"来处理非线性问题。核技巧允许在高维特征空间中进行计算,从而在低维空间中解决非线性问题。

SVM还有一个重要的概念,即"支持向量",它是离超平面最近的样本点。SVM的决策边界仅依赖于这些支持向量,因此它对其他数据点的分布没有那么敏感。

代码实现

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# 生成虚拟数据集
X, y = make_classification(n_samples=200, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1)

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建SVM模型
model = SVC(kernel='linear')  # 线性核函数

# 在训练集上训练模型
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")

# 可视化决策边界
plt.figure(figsize=(10, 6))
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')

# 绘制SVM的决策边界
coef = model.coef_[0]
intercept = model.intercept_[0]
x_boundary = np.linspace(X[:, 0].min(), X[:, 0].max(), 100)
y_boundary = -(coef[0] * x_boundary + intercept) / coef[1]
plt.plot(x_boundary, y_boundary, 'k--')

plt.title("SVM Decision Boundary")
plt.show()
相关推荐
Hui_AI7201 分钟前
基于RAG的农产品GEO溯源智能问答系统实现
开发语言·网络·人工智能·python·算法·创业创新
lwf0061642 分钟前
FFM (Field-aware Factorization Machine) 学习日记
算法·机器学习
南宫萧幕2 分钟前
HEV能量管理控制算法实战:从MPC/RL理论基础到Simulink闭环建模
算法·matlab·汽车·控制·pid
IT猿手9 分钟前
SCI一区:章鱼优化算法(Octopus Optimization Algorithm, OOA)求解23个测试函数,出图丰富,提供完整MATLAB代码
开发语言·算法·matlab
superior tigre10 分钟前
739 每日温度
算法·leetcode·职场和发展
忡黑梨14 分钟前
eNSP_从直连到BGP全网互通
c语言·网络·数据结构·python·算法·网络安全
Run_Teenage29 分钟前
算法:离散化模板
算法
乐迪信息29 分钟前
乐迪信息:实时预警,秒级响应:船舶AI异常行为检测算法
大数据·人工智能·算法·安全·目标跟踪
用AI赚一点29 分钟前
AI落地不是造大模型:从概念到落地的核心差异
人工智能·深度学习·机器学习
6Hzlia31 分钟前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode