Оценка модели каретки с альтернативной метрикой производительности

Я использую пакет каретки R, чтобы выполнить поиск по сетке и оценить модель. У меня есть пользовательский показатель оценки, который является средневзвешенной величиной абсолютной ошибки. Веса назначаются на уровне наблюдения.

X <- c(1,1,2,0,1) #feature 1
w <- c(1,2,2,1,1) #weights
Y <- 1:5 #target, continuous

#assume I run a model using X as features and Y as target and get a vector of predictions

mymetric <- function(predictions, target, weights){

v <- sum(abs(target-predictions)*weights)/sum(weights) 
return(v)
}

Здесь приведен пример того, как использовать summaryFunction для определения пользовательского показателя оценки для traint's train(). Цитировать:

У функции trainControl есть аргумент summaryFunction, который определяет функцию для вычисления производительности. Функция должна иметь следующие аргументы:

данные - это ссылка на фрейм или матрицу данных со столбцами, называемыми obs и pred для наблюдаемых и прогнозируемых значений результатов (либо числовые данные для регрессии, либо символьные значения для классификации). В настоящее время вероятности класса не передаются в функцию. Значения в данных представляют собой удержанные прогнозы (и связанные с ними эталонные значения) для одной комбинации параметров настройки. Если для аргумента classProbs объекта trainControl установлено значение TRUE, в данных будут присутствовать дополнительные столбцы, содержащие вероятности класса. Имена этих столбцов совпадают с уровнями классов. lev - строка символов, которая имеет уровни фактора результата, взятые из данных обучения. Для регрессии значение NULL передается в функцию. модель - это символьная строка для используемой модели (т. е. значение, переданное аргументу метода train).

Я не могу понять, как передать веса наблюдений в summaryFunction.

1 ответ

Решение

Вы не можете передать весовые коэффициенты непосредственно в функцию суммирования, которая является упущением, поскольку вы можете передавать их в функцию моделирования. Если базовая модель учитывает веса, они используются для получения прогнозных значений.

Я добавлю это к следующему выпуску.

Максимум

Другие вопросы по тегам