Как предсказать наилучшее значение для доли выбросов? - PullRequest
0 голосов
/ 07 мая 2018

Я использую «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)

Я нашел это значение после того, как попробовал много разных значений. Однако мне нужно найти наилучшее значение для параметра загрязнения, не пробуя другие значения.

Вот форма данных:

enter image description here

У меня два вопроса;

Можно ли предсказать наилучшее значение параметра загрязнения перед выполнением алгоритма обнаружения аномалии?

В реальных приложениях, возможно ли, чтобы модель обнаружения аномалий точно обнаружила все аномалии?

Заранее спасибо.

1 Ответ

0 голосов
/ 01 марта 2019

Значение локального коэффициента выброса является широко используемым инструментом обнаружения аномалий. Требуется локальный подход для лучшего обнаружения выбросов в отношении их соседей, в то время как глобальная стратегия, возможно, не является лучшим обнаружением для наборов данных, которые колеблются по плотности.

Это полностью зависит от вашего набора данных:

У вас есть плотный, чистый и однородный набор данных? Тогда значение LOF 1,05 может быть выбросом.

У вас есть разреженный набор данных, различающийся по плотности, со многими локальными флуктуациями, характерными для этого локального кластера? Тогда значение LOF, равное 2, все еще может быть внутренним.

...