值错误:使用sklearn roc_auc_score函数不支持多类多输出格式

2024-04-28 09:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用logistic regression进行预测。我的预测是0's1's。在对给定数据和重要特性(即X_important_train)进行训练后,请参见屏幕截图。我得到了大约70%的分数,但是当我使用roc_auc_score(X,y)roc_auc_score(X_important_train, y_train)时,我得到了值错误: ValueError: multiclass-multioutput format is not supported

代码:

# Load libraries
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import roc_auc_score

# Standarize features
scaler = StandardScaler()
X_std = scaler.fit_transform(X)

# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)

model.fit(X_important_train, y_train)
model.score(X_important_train, y_train)

roc_auc_score(X_important_train, y_train)

截图:

enter image description here


Tags: thefromimportmodeltrainsklearnfitscore
1条回答
网友
1楼 · 发布于 2024-04-28 09:47:41

首先,roc_auc_score函数需要具有相同形状的输入参数。

sklearn.metrics.roc_auc_score(y_true, y_score, average=’macro’, sample_weight=None)

Note: this implementation is restricted to the binary classification task or multilabel classification task in label indicator format.

y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels in binary label indicators.

y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of decisions (as returned by “decision_function” on some classifiers).

现在,输入的是真实和预测的分数,而不是您在发布的示例中使用的培训和标签数据。详细信息,

model.fit(X_important_train, y_train)
model.score(X_important_train, y_train)
# this is wrong here
roc_auc_score(X_important_train, y_train)

你应该这样做:

y_pred = model.predict(X_test_data)
roc_auc_score(y_true, y_pred)

相关问题 更多 >