Я хотел бы получить оценку доверия каждого из прогнозов, которые она делает, показывая, насколько уверен, что классификатор в своем предсказании, что это правильно.Как получить оценку доверия классификатора для предсказания в 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)
# 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]. я знаю, что третья будет выбрана, но к какому классу относится третий? – AbtPst
вероятности соответствуют «classifier.classes_». Но они не имеют смысла, если набор данных невелик :-(Более того, они также не гарантируют соответствие с 'classifier.predict()': '(. [Ссылка на страницу документов] (http: // scikit- learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.predict) – AneesAhmed777