Прихована модель Маркова для прогнозування подій


9

Запитання : Чи встановлена ​​нижче схема розумної реалізації моделі прихованого Маркова?

У мене є набір даних 108,000спостережень (за 100 днів) і приблизно 2000подій протягом усього періоду спостереження. Дані виглядають як на малюнку нижче, де спостерігається змінна може приймати 3 дискретні значення[1,2,3]і червоні стовпці виділяють часи подій, тобто :тЕ

введіть тут опис зображення

Як показано з червоними прямокутниками на малюнку, я { до } для кожної події, ефективно трактуючи їх як "вікна перед подією".тЕтЕ-5

Навчання HMM: Я планую підготувати модель прихованого Маркова (HMM) на основі всіх "вікон перед подією", використовуючи методологію декількох послідовностей спостереження, як це запропоновано на Pg. 273 Рабинер в роботі . Сподіваюся, це дозволить мені тренувати HMM, який фіксує шаблони послідовностей, які призводять до події.

Прогноз HMM: Тоді я планую використовувати цей HMM для прогнозування на новий день, де будуть вектором розсувного вікна, оновленим у режимі реального часу, щоб містити спостереження між поточним часом та у міру продовження дня.лог[П(Обсеrvатiонс|НММ)]Обсеrvатiонстт-5

Я очікую збільшення для що нагадують "вікна перед подією". Це фактично повинно дозволяти мені передбачати події до того, як вони відбудуться.лог[П(Обсеrvатiонс|НММ)]Обсеrvатiонс


Ви можете розділити свої дані, щоб скласти модель (скажімо, 0.7), а потім протестувати свою модель на решті даних. Просто думка, я не фахівець у цій галузі.
Фернандо

Так дякую. Більш придатність НММ до завдання, в якому я не впевнений.
Жубарб

@Zhubarb Я маю справу з подібною проблемою і хотів би дотримуватися вашого підходу HMM. Де ви успішно це робите? Або ви нарешті повторилися до логістичної регресії / SVM тощо?
Хав'єрфдр

@Javierfdr, я в кінцевому підсумку не реалізував це через труднощі реалізації та занепокоєння, які альто підкреслює у своїй відповіді. По суті, HMM покладає на себе тягар, який повинен будувати розгалужену генеративну модель, тоді як моє відчуття кишечника зараз пов'язане з проблемою, але можна легше піти з дискримінаційної моделі (SVM, Neural Net і т.д.), як ви пропонуєте. .
Жубарб

Відповіді:


3

Однією з проблем, описаних вами підходом, є те, що вам потрібно буде визначити, який тип збільшення П(О) є багатозначним, що може бути важко П(О)завжди буде дуже мало. Можливо, краще тренувати два НММ, скажімо, HMM1 для послідовностей спостереження, де відбувається подія, яка викликає інтерес, і HMM2 для послідовностей спостереження, де подія не відбувається відбувається. Потім задана послідовність спостереженняО ти маєш

П(ННМ1|О)=П(О|НММ1)П(НММ1)П(О)П(О|НММ1)П(НММ1)
і аналогічно для HMM2. Тоді ви можете передбачити, що подія відбудеться, якщо
П(НММ1|О)>П(НММ2|О)П(НММ1)П(О|НММ1)П(О)>П(НММ2)П(О|НММ2)П(О)П(НММ1)П(О|НММ1)>П(НММ2)П(О|НММ2).

Відмова від відповідальності : Далі випливає з мого особистого досвіду, тому сприймайте його таким, яким він є. Однією з приємних речей щодо HMM є те, що вони дозволяють мати справу з послідовностями змінної довжини та ефектами змінного порядку (завдяки прихованим станам). Іноді це необхідно (як у багатьох програмах NLP). Однак, схоже, ви апріорі припустили, що для прогнозування події, що цікавить, мають значення лише останні 5 спостережень. Якщо це припущення реалістичне, то, можливо, ви будете мати більше шансів використовувати традиційні методи (логістичний регрес, наївні баїси, SVM тощо) та просто використовувати останні 5 спостережень як функції / незалежні змінні. Зазвичай ці моделі будуть легше тренуватися і (на мій досвід) давати кращі результати.


@ alto, дякую. Як ви кажете, я буду дивитисьp=лог(П(О|годмм)), та такі значення, як p1=-2504,p2=-2403,p3=-2450тощо, тому помічаючи значне збільшення в pможе бути проблематичним. Тим часом, я думаю, що тренувати HMM2 буде важко. Кількість балів за HMM2 (без події) буде набагато більшою, і там може не бути жодної грамоти, а лише шуму. Як ти гадаєш? PS : Я вибрав 5 в якості розміру вікна довільно, він, швидше за все, буде довший, ніж у фактичній реалізації.
Жубарб

1
@ Беркан Я не думаю, що жодне згаданих вами питань (більше немає послідовностей подій, ніж послідовності подій і просто шум без жодної події) не повинно виключати підхід 2 HMM. Якщо ви взяли попереднєП(НММ1)до уваги (я оновлюю свою оригінальну відповідь з цього приводу), тоді вам може знадобитися налаштувати незбалансований розподіл класів (більше немає подій, ніж подій), але існує маса способів вирішити це. Дивіться цю відповідь, яку я дав, наприклад.
альт

@ Беркан Що стосується розміру вікна, то, виходячи з власного особистого досвіду, я очікую, що те, що я сказав у цій справі, буде дотримано будь-якого фіксованого розміру вікна. Очевидно, що все, що я сказав, потрібно перевірити емпірично для вашої конкретної проблеми.
alto

дякую за оновлення вашої відповіді, зараз це набагато зрозуміліше. Оскільки я буду працювати з логарифмами, я буду робити порівняння:лог(П(НММ1))+лог(П(О|НММ1))>?лог(П(НММ2))+лог(П(О|НММ2)). Тепер,лог(П(НММ1)) розраховується за допомогою алгоритму вперед, як я можу зробити розрахунок лог(П(НММ1))? Це ти лише до того, що я призначу?
Жубарб

дякую за оновлення вашої відповіді, зараз це набагато зрозуміліше. Оскільки я буду працювати з логарифмами, я буду робити порівняння:лог(П(НММ1))+лог(П(О|НММ1))>?лог(П(НММ2))+лог(П(О|НММ2)). Тепер,лог(П(НММ1))обчислюється за допомогою алгоритму вперед. Чи можу я обчислити журнал (P (HMM1)) за допомогою простого MLE на основі частот? тобто для даного випадку,НММ1=(52,000)/108,000де чисельник - це кількість точок, які підпадають під HMM1, а знаменники - це розмір набору даних.
Жубарб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.