Как предсказать наилучшее значение для доли выбросов?
Я использую "Local Outlier Factor" для обнаружения аномалий. Алгоритм имеет параметр, называемый "загрязнение". Этот параметр представляет собой долю выбросов. В моем случае "0,0058" является лучшим значением для параметра загрязнения.
#parameters
n_neighbors = 750
p = 7
contamination = 0.0058 # the proportion of outliers
lof = LocalOutlierFactor(n_neighbors=n_neighbors, p=p, contamination=contamination)
y_pred_train = lof.fit_predict(data_scaled)
Я нашел это значение после попытки много разных значений. Тем не менее, мне нужно найти лучшее значение для параметра загрязнения, не пробуя другие значения.
Вот форма данных:
У меня два вопроса;
Можно ли предсказать наилучшее значение параметра загрязнения перед выполнением алгоритма обнаружения аномалий?
В реальных приложениях, возможно ли, чтобы модель обнаружения аномалий точно обнаружила все аномалии?
Заранее спасибо.
0 ответов
Значение локального коэффициента выброса является часто используемым инструментом обнаружения аномалий. Требуется локальный подход для лучшего обнаружения выбросов в отношении их соседей, в то время как глобальная стратегия, возможно, не является лучшим обнаружением для наборов данных, которые колеблются по плотности.
Это полностью зависит от вашего набора данных:
У вас есть плотный, чистый и равномерный набор данных? Тогда значение LOF 1,05 может быть выбросом.
Есть ли у вас разреженный набор данных различной плотности со многими локальными колебаниями, характерными для этого локального кластера? Тогда значение LOF, равное 2, все еще может быть внутренним.