2015-12-13 4 views
2

Есть ли способ сообщить о ожидаемом значении модели двоичной классификации модели sklearn? В previous question кто-то рекомендовал predict_proba. Я ожидал выхода, аналогичного параметру xgboost "objective": "binary:logistic". Однако, похоже, что это не дает желаемых результатов. Мои значения поезда Y сдержанны.Использование sklearn prob_a для логистической двоичной классификации

Меня смущает выход predict_proba. Поскольку у меня только одна цель, я ожидал возвращения одного столбца. Однако это возвращает два столбца, и эти столбцы суммируются с одним. Эти значения, похоже, не соответствуют значениям фактически предсказанным модель:

In [27]: modl.predict(X_test) 
Out[27]: array([0, 0, 0, ..., 0, 0, 0]) 

In [28]: modl.predict_proba(X_test) 
Out[28]: 
array([[ 0.6, 0.4], 
     [ 0.7, 0.3], 
     [ 1. , 0. ], 
     ..., 
     [ 1. , 0. ], 
     [ 0.9, 0.1], 
     [ 0.8, 0.2]]) 

ответ

7

Столбцов в выходном массиве из predict_proba являются вероятности различных меток пророчат ваш классификатор. В вашем случае вы создали двоичный классификатор, поэтому первый столбец modl.predict_proba(X_test)[:,0] - это вероятность того, что метка равна 0, а второй столбец modl.predict_proba(X_test)[:,1] - это вероятность того, что метка равна 1.

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