我正在使用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图中绘制它?
超级决斗感谢任何帮助我的人