如何预测异常值比例的最佳值?

时间:2018-05-07 06:58:31

标签: scikit-learn data-science anomaly-detection

我正在使用" 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 :(得分:0)

局部异常值是一种常用的异常检测工具。它需要采用局部方法来更好地检测与其邻居有关的离群值,而全局策略可能并不是密度波动的数据集的最佳检测方法。

这完全取决于您的数据集:

您是否有一个紧密,干净且统一的数据集?那么LOF值1.05可能是一个离群值。

您是否有一个稀疏的数据集,密度不同,并且具有针对该局部簇的许多局部波动?那么LOF值2仍可能是一个整数。