Итак, я работаю над моделью, которая пытается использовать RandomForest для классификации выборок в 1 из 7 классов. Я могу построить и обучить модель, но когда дело доходит до оценки ее с помощью функции roc_au c, я могу выполнить 'ovr' (oneVsrest), но 'ovo' доставляет мне некоторые проблемы.
roc_auc_score(y_test, rf_probs, multi_class = 'ovr', average = 'weighted')
Вышеперечисленное прекрасно работает, я получаю вывод, однако, когда я переключаю multi_class на 'ovo', который, как я понимаю, может быть лучше с дисбалансами классов, я получаю следующую ошибку :
roc_auc_score(y_test, rf_probs, multi_class = 'ovo')
IndexError: слишком много индексов для массива
(я вставил всю трассировку ниже!)
В настоящее время мои данные настроены следующим образом:
y_test (61,1)
y_probs (61, 7)
Нужно ли менять форму данных особым образом использовать 'ovo'?
В документации https://thomasjpfan.github.io/scikit-learn-website/modules/generated/sklearn.metrics.roc_auc_score.html написано " binary y_true, предполагается, что y_score - оценка класса с большей меткой. мультиклассовый случай предполагает shape = [n_samples, n_classes], где баллы соответствуют оценкам вероятности."
Кроме того, вся трассировка, похоже, намекает на использование, возможно, более двоичного массива (надеюсь, это правильный термин Я новичок в этом!)
Очень, очень благодарен за любые идеи / мысли!