ValueError:找到输入样本数量不一致的输入变量:[2,338742]

时间:2018-07-31 12:28:27

标签: python python-3.x scikit-learn

我有以下代码:

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.gaussian_process import GaussianProcessClassifier
from sklearn.gaussian_process.kernels import RBF
import cv2

input = "testProbe.jpg"
# load the image, convert it to grayscale
image = cv2.imread(input)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# threshold the image to reveal light regions in the gray image
thresh = cv2.threshold(gray, 145, 200, cv2.THRESH_BINARY)[1]

# import data
X = np.where(thresh>0)
widthX = len(X[0])
y = np.asarray(np.zeros((widthX, 1), dtype=int))

gpc_rbf_isotropic = GaussianProcessClassifier().fit(X, y)

我收到以下错误消息:

ValueError: Found input variables with inconsistent numbers of samples: [2, 338742]

我对y做错了什么?我认为y是问题所在,但我不明白它到底在做什么。

在此example中,他们使用了两种不同类型的数据集。我只想使用一个数据集。

有人可以帮忙吗?

(我知道还有其他主题与此类似的主题,但是对我没有帮助。)

1 个答案:

答案 0 :(得分:0)

好的,我知道我的问题在哪里。一方面,y不是问题,是X。 就是这样的:

xx = np.array(X)
xx = np.ravel(xx,order='F')
X = xx.reshape((int(len(xx)/2),2))
y = np.asarray(np.zeros((widthX, 1), dtype=int))
gpc_rbf_isotropic = GaussianProcessClassifier().fit(X, y)

另一件事是,此功能不适用于仅一个数据集。