разный выход для PR AUC для разных пакетов R - PullRequest
3 голосов
/ 28 июня 2019

Я нахожу разные числовые значения для вычисления площади под кривой точного восстановления (PRAUC) с набором данных, над которым я работаю, при вычислении с помощью 2 различных пакетов R: yardstick и caret.
Боюсь, я не смог воспроизвести это несоответствие с синтетическими данными, но только с моим набором данных (это тоже странно)

Чтобы сделать это воспроизводимым, я делюсь выводом прогноза моей модели, вы можете скачать его здесь https://drive.google.com/open?id=1LuCcEw-RNRcdz6cg0X5bIEblatxH4Rdz (не волнуйтесь, это маленький CSV).
CSV содержит фрейм данных с 4 столбцами:
yes оценка вероятности нахождения в классе yes
no = 1 - yes
obs метка фактического класса
pred метка прогнозируемого класса (с порогом .5)

здесь следует код для получения 2 значений PRAUC

require(data.table)
require(yardstick)
require(caret)
pr <- fread('pred_sample.csv')
# transform to factors
# put the positive class in the first level
pr[, obs := factor(obs, levels = c('yes', 'no'))] 
pr[, pred := factor(pred, levels = c('yes', 'no'))] # this is actually not needed

# compute yardstick PRAUC
pr_auc(pr, obs, yes) # 0.315

# compute caret PRAUC
prSummary(pr, lev = c('yes', 'no')) # 0.2373

Я мог бы понять небольшую разницу из-за аппроксимации при вычислении площади (интерполяции кривой), но это кажется слишком большим.

Я даже попробовал третий пакет, PRROC, и результат все еще другой, а именно около .26.

...