如何用python实现多分类决策边界可视化呢?
刚刚考完试了,准备总结下这学期的机器学习实验的文章,但是一翻开发现实在太多了,就犯懒了,干脆只写一点吧
import numpy as np
import matplotlib.pyplot as plt
def plot_Multiclass_boundary(X,Y):
#定义的画图函数,注意,这里的X要为两列数据,不然高维数据不容易画出决策边界
x1_min, x1_max = X[:, 0].min() - .5, X[:, 0].max() + .5
x2_min, x2_max = X[:, 1].min() - .5, X[:, 1].max() + .5
h = .02
x1, x2 = np.meshgrid(np.arange(x1_min, x1_max, h),np.arange(x2_min, x2_max, h))
grid_test = np.stack((x1.flat, x2.flat), axis=1)
grid_hat = clf.predict(grid_test)
#clf代表模型,在使用该画图函数之前需要现拟合一个带有predict方法的估计器
grid_hat = grid_hat.reshape(x1.shape)
plt.figure(1, figsize=(6, 5))
plt.pcolormesh(x1, x2, grid_hat,cmap=plt.cm.Paired)
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolor="k")
from sklearn.datasets import load_wine
wine=load_wine()
X=wine.data
y=wine.target
X=X[:,[0,1]]
from sklearn.neural_network import MLPClassifier
x_train, x_test, y_train, y_test = train_test_split(X,y, test_size = 0.3, random_state = 2)
clf=MLPClassifier()
clf.fit(x_train,y_train)
plot_Multiclass_boundary(x_test,y_test)
输出结果:
当时查找如何绘制决策边界的时候找了好久,这个函数可以直接使用,也可以不定义函数,把里面的代码扒出来用