Исходя из постановки вопроса, я предполагаю, что нет никаких «примеров» аномалий (т. Е. Ярлыков). С этим допущением целесообразным будет использование автоэнкодеров : нейронных сетей, которые получают в качестве входных данных ваши данные и обучаются выводить те же самые данные. Идея состоит в том, что обучение позволило сети изучить представления распределений входных данных в форме скрытых переменных.
Существует тип автоэнкодера, называемый автошифровщиком с шумоподавлением , который обучается с искаженными версиями исходных данных в качестве входных данных и с искаженными исходными данными в качестве выходных. Это обеспечивает сеть, которая может удалить шум (то есть искажения данных) от входов.
Вы можете обучить шумоподавляющему автоэнкодеру с ежедневными данными. Тогда используйте это на новых ежедневных данных; Таким образом, у вас есть оригинальные ежедневные данные и нетленная версия тех же самых данных. Затем вы можете сравнить оба, чтобы обнаружить значительные различия.
Ключевым моментом здесь является то, какое определение существенной разницы вы выбираете Вы можете вычислить евклидово расстояние и предположить, что если оно превышает определенный произвольный порог, у вас есть аномалия. Другим важным фактором является вид коррупции, которую вы вводите; они должны быть как можно ближе к разумным отклонениям.
Другим вариантом было бы использовать Генеративные Состязательные Сети . Побочным продуктом обучения является сеть дискриминатора, которая отличает обычные ежедневные данные от ненормальных данных.