Обнаружение аномалий с использованием цепей Маркова - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь обнаружить аномалии с помощью цепей Маркова. У меня есть тренировочный набор данных с последовательностью событий, которые я использовал для создания матрицы перехода вероятности. Затем я создаю другую матрицу, используя набор тестовых данных. Я ищу способ сравнить их с матрицами, чтобы определить аномалии. Пример: допустим, что событие A к событию C происходит 0 раз в обучающих данных, и поэтому его вероятность в матрице равна 0. Если этот переход от события A к событию C действительно происходит в тестовом наборе данных, он будет иметь вероятность больше 0. Это то, что я хотел бы обнаружить.

Я попытался просто вычесть 2 матрицы и затем сообщить обо всем, что больше 0, но это не так уж велико: вероятность 0 в обучении и 0,1 в тесте является более значимым (и аномальным), чем вероятность 0,7 на тренировке и 0,6 на тесте. Просто вычесть их не показывает это таким образом. Более того, таким образом он видит разницу 0,5 против 0,7 более аномальной, чем 0,0 против 0,1.

Кроме того, вероятность 0,3 на тренировке и 0,6 на тесте более важна (потому что удвоилась), чем 0,7 на тренировке и 1 на тесте (потому что, возможно, другие события просто не произошли в тестовом наборе, который является отлично). Кстати, я использую pandas кросс-таблицу и ряд для расчета матрицы перехода.

...