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