2

私はsklearnが初めてで、一般的には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.
4

1 に答える 1

4

エラー メッセージは非常に明白です。入力データセットに 20 個のサンプル (行) があり、ラベルが 286 個あるため、不一致です。各サンプルは 1 回ラベル付けする必要があるためy.shape[0]、 に等しくなければなりませんx.shape[0]。機能エクストラクタがどのように機能するかわかりません(インポート行を配置しませんでしたが、グーグルでSimpleCVからのものです)。このモジュールのドキュメントを参照して、出力の性質と、sklearn 形状の仮定を満たすものに変換する方法を理解してください。

于 2012-09-17T12:34:40.830 に答える