У меня есть сценарий, в котором у меня есть несколько тысяч экземпляров данных. Сами данные представлены в виде единого целочисленного значения. Я хочу быть в состоянии определить, когда экземпляр является экстремальным выбросом.
Например, со следующими данными примера:
a = 10
b = 14
c = 25
d = 467
e = 12
d
- это явно аномалия, и я бы хотел выполнить на ее основе определенное действие.
У меня был соблазн просто попытаться использовать мои знания в определенной области для обнаружения аномалий. Например, определите расстояние от полезного среднего значения и проверьте его на основе эвристики. Тем не менее, я думаю, что, вероятно, было бы лучше, если бы я исследовал более общие и надежные методы обнаружения аномалий, в основе которых лежит некоторая теория.
Поскольку мои рабочие знания по математике ограничены, я надеюсь найти простую методику, такую как использование стандартного отклонения. Надеемся, что одномерный характер данных сделает это довольно распространенной проблемой, но если потребуется дополнительная информация для сценария, оставьте комментарий, и я дам больше информации.
Редактировать: думал, что я добавлю больше информации о данных и о том, что я пробовал, на случай, если один ответ будет более правильным, чем другой.
Все значения являются положительными и ненулевыми. Я ожидаю, что значения будут формировать нормальное распределение. Это ожидание основано на интуиции области, а не на анализе, если это не так уж и плохо, пожалуйста, дайте мне знать. С точки зрения кластеризации, если нет также стандартных алгоритмов для выбора k-значения, мне было бы трудно предоставить это значение алгоритму k-Means.
Действие, которое я хочу предпринять для выброса / аномалии, состоит в том, чтобы представить его пользователю и рекомендовать, чтобы точка данных была в основном удалена из набора данных (я не буду вдаваться в то, как они это сделают, но это имеет смысл для моего домена), поэтому он не будет использоваться в качестве входных данных для другой функции.
До сих пор я пробовал три сигмы и тест выброса IQR на моем ограниченном наборе данных. IQR помечает значения, которые не являются достаточно экстремальными, три сигма указывает на случаи, которые лучше соответствуют моей интуиции области.
Информация об алгоритмах, методиках или ссылки на ресурсы, чтобы узнать об этом конкретном сценарии, являются действительными и приветствуются ответы.
Каков рекомендуемый метод обнаружения аномалий для простых одномерных данных?