Ясно, как работает метод Hand and Till (из вероятностей классов) в многомерном случае, и я проверил это по некоторому коду, который я написал.Т.е. я использовал задачу 3 класса и получаю тот же результат, что и pROC.Когда я преобразовываю задачу 3 класса в задачу 2 класса (объединяя 2 класса), я получаю те же результаты, что и pROC (все еще использующий multiclass.roc).Однако, когда я передаю multiclass.roc ответ с 3 классами, 3 уровнями, но только одним вектором вероятностей классов, я получаю другой результат.
Я знаю, что это обрабатывается по-другому;https://rdrr.io/cran/pROC/man/multiclass.html говорит: «Функция multiclass.roc может обрабатывать два типа наборов данных: одно- и многовариантные. В одномерном случае передается один вектор-предиктор и оцениваются все комбинации ответов».Однако я не смог найти объяснения тому, что здесь происходит.Очевидно, что это связано с количеством классов в ответе (поскольку это единственные другие данные), но мне было бы очень интересно узнать, что делает pROC в таком случае.
Вот мои результаты(Я написал AUC_mc):
pROC: одномерный класс 3: 0,8494, класс 3 против остальных (2 класс): 0,9118
AUC_mc: класс 3 против остальных (2 класс): 0,9118
pROC: одномерный класс 1: 0,9721, класс 1 против остальных (2 класс): 0,9693
AUC_mc: класс 1 против остальных (2 класс): 0,9692823
#
# Here the probabilities for only 1 class are passed to pROC.
# When there are 2 classes in the domain that's fine
# When there are 3 classes in the domain then I get a different result
#
roc = multiclass.roc(test.df$response, probabilities[,n], levels=levels(test.df$response))
PROC: 3класс: 0,9568
AUC_mc: 3 класс: 0,9567698
roc = multiclass.roc(test.df$response, probabilities[,], levels=levels(test.df$response))
Большое спасибо