SVM决策边界可视化python
时间: 2023-09-30 09:05:55 浏览: 206
要可视化SVM的决策边界,你可以使用Python中的一些数据可视化库,例如Matplotlib和Scikit-learn。下面是一个基本的示例代码,演示了如何绘制SVM的决策边界:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
# 创建一些样本数据
X = np.array([[2, 2], [1, 3], [2, 3], [3, 1], [3, 2]])
y = np.array([0, 0, 0, 1, 1])
# 创建一个SVM分类器,并训练模型
clf = svm.SVC(kernel='linear')
clf.fit(X, y)
# 绘制样本点
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
# 绘制决策边界
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()
# 创建网格以绘制决策边界
xx = np.linspace(xlim[0], xlim[1], 30)
yy = np.linspace(ylim[0], ylim[1], 30)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
Z = clf.decision_function(xy).reshape(XX.shape)
# 绘制决策边界和边界间隔
ax.contour(XX, YY, Z, levels=[-1, 0, 1], alpha=0.5,
linestyles=['--', '-', '--'], colors='red')
# 绘制支持向量
ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],
s=100, linewidth=1, facecolors='none', edgecolors='black')
plt.show()
```
这段代码首先创建了一些样本数据,然后使用SVC类创建了一个线性核的SVM分类器。接下来,我们用样本点绘制散点图,并使用决策函数绘制决策边界和边界间隔。最后,绘制支持向量。
运行这段代码,你将得到一个显示决策边界和支持向量的散点图。
阅读全文