【问题标题】:Get test error in a logistic regression model in R在 R 中的逻辑回归模型中获取测试错误
【发布时间】:2016-05-19 09:18:12
【问题描述】:

我正在使用 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&lt;-glm(mpg ~ displacement + horsepower + weight, data =train)。如果您指定了 data 参数,则不需要 train$。更重要的是,您可能会检查这是否会创建逻辑回归。我认为它实际上是OLS。您必须设置链接和家庭参数。 SO上有很多例子。

标签: r machine-learning logistic-regression predict


【解决方案1】:

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

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

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

如果现在我打电话给predicttable 等,那么结构大小没有任何问题。修改这个错误对我有用。

【讨论】:

    【解决方案2】:

    正如 imo 所说: “更重要的是,您可能会检查这是否会创建逻辑回归。我认为它实际上是 OLS。您必须设置链接和家庭参数。”

    设置家庭 = '二项式'

    【讨论】:

      猜你喜欢
      • 2017-07-10
      • 2021-04-28
      • 2020-04-26
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多