2017-02-27 6 views
0

私は、テキスト分類とガイドラインhereに従うscikit-learn SVMを使用しています。scikit-learn/svm - 'predict_proba'の後に確率と関連ラベルを取得する

TypeError: only integer arrays with one element can be converted to an index

:私はこの例外を取得し、確率を取得するために predict_probaメソッドを使用して正しいラベルを関連付けると、上記のコードを実行するには、トップ3

vectorizer = HashingVectorizer() 
clf = svm.SVC(probability=True,class_weight='balanced') 

test_data = [...] 

test_vectors = vectorizer.transform(test_data) 
predicted = clf.predict_proba(test_vectors) 
for doc, pred in zip(test_labels, predicted): 
    print('%r => %s' % (doc, test_labels[pred])) 

を取得する方法のようしかし、私は混乱しています

これは、test_labelsが確率の配列なので理解できますが、関連するラベルと確率を取得する方法がわかりません。

+0

完全なエラースタックトレースを投稿してください。どのラインでエラーが表示されますか?また、データのいくつかのサンプルを表示する –

答えて

0

これは私がやり遂げたことであり、私にとってはうまくいっています。これが誰かに役立つことを願って:

clf = cPickle.load(...) 
    test_data, test_labels = load_testfiles(_testpath) 

    for td in zip(test_data,test_labels): 
     X = vectorizer.transform([td[0]]) 
     label = td[1] 
     res = clf.predict_proba(X)[0] 
     # sd = np.std(res) 
     # max = np.amax(res) 
     # min = np.amin(res) 
     # mean = np.mean(res) 
     # median = np.median(res) 
     print("test--->actual=",label,"pred=",res) 
関連する問題