Подтвердить что ты не робот

Как я могу узнать вероятность класса, предсказанного функцией prec() в Vector Vector Machine?

Как я могу узнать вероятность выборки, которую он принадлежит классу, предсказанному функцией prec() Scikit-Learn в поддержке Vector Machine?

>>>print clf.predict([fv])
[5]

Есть ли какая-либо функция?

4b9b3361

Ответ 1

Используйте clf.predict_proba ([fv]), чтобы получить список с прогнозируемыми вероятностями для каждого класса. Однако эта функция недоступна для всех классификаторов.

Что касается вашего комментария, рассмотрите следующее:

>> prob = [ 0.01357713, 0.00662571, 0.00782155, 0.3841413, 0.07487401, 0.09861277, 0.00644468, 0.40790285]
>> sum(prob)
1.0

Сумма вероятности равна 1.0, поэтому умножьте на 100, чтобы получить процент.

Ответ 2

Определенно прочитайте этот раздел документации, так как там задействованы некоторые тонкости. См. Также Scikit-learn predict_proba дает неправильные ответы

В принципе, если у вас многоклассовая проблема с большим количеством данных, предсказываемая ранее предсказанная версия, работает хорошо. В противном случае вам, возможно, придется делать с заказом, который не дает оценки вероятности из функции принятия решения.

Вот хороший мотив для использования pred_proba для получения словаря или списка классов с вероятностью:

model = svm.SVC(probability=True)
model.fit(X, Y)
results = model.predict_proba(test_data)[0]

# gets a dictionary of {'class_name': probability}
prob_per_class_dictionary = dict(zip(model.classes_, results))

# gets a list of ['most_probable_class', 'second_most_probable_class', ..., 'least_class']
results_ordered_by_probability = map(lambda x: x[0], sorted(zip(model.classes_, results), key=lambda x: x[1], reverse=True))