#r
#r
Вопрос:
Я пытаюсь выполнить перекрестную проверку (исключить один и k раз), используя логистическую регрессию в R, двоичный результат.
У меня проблема с функцией затрат. Я не понимаю функцию затрат в справке R и нашел более интуитивную здесь, в Stack Overflow, но я не знаю, как ее вызвать, более конкретно, как передать аргументы.
library(ISLR)
D = Default
mycost <- function(r, pi)
{
weight1 = 1 #cost for getting 1 wrong
weight0 = 1 #cost for getting 0 wrong
c1 = (r==1)amp;(pi<0.5) #logical vector - true if actual 1 but predict 0
c0 = (r==0)amp;(pi>=0.5) #logical vector - true if actual 0 but predict 1
return(mean(weight1*c1 weight0*c0))
}
glm.fit1 = glm(default~balance student, data = D, family = binomial)
Проблема в том, что если R запускает несколько логистических регрессий в фоновом режиме (например, 3 для K = 3), как я могу передать векторы заданных вероятностей (pi) и вектор фактических значений ?
Я в замешательстве…
Есть ли способ использовать цикл for и сделать это вручную вместо использования cv.glm?
Комментарии:
1. Вы просматривали
cv.glm
из загрузочного пакета? У него естьcost
параметр, который является функцией двух аргументов (наблюдаемый и установленный). Также смотрите файл справки в нем.2. Вы можете использовать
mlr
фреймворк. Вы можете определить свою функцию затрат: пользовательская мера , и у вас есть повторная выборка из коробки.3. Да, я просмотрел справку и нашел код, который выполняет то, что я хочу для функции затрат, но как мне передать аргументы? R будет случайным образом генерировать разбиения, я не знаю, какие наблюдения будут в каждом и какая модель будет запущена, я не могу предоставить никаких наблюдений и прогнозов.