【问题标题】:Area under ROC for the multiclass problem in scikit-learnscikit-learn 中多类问题的 ROC 下区域
【发布时间】:2020-08-14 11:52:02
【问题描述】:

我从事情绪分析程序。但我设法在“正面”和“负面”旁边的类别中包含“neutral”。它使类别成为多类。

那么我可以让roc_auc_score 在 multiclass 中工作吗?或者除了使用roc_auc_score之外还有其他方法可以测量性能?

我的roc_auc_score 实现:

print(roc_auc_score(y_test, clf.predict_proba(X_test)[:,1]))

【问题讨论】:

    标签: python scikit-learn roc multiclass-classification auc


    【解决方案1】:

    是的,当然可以。

    here:

    注意:此实现可用于二元、多类和多标签分类,但存在一些限制(请参阅参数)。

    here:

    sklearn.metrics.roc_auc_score函数可用于多类分类。

    我们以鸢尾花数据集为例:

    from sklearn.datasets import load_iris
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import roc_auc_score
    
    iris = load_iris()
    X_train, X_test, y_train, y_test = train_test_split(iris.data,
                                                        iris.target,
                                                        stratify = iris.target,
                                                        random_state = 42)
    
    
    model = DecisionTreeClassifier()
    model.fit(X_train, y_train)
    print('roc auc score: {:.4f}'.format(roc_auc_score(y_test, model.predict_proba(X_test), multi_class='ovo')))  
    

    你会得到:

    roc auc 得分:0.9808

    【讨论】:

    • 它会产生这个错误:“roc_auc_score() got an unexpected keyword argument 'multi_class'” 我的 roc_auc_score 上没有“multi_class”参数。为什么会这样??
    • 你有什么版本?
    猜你喜欢
    • 2014-02-04
    • 2013-10-08
    • 2019-01-02
    • 2016-02-06
    • 2015-06-23
    • 2018-01-20
    • 2018-07-30
    • 2019-06-08
    • 2017-04-26
    相关资源
    最近更新 更多