2

在 scikit-learn 中是否有处理不平衡类的标准方法?

sk-learn 的乐趣之一是有一个一致的界面......

但是,当类不平衡时(这似乎是一个非常常见的用例),情况并非如此:IMO 不想要分类,而是想要一个介于 0 和 1 之间的连续变量,这样您就可以计算 auc_score (或类似的东西)

所以我可以在逻辑和其他一些分类器上做 auc_score(y,cf.predict_probas(X)) 但我看不出有什么理由我不能对任何决策函数做基本相同的[例如 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)
4

1 回答 1

1

使用decision_function应该可以,否则这是一个错误。

于 2013-07-02T15:04:01.207 回答