得到R中逻辑回归模型的检验误差



我正在用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]):
所有参数的长度必须相同

我做错了什么?

如果有人有同样的问题,我会回答我自己的问题:

当我把参数放在glm中时,我说的是我想要预测的,这是带有train数据的Auto$mpg标签,因此,我的glm调用必须是:

attach(Auto)
mlr<-glm(mpg ~ 
displacement + horsepower + weight, data=Auto, subset=indexes_train)

如果现在我调用predicttable等,则不存在任何结构大小的问题。修改这个错误对我有效。

正如imo所说:"更重要的是,你可以检查一下这是否创建了逻辑回归。我认为这实际上是OLS。你必须设置链接和家庭参数。"

set familyy="二项式"

最新更新