Я провожу несколько экспериментов с логистической регрессией в R с набором данных Auto
, включенным в R.
У меня есть обучающая часть (80%) и тестовая часть (20%), нормализующая каждую часть по отдельности.
Я могу создать модель без проблем со строкой:
mlr<-glm(mpg ~
displacement + horsepower + weight, data =train)
Я даже могу предсказать train$mpg
с набором поездов:
trainpred<-predict(mlr,train,type="response")
И с этим вычислить ошибку выборки:
etab <- table(trainpred, train[,1])
insampleerror<-sum(diag(etab))/sum(etab)
Проблема возникает, когда я хочу предсказать с помощью набора тестов. Я использую следующую строку:
testpred<-predict(model_rl,test,type="response")
Что дает мне это предупреждение:
'newdata' было 79 строк, но найденные переменные имеют 313 строк
но это не работает, потому что testpred
имеют ту же длину, что и trainpred
(должно быть меньше). Когда я хочу рассчитать ошибку в тесте, используя testpred
со следующей строкой:
etabtest <- table(testpred, test[,1])
Я получаю следующую ошибку:
Ошибка в таблице (testpred, test[, 1]):
все аргументы должны иметь одинаковую длину
Что я делаю неправильно?
mlr<-glm(mpg ~ displacement + horsepower + weight, data =train)
. Вам не нуженtrain$
, если вы указали аргумент данных. Что еще более важно, вы можете проверить, создает ли это логистическую регрессию. Я думаю, что это на самом деле OLS. Вы должны установить ссылку и семейные аргументы. На SO есть много примеров. - person lmo   schedule 19.05.2016