Sklearn:ValueError:X和Y具有不兼容的形状

时间:2012-09-17 09:25:53

标签: scikit-learn

我是sklearn的新手,也是python的新手。你能帮我弄清楚这个脚本是否会导致一些解决方案吗?基本上我在Imageset上使用了一个色调提取器:加载iset进行训练,提取特征,定义分类器然后进行分类。

    #load beach for training
iset = ImageSet('/Users/Arenzky/Desktop/img_dirs/supervised/beach/') #load Image database

hue = HueHistogramFeatureExtractor() # define extractor
edge = EdgeHistogramFeatureExtractor()
x = []
y = []
for b in iset:
    ...:        x.append(hue.extract(b))

hset = ImageSet('/dir/.../h01/') 
hue = HueHistogramFeatureExtractor() # define extractor
edge = EdgeHistogramFeatureExtractor()
for h01 in hset:
    ...:        y.append(hue.extract(h01))

dataset = np.array(x)
targets = np.array(y)

print 'Training Machine Learning'
clf = LinearSVC()
clf = clf.fit(x, y)
clf2 = LogisticRegression().fit(x, y)

#predict 

... 加载clf后我得到:

ValueError: 
X and Y have incompatible shapes. X has 20 samples, but Y has 286.

1 个答案:

答案 0 :(得分:4)

错误消息非常明确:输入数据集中有20个样本(行),286个标签因此不匹配。每个样本应标记一次,因此y.shape[0]应等于x.shape[0]。我不知道您的特征提取器是如何工作的(并且您没有放入导入行,而是通过Google搜索来自SimpleCV)。请参阅本模块的文档,以了解其输出的性质以及如何将它们转换为满足sklearn形状假设的内容。