#алгоритм #машинное_обучение
В логе присутствуют события трёх типов: А и Б и Й. Записи просто две колонки: timestamp
и тип ("А", "Б" или "Й").
Есть гипотеза, что определённая разнесённость во времени событий А и Б вызывает событие Й.
Как найти на основе данных наиболее вероятный паттерн событий А и Б, вызывающий Й?
Например, выяснится, что чаще всего событию Й среди прочего "шума" предшествовали
события в такой маске:
-50 секунд: А
-35 секунд: Б
-05 секунд: снова А
00 секунд: происходит событие Й
В обозреваемом окне времени 0..–50 с. встретятся и другие события А/Б, но они от
раза к разу не попадают в устойчивый паттерн, и поэтому считаются шумом и исключаются
из рассмотрения. Отношение сигнал/шум может быть очень в пользу шума. Величина рассматриваемого
"окна" неизвестна. Лишь примерно можно с потолка взять, что оно "от 1 до 1000 секунд".
Временное попадание тоже не из мира целых чисел, а «приблизительно» с некой точностью.
Т.е. паттерн можно считать одинаковым, если в первый раз первое событие А было в -50.01
секунду, а во втором случае в -49.52 Относительно размера окна в 50 сек, +–1 секунда
точности – допустимое приближение.
Смутно догадываюсь, что нужно как-то применить преобразование Фурье и свёрточную
NN.. Но я в этом полный нуб, нид хэлп.
Ответы
Ответ 1
Похоже, нашёл: Kernel Density Estimation (KDE) – оценка плотности ядра (ядерное сглаживание). Подробнее. Для моей задачи нужно выровнять отрезки данных по событию Й и взять наибольшие пики в KDE событий А и Б. Подбора ширины окна и ядра – отдельный вопрос.
Комментариев нет:
Отправить комментарий