绘制3个班级的决策边界[scikit learn python]

时间:2016-03-12 20:31:45

标签: python matplotlib scikit-learn svm

我正在使用scikit生成一个分类器,在python中学习SVM,它有3个类。我正在试验样本权重,所以我希望看到这三个类的决策边界。

这是我到目前为止所做的:

xx, yy = np.meshgrid(np.linspace(-4, 5, 200), np.linspace(-4, 5, 200))
zz, ww = np.meshgrid(np.linspace(-4, 5, 200), np.linspace(-4, 5, 200))
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel(), zz.ravel()])
Z

输出[0]:

array([[ 2.73029999, -0.95642619, -4.45127469],
       [ 2.76214465, -0.88802893, -4.39607632],
       [ 2.7930567 , -0.8203471 , -4.34072817],
       ..., 
       [-7.74579688, -9.31664158, -5.69664505],
       [-7.77555883, -9.37782922, -5.76493058],
       [-7.80441264, -9.43809765, -5.83257034]])

通常2节课我会接下来这样做:

Z = Z.reshape(xx.shape) #This is where it throws an error if I attempt the 3 class approach 
axis.contourf(xx, yy, Z, alpha=0.75, cmap=plt.cm.seismic)
axis.scatter(X[:, 0], X[:, 1], c=Y, s=10 * sample_weight, alpha=0.9,cmap=plt.cm.seismic)

我的训练集有3个分类变量和3个类。是否也可以(或仅可能)在类似于matplotlib的3dcontour的3d图中绘制它?

超级决斗感谢任何帮助我的人

0 个答案:

没有答案