python - Local Outlier Factor 的 n_neighbor 参数对 ROC-AUC 的影响
问题描述
我正在尝试用几种算法解决异常值检测问题。当我使用 Scikit-learn 的 Local Outlier Factor API 时,我必须输入一个非常重要的参数—— n_neighbors
。但是,使用不同n_neighbors
的 ,我会收到不同的ROC_AUC
分数。例如,使用n_neighbors=5
then ROC_AUC=56
。但是,与n_neighbors=6
then ROC_AUC=85
; 与n_neighbors=7
thenROC_AUC=94
等。形式上,ROC_AUC
非常高 ifn_neighbors>=6
我想问三个问题:(1)为什么n_neighbors
Local Outlier Factor这个参数会影响ROC-AUC?(2)如何n_neighbors
在无监督学习环境中选择合适的?(3) 我应该选择高n_neighbors
来获得高ROC_AUC
吗?
解决方案
如果结果不受影响,参数就不需要了,对吧?
考虑更多的邻居成本更高。但这也意味着使用了更多的数据,所以我对结果的改善并不感到惊讶。您是否阅读了解释参数作用的论文?
当您根据评估选择参数时,您就是在作弊。这是一种无监督的方法——在实际用例中不应该有这样的标签。
推荐阅读
- nearprotocol - 在 NEAR 智能合约协议中跟踪承诺链
- linux - 找不到安卓模拟器/dev/kvm?
- android - 在哪里存储视频流 android 应用程序的视频?
- java - InvocationTargetException 与目标:javax.xml.ws.WebServiceException:java.util.NoSuchElementException
- javascript - 反应原生映射元素组
- javascript - 在特定路径javascript中保存捕获的屏幕截图
- flutter - 在 SearchDelegate 中颤动 FutureBuilder
- javascript - 物化 css 轮播在 Angular 中不起作用
- ansible - Ansible:仅打印用户定义的变量
- windows - W10 CMD 文件