Как классифицировать неизвестные записи с помощью наивного байесовского алгоритма

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

1,v1,p1,182,1665,unkn
2,v2,p1,3072,8780,ok
3,v3,p1,20393,76990,ok
4,v4,p1,112,1100,fraud
5,v3,p1,6164,20260,unkn
6,v5,p2,104,1155,ok
7,v6,p2,350,5680,unkn
8,v7,p2,200,4010,ok
9,v8,p2,233,2855,unkn
10,v9,p2,118,1175,unkn

Байесские правила: —

Задняя вероятность того, что unkn будет в порядке = априорная вероятность ok * Вероятность того, что unkn будет в порядке.

Posterior Вероятность мошенничества с неизвестным мошенничеством = априорная вероятность мошенничества * Вероятность мошенничества с неизвестным мошенничеством.

2

Решение

Я предполагаю скандал 1,v1,p1,182,1665,unkn интерпретируется как:

  • 1, v1 = некоторые идентификаторы
  • p1,182,1665 = особенности вашей точки данных
  • unkn = метка, в этом случае неизвестно

Учитывая это обозначение, ваши тренировочные данные состоят из всех строк, которые имеют метку ok или же fraud, а ваши данные тестирования являются остальными. Вы должны рассчитать априоры и условные вероятности:

  1. Априорная вероятность ok это доля ok примеры в обучающих данных. То же самое относится и к fraud
  2. Для каждой функции f, такие как v1 или же p1, его вероятность, учитывая нормально, является пропорцией ok примеры в данных обучения, которые содержат функцию. Например, p1 содержится в 2 из 4 ok примеры, дающие вам вероятность 0,5.

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

Предостережения:

  • Умножение вероятностей вместе в конечном итоге приведет к недостаточному снижению. Возможно, вы захотите добавить журналы этих вероятностей вместо этого.
  • Описанный мной алгоритм работает только для дискретных функций. Непрерывные функции, которые вы, кажется, имеете выше (например, 182) должны быть преобразованы в дискретные (например, с помощью биннинга), или вам нужно найти какой-то другой способ оценки условной вероятности в шаге 2. Google для непрерывного наивного байесовского байесовского алгоритма
3

Другие решения

Других решений пока нет …