Онлайн обучение с наивным байесовским классификатором - PullRequest
0 голосов
/ 11 ноября 2011

Я пытаюсь предсказать время прибытия входящих сетевых пакетов.Я измеряю время прибытия сетевых пакетов и представляю эти данные в виде двоичных элементов: xi = 0,1,1,1,0, ... где xi = 0, если время прибытия меньше времени безубыточности и 1 в противном случае.Данные должны быть отображены в два возможных класса C = {0,1} , где C = 0 представляет short время между поступлениями, а 1 представляет длинный время прибытия.Поскольку я хочу реализовать классификатор в онлайн-функции, где, как только я наблюдаю вектор признаков xi = 0,1,1,0 ..., я вычисляю класс MAP.Поскольку у меня нет предварительной оценки условных и предыдущих вероятностей, я инициализирую их следующим образом:

p(x=0|c=0)=p(x=1|c=0)=p(x=0|c=1)=p(x=1|c=1)=0.5
p(c=0)=p(c=1)=0.5

Для каждого вектора признаков (x1 = m1, x2 = m2, ..., xn = mn) , когда я вывожу класс C , я обновляю условные и предыдущие вероятности следующим образом:

p(xi=mi|y=c)=a+(1-a)*p(p(xi=mi|c)
p(y=c)=b+(1-b)*p(y=c)

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

1 Ответ

1 голос
/ 23 ноября 2011

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

Обратите внимание, что при использовании этого метода другие алгоритмы регрессии могут оказаться лучшим выбором, чем NB.

Weka (версия 3.7.3 и выше) имеет очень хороший специальный инструмент , поддерживающий анализ временных рядов. в качестве альтернативы MOA также основан на Weka и поддерживает моделирование потоковых данных.

РЕДАКТИРОВАТЬ: также может быть хорошей идеей перейти от бинарных объектов к реальным значениям (возможно, нормализованным) и применить пороговое значение после классификации. Это может дать больше информации регрессионной модели (NB или другой), что позволит повысить точность.

...