如何在Matplotlib中使用大型数组的网格



我在sklearn中训练了一个100x85数组上的机器学习二元分类器。我希望能够改变数组中的两个特征,比如第0列和第1列,并生成轮廓或表面图形,显示落在一个类别中的预测概率如何在整个表面上变化。

在我看来,我将合理地使用如下内容:

X = 100 × 85数组的数据用于训练集clf =训练好的2类分类器

x = np.array(X)
y = np.array(X)
x[:,0] = np.linspace(0, 100, 100)
y[:,1] = np.linspace(0, 100, 100)
xx, yy = meshgrid(x,y)

下一步是使用

clf.predict_proba(<input arrays>)

之后是绘图,但使用网格导致两个8500x8500矩阵,不能在我的分类器中使用。

我如何在网格中的每个点获得必要的100x85向量来使用pred_proba与我的分类器?

感谢您提供的帮助

正如@wflynny上面所说,您需要给np.meshgrid两个1D数组。我们可以使用X.shape来创建xy数组,如下所示:

X=np.zeros((100,85)) # just to get the right shape here
print X.shape
# (100, 85)
x=np.arange(X.shape[0])
y=np.arange(X.shape[1])
print x.shape
# (100,)
print y.shape
# (85,)
xx,yy=np.meshgrid(x,y,indexing='ij')
print xx.shape
#(100, 85)
print yy.shape
#(100, 85)

相关内容

  • 没有找到相关文章

最新更新