2017-01-27 3 views
0

У меня есть 5 классов, как на выходе, которые представляют предсказанную класса студента - 1, 2, 3, 4, 5.predicted_proba в мульти-класс логистической классификации

Когда я входной мои ценности, с predict_proba , я получаю вероятность каждого класса.

например.

Класс 1: 0,1 Класс 2: 0,4: Класс 3: 0,3 класс 4: 0.05 Класс 5: 0,15

Однако, единственное, что я получаю от этого в том, что предсказание: класс 2, так как вероятность наивысшая. Как бы преобразовать эти вероятности в более конкретное предсказание, например, 2.4 или 2.9? где 2 равно класс 2.

Возможно ли это? Если да, то как?

Большое спасибо за ваше время.

+0

[ 'model.predict'] (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html # sklearn.linear_model.LogisticRegression.predict)? –

+0

@ juanpa.arrivillaga, который только дает мне прогноз класса 2, он не дает мне десятичных знаков или чего-то более конкретного. –

+0

Что значит «более конкретный»? Как он может быть более конкретным, чем '2'? –

ответ

0

Вот один быстрый способ сделать это:

probs = LRC.predict_proba(x) 
class_indexes = np.argmax(probs,axis=1) 
max_probs = probs[np.arange(len(x)),class_indexes] 
class_output = lrc.classes_[class_indexes] 
class_prob_list = zip(class_output,max_probs) 
print [str(cls)+'.'+str(prob) for cls,prob in class_prob_list] 
+0

спасибо за это, однако len_data, похоже, не определен? –

+0

Последняя строка также не очень ясна, с cls и prob не определено;/ –

+0

изучение списка в python –

Смежные вопросы