2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Оценка точности предсказания событий
Сообщение03.02.2006, 11:31 
Как оценить точность предсказания события?
Предположим, имеем N событий и для каждого из них мы определяли вероятности исходов (Р1 и Р2), соответственно имеем результаты (0% или 100% для каждого из событий).
Существует-ли критерий оценки точности предсказаний в этом случае?

 
 
 
 
Сообщение03.02.2006, 13:14 
Аватара пользователя
Не совсем понятна формулировка. Речь идет об определении вероятности события по наблюдаемым данным или о чем-то другом? Что нам известно, а что хотим найти? Что значит "предсказание"?

 
 
 
 
Сообщение03.02.2006, 14:56 
Изложу задачу по-другому:
У нас есть некая (не важно как она работает) система предсказания событий, которая выдает вероятность Р того, что событие сбудется (Р= от 0 до 100%).
На протяжении N событий (N ~10000) мы наблюдали за тем, сбываются события или нет, а также записывали вероятности Р, выдаваемые системой.
Необходимо оценить ошибку предсказаний системы (например, все события с вероятностью, условно, 21,3%, предсказанные безошибочной системой, должны были сбываться в 213 из 1000 случаев, и т.д. для событий с другими вероятностями). Результат должен быть получен в %, напр., ошибка системы =3,2%.

 
 
 
 
Сообщение03.02.2006, 16:00 
Аватара пользователя
Для начала можно посмотреть по гистограммам. Разбить отрезок [0,1] на некоторое количество частей (скажем, 10), может быть частично пересекающихся (скажем, взять отрезки [0;0.1], [0.05;0.15] и т.д. Для каждого отрезка отобрать те события, для которых вероятность, предсказанная системой, попадала в указанный диапазон, и посмотреть, с какой частотой они происходили. На основе этих точек построить график зависимости наблюдаемой вероятности от предсказанной и посмотреть на него.

 
 
 
 
Сообщение04.02.2006, 01:30 
Я вот все равно не очень понял, как это работает. Давайте на конкретном примере.
Вот, например, такое:
1) мы 10000 раз бросаем одну и ту же монетку, а система предсказывает нам каждый раз, на какую сторону упадет монетка, или
2) мы бросаем 10000 различных несимметричных игральных костей, а система каждый раз выдает вероятности выпадения шести очков (то есть, дает вероятность одного события "выпало 6 очков". Ну и соответственно вероятность противоположного события, что не выпало), или
3) мы бросаем 10000 различных несимметричных игральных костей, а система каждый раз выдает вероятности выпадения для каждой грани (то есть, дает вероятности нескольких несовместных событий)
4) мы бросаем 10000 различных несимметричных игральных костей, а система каждый раз выдает вероятности выпадения двух событий, "выпало четное" и "выпало больше трех" (то есть, дает вероятности нескольких пересекающихся событий)

Что из перечисленного ближе к исходной постановке задачи?

 
 
 
 
Сообщение04.02.2006, 14:07 
Dan_Te писал(а):
Я вот все равно не очень понял, как это работает. Давайте на конкретном примере.


Конкретный пример:
"какова вероятность того, что завтра в Одессе будет дождь", на что система выдавала прогноз от 0 до 100%, и так на протяжении 10000 дней, результаты наблюдений "да" или "нет"

 
 
 
 
Сообщение04.02.2006, 22:45 
Аватара пользователя
Мне кажется надо просто показать, что работает ЗБЧ $ \frac {S_n} n \to M(\xi) $, где $ S_n $ сумма всел случайных величин $\xi_1, \xi_2, \xi_3, ..., \xi_n $ Обратите внимаение, сам ответ нужно дать именно в процентах!

 
 
 
 
Сообщение06.02.2006, 22:30 
Аватара пользователя
Нет, ЗБЧ тут не к месту. Речь ведь идет не о различных реализациях одной и той же случайной величины $\xi$, а о разных величинах - в каждом опыте своя.

Насколько я понимаю, речь идет о некоторой системе классификации. Наблюдаются объекты, каждый из которых необходимо отнести либо к классу А, либо к не-А. По каждому объекту измеряется набор характеристик, на основании которых и принимается решение. Построена некоторая система, которая по предъявленному объекту (т.е. набору его характеристик) выдает число от 0 до 1. Нам хочется, чтобы это число было бы вероятностью того, что данный объект принадлежит классу А.

Теперь мы хотим проверить работу системы на некотором множестве данных, в котором известны истинные принадлежности объекта классам.

Качество работы системы можно оценивать разными способами. Мне пока не совсем ясна постановка - чего мы хотим. Допустим, некто умный сказал, что ошибка системы - 3%. Что означает это число? Чем ошибка в 3% количественно отличается от ошибки 5%? Я пока не понимаю.

 
 
 
 
