【问题标题】:Caret Logistic model results in NULL modelCaret Logistic 模型导致 NULL 模型
【发布时间】:2021-03-30 12:48:12
【问题描述】:

我不确定这里发生了什么。当我在caret 之外创建模型时,它似乎工作正常。但是,当使用caret 获取简历时,当我得到模型摘要时,我得到 NULL。当我尝试绘制模型时,我也会遇到错误。响应变量是一个因素

data_ctrl = trainControl(method = "cv", number = 10)

model_caret1 = train(Clicked.on.Ad~ Age+ Area.Income+Daily.Internet.Usage + Daily.Time.Spent.on.Site,
                     data = Ads,
                     trControl = data_ctrl,
                     method = "glm",
                     family=binomial())

结果如下:

all:
NULL

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.4578  -0.1341  -0.0333   0.0167   3.1961  

Coefficients:
                            Estimate  Std. Error z value             Pr(>|z|)    
(Intercept)              27.12906491  2.71436398   9.995 < 0.0000000000000002 ***
Age                       0.17092126  0.02568321   6.655    0.000000000028334 ***
Area.Income              -0.00013539  0.00001868  -7.247    0.000000000000425 ***
Daily.Internet.Usage     -0.06391289  0.00674508  -9.475 < 0.0000000000000002 ***
Daily.Time.Spent.on.Site -0.19192952  0.02065752  -9.291 < 0.0000000000000002 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1386.3  on 999  degrees of freedom
Residual deviance:  182.9  on 995  degrees of freedom
AIC: 192.9

Number of Fisher Scoring iterations: 8
> plot(model_caret1)
Error in plot.train(model_caret1) : 
  There are no tuning parameters for this model.

【问题讨论】:

  • plot 函数将绘制 corss-validation 误差作为您在训练中指定的调整参数的函数。由于您没有指定任何调整参数,因为逻辑回归模型没有任何参数,所以您不会得到任何绘图输出。有一个关于这个here的讨论。

标签: r plot logistic-regression r-caret


【解决方案1】:

您获得的对象是train 对象,我猜您需要做的是在 glm 对象上绘制一个图。所以你需要寻找最终的拟合模型:

library(caret)
dat = iris
dat$Species = factor(ifelse(dat$Species=="versicolor","v","o"))

data_ctrl = trainControl(method = "cv", number = 10)

model_caret1 = train(Species ~ .,
                     data = dat,
                     trControl = data_ctrl,
                     method = "glm",
                     family=binomial())

class(model_caret1)
[1] "train"         "train.formula"

然后在这个下:

class(model_caret1$finalModel)
[1] "glm" "lm" 

summary(model_caret1$finalModel)

plot(model_caret1$finalModel)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 2021-11-15
    • 1970-01-01
    • 2012-05-16
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多