Python 局部离群因子的n_邻域参数对ROC-AUC的影响
我试图用几种算法来解决离群点检测问题。当我使用Scikit learn的本地离群因子API时,我必须输入一个非常重要的参数--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) 如何在无监督的学习环境中选择合适的
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) 我是否应该选择highn_Neights
来获得较高的ROC_AUC
?如果结果不受影响,则不需要参数,对吗
考虑更多的邻居成本更高。但这也意味着使用了更多的数据,所以我对结果的改善并不感到惊讶。你读过解释参数作用的论文了吗
当您根据评估选择参数时,您就是在作弊。这是一种无监督的方法-在实际用例中不应该有这样的标签。实际上,当我更改n_近邻
,精度
,召回
和F1
时不会更改。没有任何改善。然而,ROC_AUC
确实发生了变化。哪一个是重要的@Anony Mousse<代码>精度
,调用
和F1
或ROC\u AUC
如何定义输出实数的方法的精度?可能有一些门槛。这就是ROC的优点——它不取决于您的阈值。