支持向量机超平面绘图
时间: 2023-12-28 11:05:59 浏览: 63
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,用于分类和回归问题。在SVM中,超平面被用来分割不同类别的样本点。绘制SVM超平面可以帮助我们直观地理解分类结果。
以下是使用Python中的matplotlib库绘制SVM超平面的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成一些示例数据
np.random.seed(0)
X = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]
y = np.array([-1] * 20 + [1] * 20)
# 导入SVM模型
from sklearn.svm import SVC
# 训练SVM模型
clf = SVC(kernel='linear')
clf.fit(X, y)
# 获取超平面参数
w = clf.coef_[0]
b = clf.intercept_[0]
slope = -w[0] / w[1]
xx = np.linspace(-5, 5)
yy = slope * xx - (b / w[1])
# 绘制样本点和超平面
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.plot(xx, yy, 'k-')
# 绘制支持向量
plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
s=100, facecolors='none', edgecolors='k')
# 设置坐标轴范围
plt.xlim(-5, 5)
plt.ylim(-5, 5)
# 显示图形
plt.show()
```
这段代码首先生成了一些示例数据,然后使用SVC类训练了一个线性SVM模型。接下来,获取超平面的参数,并使用matplotlib库绘制样本点、超平面和支持向量。
阅读全文