【发布时间】:2015-09-16 17:42:07
【问题描述】:
我想获得它所做的每个预测的置信度分数,以显示分类器对其预测正确性的确定程度。
我想要这样的东西:
分类器对其预测的确定性如何?
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)
# Determine amount of time to train
t0 = time()
model = SVC()
#model = SVC(kernel='poly')
#model = GaussianNB()
model.fit(features_train, labels_train)
print 'training time: ', round(time()-t0, 3), 's'
# Determine amount of time to predict
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)
# Accuracy in the 0.9333, 9.6667, 1.0 range
print accuracy
model.predict(sub_main)
# Determine amount of time to predict
t1 = time()
pred = model.predict(sub_main)
print 'predicting time: ', round(time()-t1, 3), 's'
print ''
print 'Prediction: '
print pred
我怀疑我会使用 score() 函数,但我似乎一直正确地实现它。我不知道这是否是正确的函数,但是如何获得分类器预测的置信百分比?
【问题讨论】:
-
非常有用的问题。有没有办法将类名也与概率相关联?例如,如果我得到以下输入 [0.33 0.25 0.75] 的概率列表。我知道第三个会被选中,但是第三个是指哪个类?
-
概率对应于
classifier.classes_。但是如果数据集很小,它们是无意义的:-(。此外,它们也不能保证与classifier.predict():'(。link to docs page
标签: python machine-learning scikit-learn probability prediction