Разница между предсказанием и предсказанием в scikit-learn - PullRequest
0 голосов
/ 13 апреля 2020

Предположим, я создал модель, и моей целевой переменной является либо 0, 1, либо 2. Кажется, что если я использую predict, ответ будет либо 0, либо 1 или 2. Но если я использую predict_proba, я получу строку с 3 столбцами для каждой строки следующим образом, например

   model = ... Classifier       # It could be any classifier
   m1 = model.predict(mytest)
   m2= model.predict_proba(mytest)

   # Now suppose  m1[3] = [0.6, 0.2, 0.2]

Предположим, я использую как предикат, так и predict_proba. Если в индексе 3 я получу приведенный выше результат с результатом predict_proba, в индексе 3 результата прогнозирования я должен увидеть 0. Это так? Я пытаюсь понять, как использование predict и predict_proba на одной модели связано друг с другом.

1 Ответ

1 голос
/ 13 апреля 2020
  • predict() используется для прогнозирования фактического класса (в вашем случае один из 0, 1 или 1).
  • predict_proba() используется для прогнозирования вероятностей класса

Из примера выходных данных, которым вы поделились,

  • predict() выведет класс 0, поскольку вероятность класса для 0 равна 0,6.
  • [0.6, 0.2, 0.2] - это вывод predict_proba, который просто означает, что вероятность класса для классов 0, 1 и 1 равна 0.6, 0.2 и 0.2 соответственно.

Теперь, когда в документации упоминается predict_proba, результирующий массив упорядочивается на основе использованных вами меток:

Возвращенные оценки для все классы упорядочены по меткам классов.

Поэтому в вашем случае, когда ваши метки классов равны [0, 1, 2], соответствующий вывод predict_proba будет содержать соответствующие вероятности. 0.6 - это вероятность того, что экземпляр будет классифицирован как 0, а 0.2 - это вероятность того, что экземпляр будет классифицирован как 1 и 2 соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...