如何在sklearn中获取分类器预测的置信度分数?

9 浏览
0 Comments

如何在sklearn中获取分类器预测的置信度分数?

我希望获得每个预测的置信度分数,以显示分类器对其正确性的确定程度。

我想要的是这样的结果:

分类1:81%的置信度,认为这是分类1

分类2:10%

分类3:6%

分类4:3%

我的代码示例:

features_train,features_test,labels_train,labels_test = cross_validation.train_test_split(main,target,test_size = 0.4)
# 确定训练时间
t0 = time()
model = SVC()
#model = SVC(kernel='poly')
#model = GaussianNB()
model.fit(features_train,labels_train)
print 'training time: ',round(time()-t0,3),'s'
# 确定预测时间
t1 = time()
pred = model.predict(features_test)
print 'predicting time: ',round(time()-t1,3),'s'
accuracy = accuracy_score(labels_test,pred)
print 'Confusion Matrix: '
print confusion_matrix(labels_test,pred)
# 精度在0.9333,9.6667,1.0范围内
print accuracy
model.predict(sub_main)
# 确定预测时间
t1 = time()
pred = model.predict(sub_main)
print 'predicting time: ',round(time()-t1,3),'s'
print ''
print 'Prediction: '
print pred

我怀疑我会使用score()函数,但我似乎一直没有正确实现它。我不知道这是否是正确的函数,但如何获得分类器预测的置信度百分比?

0