Как оценить эффективность алгоритма, предсказывающего вероятности?

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

Мой текущий подход заключается в использовании «среднеквадратичной ошибки», т.е. квадратный корень из среднего квадрата ошибок, где ошибка равна прогнозу 1,0, если событие произошло, или прогнозу, если событие не произошло.

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

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


person sanity    schedule 31.01.2010    source источник
comment
Использовать его, чтобы делать ставки на лошадей? Это так же связано с программированием, как и ваш вопрос.   -  person    schedule 01.02.2010


Ответы (4)


критерий хи-квадрат — это широко используемый тест пригодности распределения:

∑ (Oi - Ei)2/Ei

где Oi — наблюдаемая частота исхода i, а Ei — ожидаемая частота. Этот критерий хи-квадрат требует минимального размера выборки (~ 5 или 10, в зависимости от распределения, особенно степеней). свободы распространения) для каждого возможного исхода. Если требование к размеру выборки не выполняется, необходимо применить поправку Йейтса:

∑ (|Oi - Ei| - 0,5)2/Ei

Отказ от ответственности: я не статистик. Вышеупомянутое, вероятно, упускает некоторые из тонкостей. Я знаю, что есть веская причина использовать хи-квадрат вместо RMSE, но я не могу вспомнить, что это такое.

Найдите веб-страницы, посвященные проверке гипотез.

person outis    schedule 01.02.2010

Взгляните на кривые ROC, также известные как рабочие характеристики приемника.

Цитата со страницы Википедии:

В теории обнаружения сигналов рабочая характеристика приемника (ROC) или просто кривая ROC представляет собой графический график зависимости чувствительности от (1 - специфичности) для системы бинарного классификатора при изменении ее порога различения. ROC также может быть представлен эквивалентно путем построения графика доли истинных положительных результатов (TPR = доля истинных положительных результатов) по сравнению с долей ложных срабатываний (FPR = доля ложных положительных результатов). Также известна как кривая относительной рабочей характеристики, потому что она представляет собой сравнение двух рабочих характеристик (TPR и FPR) по мере изменения критерия.[1]

ROC-анализ предоставляет инструменты для выбора, возможно, оптимальных моделей и отбрасывания неоптимальных независимо от (и до определения) контекста затрат или распределения классов. ROC-анализ напрямую и естественным образом связан с анализом затрат/выгод при принятии диагностических решений. Кривая ROC была впервые разработана инженерами-электриками и инженерами-радиолокаторами во время Второй мировой войны для обнаружения вражеских объектов на полях сражений, также известной как теория обнаружения сигналов, и вскоре была введена в психологию для учета перцептивного обнаружения сигналов. С тех пор ROC-анализ использовался в медицине, радиологии и других областях на протяжении многих десятилетий, и относительно недавно он был внедрен в других областях, таких как машинное обучение и интеллектуальный анализ данных.

На самом деле это проще, чем кажется, и упрощает сравнение — «лучшие» методы будут визуально доминировать на кривой ROC более низкого метода.

R имеет для этого несколько пакетов.

person Dirk Eddelbuettel    schedule 01.02.2010

Я не уверен, что понимаю ваш вопрос, поэтому этот ответ может быть вам бесполезен.

Вопрос:
Как можно проверить, проверяется ли алгоритм вычисления вероятности того, что система находится в заданном состоянии, на фактическую вероятность.

Предположительно, это система, в которой есть одно или несколько вероятностных начальных состояний, взаимодействующих друг с другом для создания конечного состояния, и распределение начальных состояний известно.

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

Ответ:
Один из способов решить эту проблему — использовать метод Моделирование методом Монте-Карло.

Для этого вы выбираете большое количество начальных состояний, распределенных согласно начальным распределениям вероятностей. Для каждого начального состояния вы вычисляете конечное состояние системы. Глядя на распределение конечных состояний, вы можете определить вероятность конечного состояния, имеющего определенное значение.

Теперь вы можете сравнить результаты моделирования с результатами вашего алгоритма.

Хотя приведенное выше описание может показаться техническим, на практике его довольно легко написать. Вы можете найти несколько учебных пособий в Интернете, хотя в большинстве из них используется метод Монте-Карло для немного другой задачи.

Пример:

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

Вы можете написать алгоритм, который будет предсказывать эту возможность с параметрами, равными количеству подброшенных монет. (Конечно, существует точный расчет этой вероятности.)

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

person amicitas    schedule 31.01.2010
comment
Проблема в том, что у меня есть куча данных, из которых я знаю, что произошло, и я знаю, что произойдет, как я предсказал. Как мне превратить это в какую-то оценку, которую можно использовать для оценки алгоритмов относительно друг друга? - person sanity; 01.02.2010
comment
Ах. Стандартная метрика, которую я использую, — это сумма квадратов ошибок. Это похоже на квадрат средней ошибки, но его проще интерпретировать. Я думаю, что это, как правило, хорошее использование метрики и позволяет вам взвешивать ошибки, когда это уместно. У вас есть конкретный пример? - person amicitas; 01.02.2010

Похоже, вы предсказываете результат чего-то, что принимает значение 0 или 1, верно? Если это так, вы можете изучить обсуждение моделирования дискретного выбора. Слово «выбор» не следует понимать слишком буквально. В то время как большинство моделей дискретного выбора разрабатываются для объяснения выбора, который люди делают каждый день — купить тот или иной продукт, сесть на поезд или поехать на машине, поехать на работу тем или иным путем, — эти же модели успешно применяются в собачьих бегах и скачках.

Ключевые тексты на эту тему написаны Бен-Акивой и Лерманом и Кеннетом Трейном. Также ищите «логит-модели» для получения информации об определении и подгонке этих статистических моделей.

person Grembo    schedule 12.02.2010