scikit-learn中是否存在处理不平衡类的标准方法?
sk-learn的一个乐趣是有一个一致的界面......
但是,当类不平衡时[这似乎是一个非常常见的用例]情况并非如此:IMO不希望分类,而是0到1之间的连续变量,这样你就可以计算auc_score(或类似的东西) )
所以我可以在logistic和其他一些分类器上做auc_score(y,cf.predict_probas(X)),但是我没有看到为什么我不能为任何decision_function基本相同做任何理由[例如RidgeClassifier ..等等,即改变我的门槛并监控误报,命中率?
人们如何做到这一点?这就是我正在做的事情(正如ogrisel所建议的那样)
if hasattr(clf,'predict_proba'):
proba=clf.predict_proba(X_test)[:,1]
score=metrics.auc_score(y_test,proba)
elif hasattr(clf,'decision_function'):
z=clf.decision_function(X_test)
fpr, tpr, thresholds = metrics.roc_curve(y_test, z)
score=metrics.auc(fpr, tpr)
答案 0 :(得分:1)
使用decision_function
应该有效,否则这是一个错误。