基本上,我正在使用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
所以我最终决定了返回的类。 不知道这是否有帮助。