Сообщение08.02.2006, 11:27 
PAV писал(а):
Насколько я понимаю, речь идет о некоторой системе классификации. Наблюдаются объекты, каждый из которых необходимо отнести либо к классу А, либо к не-А. По каждому объекту измеряется набор характеристик, на основании которых и принимается решение. Построена некоторая система, которая по предъявленному объекту (т.е. набору его характеристик) выдает число от 0 до 1. Нам хочется, чтобы это число было бы вероятностью того, что данный объект принадлежит классу А.
Теперь мы хотим проверить работу системы на некотором множестве данных, в котором известны истинные принадлежности объекта классам.

Именно так

PAV писал(а):
Качество работы системы можно оценивать разными способами. Мне пока не совсем ясна постановка - чего мы хотим. Допустим, некто умный сказал, что ошибка системы - 3%. Что означает это число? Чем ошибка в 3% количественно отличается от ошибки 5%? Я пока не понимаю.

Цель - настроить систему так, чтобы ошибка была как можно ближе к нулю.

PAV писал(а):
Разбить отрезок [0,1] на некоторое количество частей (скажем, 10), может быть частично пересекающихся (скажем, взять отрезки [0;0.1], [0.05;0.15] и т.д. Для каждого отрезка отобрать те события, для которых вероятность, предсказанная системой, попадала в указанный диапазон, и посмотреть, с какой частотой они происходили. На основе этих точек построить график зависимости наблюдаемой вероятности от предсказанной и посмотреть на него.

Эта идея мне нравится. Для каждого прогона системы строим график. Нашей целью будет настроить систему таким образом, чтобы график приближался к прямой, проходящей под 45 градусов к осям. В этом варианте оценки, как я понимаю, чем короче будут отрезки и чем больше их будет, тем точнее будет график. Кроме того, надо использовать интерполяцию, поскольку величины вероятностей соседних отрезков могут давать разброс. Здесь возник еще вопрос: нужно ли при интерполяции учитывать вес отрезка, потому как в разные отрезки попадет разное количество событий?

PAV писал(а):
Качество работы системы можно оценивать разными способами.

Спасибо за вышеописанный. Какие еще способы можете предложить?

 
 
 
 
Сообщение08.02.2006, 13:23 
Аватара пользователя
Обсудим.

Если не затруднит, хотелось бы еще узнать некоторые вещи. Прежде всего - хотите ли вы проверить уже существующую систему (ну и при необходимости что-то в ней подкрутить) или хочется сделать процедуру автоматического обучения, т.е. когда программа сама делает одну итерацию за другой, подгоняя параметры так, чтобы что-то вроде ошибки становилось все меньше.

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

По поводу графика. Я бы сказал, что интерполировать не обязательно, для качественного определения того, насколько хорошо работает система, годится и набор точек. Но держать в уме разную значимость разных точек можно по следующей причине. Мы хотим, чтобы по оси ординат была бы отложена истинная вероятность в рассматриваемом классе. Но так как мы ее не знаем, то используем взамен наблюдаемую частоту. Как известно, если наблюдений мало, то частота может значительно отклоняться от вероятности, поэтому верить полученному значению в этом случае нужно с опаской. Я бы сказал, что если в некоторый отрезок попало меньше нескольких десятков значений, то в принципе его может быть лучше не рассматривать. Можно его попробовать расширить в этом случае. Можно вообще строить отрезки не равной длины, а по количеству попавших в них наблюдений.

 
 
 
 
Сообщение27.02.2006, 15:16 
Математика и спорт, пробуем адаптировать программу для расчета рейтинга теннисистов (на основе рейтинга Эло). Так как рейтинг Эло был изначально разработан для шахмат, то коэф. в формулах не оптимальны для тенниса. (например для игры го на основе статистики были подробны другие коэф.).
Теория таких рейтингов говорит, что на основе статистики можно с определенной точностью предсказать результат матча двух игроков.
1. Хотелось сделать процедуру автом. обучения.
2. Оценивать точность по нескольким параметрам.

 
 
 
 
Сообщение27.02.2006, 15:54 
Во первых, система подсчёта коэффициентов Эло имеет инфляционную составляющую. Когда в "кванте" опубликовали статью об этом, я отправил им пример, когда 2 третьеразрядника и один перворазрядник играя каждый день по туру и считая свои коэффициенты, через год превысит рейтинг 3000.
В теннисе этот подход (учёта результата по сравнению с средним рейтингов участников)не годится и ещё по причине игры через выбивание. Соответственно хорошее предсказание по одному рейтингу до турнира становится практически невозможным. Вообще, кроме рейтинга здесь имеется много других факторов, типа удачная сетка или нет (для некоторых игроков имеются не удобные соперники, хотя и слабые по общему рейтингу) и т.д.

 
 
 
 
Сообщение27.02.2006, 17:37 
Согласен, что такие системы имеют недостатки, но можно ли оценить точность таких систем?

 
 
 
 
Сообщение27.02.2006, 22:55 
Можно только улучшить предсказуемость некоторых исходов, вводя дополнительные параметры характеризации игрока. Я когда то разрабатывал двухпараметрическую систему, (сила - рейтинг и регулярность игры (ровность силы, которую можно интерпретировать как предсказуемость от игры к игре) систему. Но у меня ничего не сохранилось, разве что по договору это заново сочинить.

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group