ValueError: формат multilass-multioutput не поддерживается с помощью функции sklearn roc_auc_score - PullRequest
0 голосов
/ 28 мая 2018

Я использую logistic regression для прогноза.Мои прогнозы 0's и 1'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

1 Ответ

0 голосов
/ 28 мая 2018

Прежде всего, функция 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...