Python 局部离群因子的n_邻域参数对ROC-AUC的影响

Python 局部离群因子的n_邻域参数对ROC-AUC的影响,python,machine-learning,scikit-learn,data-mining,anomaly-detection,Python,Machine Learning,Scikit Learn,Data Mining,Anomaly Detection,我试图用几种算法来解决离群点检测问题。当我使用Scikit learn的本地离群因子API时,我必须输入一个非常重要的参数--n_neights。然而,对于不同的n_邻居,我会得到不同的ROC_AUC分数。例如,使用n_邻居=5然后ROC_AUC=56。然而,如果n_邻居=6那么ROC_AUC=85;如果n_邻居=7然后ROC_AUC=94等。正式地说,如果n_邻居>=6 我想问三个问题: (1) 为什么局部异常因子的n_近邻参数会影响ROC-AUC? (2) 如何在无监督的学习环境中选择合适的

我试图用几种算法来解决离群点检测问题。当我使用Scikit learn的本地离群因子API时,我必须输入一个非常重要的参数--
n_neights
。然而,对于不同的
n_邻居
,我会得到不同的
ROC_AUC
分数。例如,使用
n_邻居=5
然后
ROC_AUC=56
。然而,如果
n_邻居=6
那么
ROC_AUC=85
;如果
n_邻居=7
然后
ROC_AUC=94
等。正式地说,如果
n_邻居>=6

我想问三个问题: (1) 为什么局部异常因子的
n_近邻
参数会影响ROC-AUC?
(2) 如何在无监督的学习环境中选择合适的
n_邻居

(3) 我是否应该选择high
n_Neights
来获得较高的
ROC_AUC

如果结果不受影响,则不需要参数,对吗

考虑更多的邻居成本更高。但这也意味着使用了更多的数据,所以我对结果的改善并不感到惊讶。你读过解释参数作用的论文了吗


当您根据评估选择参数时,您就是在作弊。这是一种无监督的方法-在实际用例中不应该有这样的标签。

实际上,当我更改
n_近邻
精度
召回
F1
时不会更改。没有任何改善。然而,
ROC_AUC
确实发生了变化。哪一个是重要的@Anony Mousse<代码>精度
调用
F1
ROC\u AUC
如何定义输出实数的方法的精度?可能有一些门槛。这就是ROC的优点——它不取决于您的阈值。