Python 2.7 scikit学习/svm-在';预测概率';

Python 2.7 scikit学习/svm-在';预测概率';,python-2.7,scikit-learn,libsvm,Python 2.7,Scikit Learn,Libsvm,我使用scikit学习支持向量机进行文本分类,并遵循指南。但是我不知道如何使用predict\u probama方法获取概率,与正确的标签关联并获取前三名 vectorizer = HashingVectorizer() clf = svm.SVC(probability=True,class_weight='balanced') test_data = [...] test_vectors = vectorizer.transform(test_data) predicted = clf.

我使用scikit学习支持向量机进行文本分类,并遵循指南。但是我不知道如何使用
predict\u probama
方法获取概率,与正确的标签关联并获取前三名

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]))  
运行上述代码时,我会遇到以下异常:

TypeError:只有包含一个元素的整数数组才能转换为 索引


这是可以理解的,因为test_标签是一组概率,但我不确定如何获取相关的标签和概率。

这就是我最终要做的事情,它为我解决了问题。希望这对某人有所帮助:

    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)

请发布完整的错误堆栈跟踪。您在哪一行收到错误?并展示一些您的数据样本