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

Scikit learn Sklearn:ValueError:X和Y具有不兼容的形状,scikit-learn,Scikit Learn,我是个新手,一般来说也不熟悉python。你能帮我弄清楚这个脚本是否带来了某种解决方案吗?基本上,我在图像集上使用色调提取器:加载iset进行训练,提取特征,定义分类器,然后分类 #load beach for training iset = ImageSet('/Users/Arenzky/Desktop/img_dirs/supervised/beach/') #load Image database hue = HueHistogramFeatureExtractor() # d

我是个新手,一般来说也不熟悉python。你能帮我弄清楚这个脚本是否带来了某种解决方案吗?基本上,我在图像集上使用色调提取器:加载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.

错误信息非常明确:在输入数据集中有20个样本(行)和286个标签,因此不匹配。每个样品应标记一次,因此
y.shape[0]
应等于
x.shape[0]
。我不知道你的功能提取器是如何工作的(你没有把导入行放进去,但是通过谷歌搜索它是从SimpleCV来的)。请参阅本模块的文档,了解其输出的性质以及如何将其转换为满足sklearn shapes假设的内容。

错误信息非常明确:输入数据集中有20个样本(行)和286个标签,因此不匹配。每个样品应标记一次,因此
y.shape[0]
应等于
x.shape[0]
。我不知道你的功能提取器是如何工作的(你没有把导入行放进去,但是通过谷歌搜索它是从SimpleCV来的)。请参阅本模块的文档,了解其输出的性质以及如何将其转换为满足sklearn shapes假设的内容。

好的,实际上,20个样本基本上是来自图像集的20个图像,286个标签来自图像集上的应用色调.extractor()。因此,让我重新表述一下这个问题:除了ImageSet,我还有另外5张图片在一个名为“fakeimages”的文件夹中。现在,我想根据ImageSet中提取的色调值对fakeimages数据集中的5幅图像进行比较/分类。你能给我一个基于sklearn的建议/路径吗?你需要20个特征/描述符向量,用于20幅图像中的每幅进行分类,以及20个目标标签,每幅图像一个进行分类。我不知道色调直方图的特征,所以我不能给出更具体的建议。标签是分类器的目标类别整数索引。顺便说一句,机器学习算法很可能只会在20个例子的训练中产生糟糕的结果。我建议每个目标类至少收集100张标记的图像。因此,如果您有两个类(例如“行人”和“背景”),我建议至少标记200张图片。好的,实际上,20个样本基本上是来自图像集的20张图像,286个标签来自图像集上的色调.extractor()。因此,让我重新表述一下这个问题:除了ImageSet,我还有另外5张图片在一个名为“fakeimages”的文件夹中。现在,我想根据ImageSet中提取的色调值对fakeimages数据集中的5幅图像进行比较/分类。你能给我一个基于sklearn的建议/路径吗?你需要20个特征/描述符向量,用于20幅图像中的每幅进行分类,以及20个目标标签,每幅图像一个进行分类。我不知道色调直方图的特征,所以我不能给出更具体的建议。标签是分类器的目标类别整数索引。顺便说一句,机器学习算法很可能只会在20个例子的训练中产生糟糕的结果。我建议每个目标类至少收集100张标记的图像。因此,如果你有两个类别(例如“行人”和“背景”),我建议至少标记200张图片。