Что делает> 0.3 в операторе model.predict? - PullRequest
0 голосов
/ 11 июля 2019

Я наткнулся на следующий формат кода model.predict при подгонке 2 уровней ввода к модели RNN. Это выполняется в керасе.

y_pred = (model.predict(x=[X_test_pad, X_test_psl])>0.3).astype(np.int32)

Я довольно плохо знаком с моделями глубокого обучения и не знаком с форматом, в котором мы указываем >0.3, или с любым значением для входных данных. Следовательно, я хотел бы знать, что именно >0.3 делает в этом случае.

Любые разъяснения в этом отношении будут высоко оценены.

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

> 0.3 не является частью функции model.predict.Результат прогноза сравнивается с порогом принятия решения 0,3.

Пример: обнаружение опухоли на изображениях мозга

Если ваша модель говорит, что на 40% уверена, что у меня опухоль, я не буду дома счастливо только потому, что 0,4 <0,5 -> опухоли нет,

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

Вы можете написать так:

model_pred = model.predict(x=[X_test_pad, X_test_psl]
y_pred = (model_pred>0.3).astype(np.int32)

Для получения дополнительной информации я рекомендуючитать https://stats.stackexchange.com/questions/312119/classification-probability-threshold

1 голос
/ 11 июля 2019

Метод predict возвращает массивоподобное значение.По сути, вы сравниваете каждую строку в прогнозе (которая является плавающей точкой, возможно, вероятности) с вашим порогом 0,3.Вы можете представить, что это работает как понимание списка.Он вернет другую массивоподобную структуру логических значений, указывающую, превышает ли каждое предсказание 0,3.Для вашего последнего шага вы в основном конвертируете этот логический массив в массив целых чисел, приводя значения true / false.С математической точки зрения вы можете думать, что она работает как пошаговая функция.

Я полагаю, вам будет легче понять, как работает ваш код, если вы разобьете его на более мелкие блоки.Сначала проверьте вывод прогнозов, затем проверьте результат сравнения и т. Д.

...