Scikit-learn: roc_auc_score возвращает разные значения в зависимости от того, является ли основополагающая правда одной горячей кодировкой - PullRequest
1 голос
/ 03 марта 2020

Не уверен, что происходит, но:

import numpy as np
from sklearn.preprocessing import OneHotEncoder
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
y_true = np.random.randint(np.ones((100,1))*5)
y_scores = RandomForestClassifier().fit(np.random.rand(100,5),y_true.ravel()).predict_proba(np.random.rand(100,5))
oh=OneHotEncoder()
print(roc_auc_score(oh.fit_transform(y_true.reshape(-1, 1)).toarray(), y_scores,multi_class='ovo'))
print(roc_auc_score(y_true.ravel(), y_scores,multi_class='ovo'))

продолжает давать мне разные выходы (очевидно, я ожидаю, что он будет давать разные значения каждый раз, когда я его запускаю, но я ожидаю один горячий кодированный и не один горячий закодированные значения истинности возвращают одно и то же. Пример вывода:

0.5141240772057938
0.5242429384699121

Кто-нибудь знает, что я делаю неправильно (просто хочу понять, что я что-то упустил).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...