在sklearn.kneighborsclassifier中,我有错误:发现dim 4的数组。估算器预期< = 2
我对为图像进行分类的程序有问题。我将图像存储在
arr = np.concatenate((X1, Y1))
具有大小的阵列中:(80,128,128,3) 我还有另一个:
arr2 = np.concatenate((X2, Y2))
有大小:(20、128、128、3) 我将使数组进入培训数据。并创建目标:
a= np.full((1, 40), 1)
b= np.full((1, 40), 2)
arr3 = np.concatenate((a, b))
并将其设置为KNN算法
knn=KNeighborsClassifier(n_neighbors=3) #define K=3
knn.fit(arr,arr3)
res = knn.predict(arr2)
print(res)
,我没有得到结果,并且存在错误:找到带有dim 4的数组。估算器预期< = 2。
我还尝试重新设计ARR和ARR2:
arr5 = arr.reshape(-1,1)
arr6 = arr2.reshape(-1,1)
但是也遇到了错误:发现的输入变量与样本数量不一致,
我需要您的意见来解决问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以阅读 sklearn.neighbors.kneighborsclassifier 和
.fit(x,y)
应该具有以下形状:因此,您需要重塑
arr或x_train喜欢(80,128*128*3)
andarr2或x_test like(20,128*128*3)
and>y或arr3喜欢(80)
:(对于此重塑,我们可以使用`numpy.reshape(-1)如下。)
输出:
You can read here, For using
sklearn.neighbors.KNeighborsClassifier
and.fit(X,y)
should have shape like :For this reason, you need to reshape
arr or x_train like (80, 128*128*3)
andarr2 or x_test like (20, 128*128*3)
andy or arr3 like (80)
:(for this reshaping we can use `numpy.reshape(-1) like below.)
Output: