统计学补充概念-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()
相关推荐
墨楠。27 分钟前
数据结构学习记录-树和二叉树
数据结构·学习·算法
小唐C++33 分钟前
C++小病毒-1.0勒索
开发语言·c++·vscode·python·算法·c#·编辑器
云天徽上43 分钟前
【数据可视化】全国星巴克门店可视化
人工智能·机器学习·信息可视化·数据挖掘·数据分析
醇醛酸醚酮酯1 小时前
Leetcode热题——移动零
算法·leetcode·职场和发展
沉默的煎蛋1 小时前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
Aqua Cheng.1 小时前
MarsCode青训营打卡Day10(2025年1月23日)|稀土掘金-147.寻找独一无二的糖葫芦串、119.游戏队友搜索
java·数据结构·算法
夏末秋也凉1 小时前
力扣-数组-704 二分查找
算法·leetcode
玛丽亚后1 小时前
动态规划(路径问题)
算法·动态规划
qy发大财1 小时前
平衡二叉树(力扣110)
数据结构·算法·leetcode·职场和发展
AI技术控1 小时前
计算机视觉算法实战——无人机检测
算法·计算机视觉·无人机