scikit-learn中用于多类问题的ROC下的区域

问题描述 投票:0回答:1

我正在研究情感分析程序。但是我设法在“ positive”和“ negative”旁边的类别中包括“ neutral”。它使类别成为多类。

所以我可以使roc_auc_score在多类中工作吗?还是除了使用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个回答
0
投票

是,当然可以。

请参见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

© www.soinside.com 2019 - 2024. All rights reserved.