2017-10-17 9 views
0

私はチュートリアルを再現しようとしています hereを見てください。機械学習の問題scikitはPythonで学ぶ

トレーニングセットで.fitメソッドを追加するまで、すべてが完全に機能します。ここで

は、私のコードのサンプルです:ここで

# TRAINING PART 

train_dir = 'pdf/learning_set' 
dictionary = make_dic(train_dir) 

train_labels = np.zeros(20) 
train_labels[17:20] = 1 
train_matrix = extract_features(train_dir) 
model1 = MultinomialNB() 
model1.fit(train_matrix, train_labels) 


# TESTING PART 

test_dir = 'pdf/testing_set' 
test_matrix = extract_features(test_dir) 
test_labels = np.zeros(8) 
test_labels[4:7] = 1 
result1 = model1.predict(test_matrix) 
print(confusion_matrix(test_labels, result1)) 

は私のトレースバックです:

Traceback (most recent call last): 
File "ML.py", line 65, in <module> 
model1.fit(train_matrix, train_labels) 
File "/usr/local/lib/python3.6/site-packages/sklearn/naive_bayes.py", 
line 579, in fit 
X, y = check_X_y(X, y, 'csr') 
File "/usr/local/lib/python3.6/site- 
packages/sklearn/utils/validation.py", line 552, in check_X_y 
check_consistent_length(X, y) 
File "/usr/local/lib/python3.6/site- 
packages/sklearn/utils/validation.py", line 173, in 
check_consistent_length 
" samples: %r" % [int(l) for l in lengths]) 
ValueError: Found input variables with inconsistent numbers of 
samples: [23, 20] 

私はどのように私はこの問題を解決することができます知っていただきたいと思いますか? 私はUbuntu 16.04で、Python 3.6で作業しています。

答えて

1

とValueError: サンプルの一貫性のない数字で見つかり入力変数:[23、20]

あなたは23訓練ベクトル(train_matrixが23行を持っている) だけ20トレーニングラベル(train_labelsを持っていることを意味する配列であります20値)

変更train_labels = np.zeros(20) ~train_labels = np.zeros(23) とする必要があります。

+0

ありがとう、それは完全に動作します!それは愚かな間違いahaだった –