Как обучать нейронную сеть для предсказаний действия агента?
Я начал изучать машинное обучение. Для этого я использую python и scikit-learn.
Есть задача в которой мне нужно предсказать действие агента. Входные данные описывают ситуацию. У агента есть два возможных действия, которые являются реакцией на описываемую ситуацию. Агент может совершить только одно действие.
1 0 - агент совершил первое действие.
0 1 - агент совершил второе действие.
После обучения я хочу получить вероятности совершения действия агента на событие. Т.е. если я на событие получу ответ - 0.3 0.7, это означает предсказание действий агента в котором предсказывается что 1 действие агент совершит с вероятностью 30%, а второе действие соответственно с вероятностью 70%.
Я для обучения пробовал применять разные регрессионные модели, например LinearRegression или RandomForestRegressor. В результате я вроде даже получаю данные нужного вида.
Так вот вопрос, какие модели обучения правильно применять для такой задачи. И самое главное как оценивать результат выполнения. Ведь если ответом будет предсказание 0.02 0.98, а агент все таки совершит первое действие (1 0), то это не ошибка, просто событие с малой вероятностью. Для моделей я как понимаю применяется оценка среднеквадратической ошибки. Такая оценка ведь не подходит для данной задачи?
Вы не сказали самого главного - как описывается ситуация. Если вы внимательно изучаете МL, то наверняка обратили внимание, что для разных типов данных используется разные методы даже для решения одной и той-же (или подобной) целевой задачи.
Ну а оценка модели - смотрите в сторону темы "ROC-кривая" и производные от нее.
На самом деле с точки зрения правильного статистика, вам нужна не только вероятность свершения данного события. Но и доверительный интервал данного свершения.
Т.о. ваша сеть может предсказать 1% за одно действие и 99% за другое .. но если произойдет первое, это не значит что сеть "ошиблась", просто она предсказала данный исход с вероятностью не 95% .. а 1% )