#r #cross-validation #k-fold
Вопрос:
В настоящее время я работаю над своей заключительной работой по курсу анализа данных.
Речь идет о том, чтобы взять большой набор данных и выполнить несколько методов, которым обучали, чтобы создать модели, которые наилучшим образом соответствуют выбранным переменным.
Я пытаюсь построить регрессионную модель для своих данных, в которой у меня 9870 строк и 40 столбцов в наборе данных. Это первый раз, когда я пробую CV на регрессии, и у меня возникли проблемы с частотой ошибок в сложности моей модели.
Я придумал модель линии регрессии, и у меня были значения R в квадрате ~0,94, поэтому я думал, что вполне уверен в модели, которая у меня была. Вот модель:
bluegoldmodel = lm(blueTotalGold~blueTotalMinionsKilled blueTotalJungleMinionsKilled
blueTowersDestroyed poly(blueKills, k, raw=TRUE) blueDeaths blueAssists)
а вот скорректированный R-sq и значение R-sq для 5 степеней полинома:
> adjrsqds
[1] 0.9398365 0.9406523 0.9406540 0.9406494 0.9406435
> rsqVals
[1] 0.9398730 0.9406943 0.9407021 0.9407035 0.9407036
но когда я пытаюсь построить ошибку для этой регрессионной модели, частота ошибок просто слишком велика.
> set.seed(17)
> k.fold.errors.10 = rep(0,10)
> for(i in 1:5){
bluegoldmodel = glm(blueTotalGold~blueTotalMinionsKilled blueTotalJungleMinionsKilled
blueTowersDestroyed poly(blueKills, i, raw=TRUE) blueDeaths blueAssists)
k.fold.errors.10[i] = cv.glm(LDRG, bluegoldmodel, k=10)$delta[1]
}
Результаты:
> k.fold.errors.10
[1] 141987.9 140079.3 140066.1 140118.3 140108.4 0.0 0.0 0.0 0.0 0.0
Кто-нибудь знает, как обойти эту проблему? Я приношу извинения, если кодирование неорганизованно.
Я провел некоторое исследование и обнаружил, что мне нужно реализовать(?) подмножества, но я не совсем уверен, как это закодировать в R.
Если бы кто-нибудь мог мне помочь, это было бы здорово!