Не уверен, что происходит, но:
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
Кто-нибудь знает, что я делаю неправильно (просто хочу понять, что я что-то упустил).