Обновить параметры байесовской сети новыми данными

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

Есть ли способ постепенно обновлять CPT существующей сети каждый раз, когда поступают новые данные? Я думаю, что должно быть, и я чувствую, что я что-то упускаю :)


person Freek8    schedule 12.12.2014    source источник
comment
Можете ли вы предоставить примеры кодов, которые производят CPT из данных? Я хочу создать BN из данных, а затем получить CPT из данных. Затем используйте эту сеть для запроса новых поступающих данных. Это возможно?   -  person Mohammad    schedule 19.11.2015


Ответы (1)


Проще всего вести совместную таблицу вероятностей и перестраивать из нее CPT по мере необходимости. Наряду с JPT подсчитайте, сколько примеров было использовано для его создания. При добавлении nго примера умножьте все вероятности на 1 - 1/n, а затем добавьте вероятность 1/n к связанной вероятности нового примера.

Если вы собираетесь делать это сразу, вам следует поддерживать количество примеров для каждой строки в JPT, а не вероятность. Это уменьшит числовой дрейф.

person Sneftel    schedule 12.12.2014