如何调整典型sk-learn数据挖掘方法的阈值,以平衡精度和召回率



基本上,我正在使用python sk-learn库中的一些数据挖掘算法来进行分类。

然而,我得到了一些非常不平衡的结果,比如说,大约0.99召回率和不到0.1准确率。

概念上讲,分类算法依赖于一些"阈值"来做出决定,这意味着我应该能够通过调整这个"阈值"来平衡精度和召回率。

但是,我无法sklearn中找到一些 API 来帮助解决这个问题,所以我的问题是:如何操纵库sklearn底层"阈值"来平衡精度和召回率?

好的,如果你的问题不是关于不平衡的数据,我必须向你推荐我在Andrew Ng的机器学习课程中学到的一些笔记:http://www.holehouse.org/mlclass/06_Logistic_Regression.html

我在这里选择了逻辑回归,因为我真的不知道你正在使用的方法。但结论基本上是,阈值不是学习器模型的显式参数。我的意思是,你可以选择之后要在哪里切割分类(在概率模型中(,或者你可以在其他一些方法中建立一些加权参数(检查这个答案:scikit .predict((默认阈值(。

此阈值仅考虑误报/漏报(精度/召回率(的比例,不应严格视为学习算法的参数。

旁注:在一个特定的分类问题中,我"凭经验"发现我至少需要 0.6 的概率是正确的,所以我使用了分类器的方法predict_proba而不是predict所以我最终决定了返回的类。 不知道这是否有帮助。

相关内容

  • 没有找到相关文章

最新更新