3

В docs, то есть predict_proba(self, x, batch_size=32, verbose=1)Keras, выход модели predict_proba

Формирует вероятности класса предсказания для пакетного ввода образцов партии.

и возвращает

Numpy массив вероятностных предсказаний.

Предположим, моя модель является двоичным модель классификации, делает вывод [a, b] для a есть вероятность class_0 и b вероятность class_1?

ответ

7

Здесь ситуация другая и как-то вводит в заблуждение, особенно когда вы сравниваете метод predict_proba с методами sklearn с тем же именем. В Keras (не обертки sklearn) метод predict_proba равен точно такой же как метод predict. Вы даже можете проверить его here:

def predict_proba(self, x, batch_size=32, verbose=1): 
     """Generates class probability predictions for the input samples 
     batch by batch. 
     # Arguments 
      x: input data, as a Numpy array or list of Numpy arrays 
       (if the model has multiple inputs). 
      batch_size: integer. 
      verbose: verbosity mode, 0 or 1. 
     # Returns 
      A Numpy array of probability predictions. 
     """ 
     preds = self.predict(x, batch_size, verbose) 
     if preds.min() < 0. or preds.max() > 1.: 
      warnings.warn('Network returning invalid probability values. ' 
          'The last layer might not normalize predictions ' 
          'into probabilities ' 
          '(like softmax or sigmoid would).') 
     return preds 

Так что - в бинарной классификации случае - выход, который вы получите, зависит от конструкции сети:

  • если конечный результат вашей сети получается по одному сигмовидному выходу - тогда выход predict_proba является просто вероятностью, назначенной классу 1.
  • , если конечный выход вашей сети получается двумерным выходом, к которому вы применяете функцию softmax, - тогда выход predict_proba представляет собой пару, где [a, b], где a = P(class(x) = 0) и b = P(class(x) = 1).

Этот второй метод редко используется, и есть некоторые теоретические преимущества использования первого метода - но я хотел сообщить вам - на всякий случай.

+0

Ответ устарел –

0

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