[Тервер] Нормальное распределенние по вре

Автор dr.Faust, 6 января 2011, 13:15

0 Пользователи и 1 гость просматривают эту тему.

dr.Faust

Вроде простая задача.
Есть непрерывное циклическое численное состояние системы и накопленные данные о событиях. Как определить вероятность повторения события при определённом состоянии.
Так как подозреваю, что в силу малограмотности путаюсь в терминологии, изобретая добрую (или злую...) её половину на ходу, приведу частный случай.
Пусть есть некоторые накопленные данные о каком либо событии по времени.
Допустим, событие A произошло 5 раз в 9 часов, 3 в 10 часов, 7 раз в 19 часов и 5 раз в 20 часов. (когда пишу в n часов, подразумеваю - между n и n+1 часов)
Как определить, какова вероятность повторения события в k часов?
Как бы напрашивается следующие решение - предположить, что на каждом часе имевшее место событие является пиком нормального распределения. Посчитать вероятности исходя из этого предположения, а потом найти среднее значение между ними в заданной точке (ну или во всех 24).
1 Правильна ли идея?
2 Как посчитать это чёртово нормальное распределение для произвольного цикла значений?

P.S.
Картинку сгладил B-сплайном 4 степени (тупо для красоты), отсюда и несоответствие значений. Однако даже по ней видно, что распределение у меня ниразу не нормальное...

[вложение удалено Администратором]
Свобода информации - свобода личности!

Ivanych

#1
Временной ряд? Вообще же, необходимо полное описание задачи.

convas

Эта задача относится к методам прогнозирования (и прикладной статистики).
Цитировать
Часто ли распределение результатов наблюдений является нормальным?
Результаты измерений и вообще статистические данные имеют свойства, приводящие к тому, что моделировать их следует случайными величинами с распределениями, более или менее отличными от нормальных. В большинстве случаев распределения существенно отличаются от нормальных. В других нормальные распределения могут, видимо, рассматриваться как некоторая аппроксимация. Но никогда нет полного совпадения. Отсюда вытекает как необходимость изучения свойств классических статистических процедур в неклассических вероятностных моделях, так и необходимость разработки устойчивых (учитывающих наличие отклонений от нормальности) и непараметрических, в том числе свободных от распределения процедур, их широкого внедрения в практику статистической обработки данных.
http://orlovs.pp.ru/stat.php#k5

dr.Faust

А вот как бы задача и описана. Причём даже более полно чем она на самом деле есть.
Единственное о чём не упомянул (забыл) это то, что вычисление точное вероятности не требуется.
Там смысл такой:
Есть примерно сотня событий, которые вообще могут иметь место. Реально из них имеет место где-то 20-30.
События происходят в некотором контексте, частным состоянием которого является время. Все классы состояний могут быть сведены к таким квантовым циклам:
1 Логические (клавиша нажат/ненажата, есть сигнал от датчика/нет сигнала и тп) к циклу Да-Нет
2 Квантовые они и так квантовые - например Пн-Вт-Ср-Пт-Сб-Вс
3 Непрерывные могут быть представлены в виде приближения - например время в виде часов как в примере.

При этом есть ключевое событие (не пренадлежащие множеству предсказываемых) ВСЕГДА предшествующие какому-то событию (например какое либо из событий которые мы пытаемся предсказать ВСЕГДА случается после нажатия определённой комбинации клавиш).

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

Теперь о частном применении.

Задача выросла из дискуссии о прогнозировании поведения пользователя и попыток подстройки системы под его поведение. В частности интерфейса.

Типовая задача упорядочить приложения в списке предлагаемом лаунчером. Сейчас это делается просто по частоте запуска задач. Например если я вызвал свой Gnome-Do (ключевое событие - сейчас произойдёт одно из тех которые надо предсказать - запуск одного из приложений) и набрал на клавиатуре E то мне предлагается список приложений первым из которых стоит Emphaty, а вторым Eclipse. Да - я запускаю его чаще, а система реагирует только на частоту запуска. А вот если бы она реагировала ещё и на контекст, она бы знала, что когда у меня нет подключения по сети, я никогда практически не запускаю Emphaty  и почти всегда запускаю Eclipse, и не допустила бы промашки.
Плюс к тому, догадываясь что с большой вероятностью я запускаю Eclipse, она бы могла потихому (пока я жму клавишы) начать подгрузку библиотек которые им используются или хотя бы вытягиванием файлов Eclipse в кэш, что не только бы сократило мои телодвижения но и ускорило бы запуск.

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

Так как дискуссия наверняка получит продолжение, хотелось бы иметь некоторые камнидеи за пазухой...
Свобода информации - свобода личности!

Ivanych

#4
Data mining. Задача классификации. В принципе, скорее всего, деревья либо ассоциативные правила. Есть неплохая книга для знакомства, один из авторов - Барсегян. Рекомендую.
Алгоритмы реализованы - библиотека WEKA. Сначала я бы потестил на готовом наборе, да не на одном, ну, типа в KNIME погонял бы, подобрал метод и запряг бы.
Да, кстати, исходное описание - это прогнозирование на основе временных рядов. Вельми неполно и вельми не сходно с последующим описанием.


Ivanych


dr.Faust

Свобода информации - свобода личности!