我有以下代码:
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中,他们使用了两种不同类型的数据集。我只想使用一个数据集。
有人可以帮忙吗?
(我知道还有其他主题与此类似的主题,但是对我没有帮助。)
答案 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)
另一件事是,此功能不适用于仅一个数据集。