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

Scikit learn 如何预测异常值比例的最佳值?,scikit-learn,data-science,anomaly-detection,Scikit Learn,Data Science,Anomaly Detection,我使用“局部异常因子”进行异常检测。该算法有一个名为“污染”的参数。此参数表示异常值的比例。在我的例子中,“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_pre

我使用“局部异常因子”进行异常检测。该算法有一个名为“污染”的参数。此参数表示异常值的比例。在我的例子中,“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)
我在尝试了许多不同的值后发现了这个值。但是,我需要找到污染参数的最佳值,而无需尝试不同的值

以下是数据的形状:

我有两个问题,

在执行异常检测算法之前,是否可以预测污染参数的最佳值

在实际应用中,异常检测模型是否能够完美地检测所有异常


提前谢谢

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

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

您有一个紧凑、干净、统一的数据集吗?那么LOF值1.05可能是一个异常值

你是否有一个稀疏的数据集,密度不同,并且有许多特定于该局部集群的局部波动?那么LOF值2仍然可能是一个更重要的参数