【问题标题】:Error: some required components are missing: prob?错误:缺少一些必需的组件:prob?
【发布时间】:2020-03-29 14:05:41
【问题描述】:

我按照此指南创建自己的插入符号模型Creating Your Own Model。那里说

如果正在使用回归模型或分类模型 不创建类概率 NULL 值可以在这里使用 而不是一个函数

于是我就这样做了

# Define the model cFBasic
cFBasic <- list(type = "Regression",
                library = c("lubridate", "stringr"),
                loop = NULL)
...
cFBasic$prob <- NULL
cFBasic$sort <- NULL

但是,当我尝试测试模型时,会产生以下错误:

control <- trainControl(method = "cv", 
                        number = 10, 
                        p = .9, 
                        allowParallel = TRUE)
fit <- train(x = calib_set,
             y = calib_set$y,
             method = cFBasic,
             trControl = control)
Error: some required components are missing: prob

我该如何解决这个问题?除了添加函数 prob 来生成伪造的pro 数据框以使caret 开心。

【问题讨论】:

    标签: r r-caret


    【解决方案1】:

    通过键入cFBasic$prob &lt;- NULL,您实际上并不是在列表中添加新项目。

    看看这个:

    cFBasic <- list(prob = NULL)
    cFBasic
    #> $prob
    #> NULL
    
    cFBasic$prob <- NULL
    cFBasic
    #> named list()
    

    当您将null分配给列表的对象时,可以删除该对象。如果要在名为prob和一个名为sort的列表中添加一个名为@ 987654323的空对象,您应该键入以此方式:

    # Define the model cFBasic
    cFBasic <- list(type = "Regression",
                    library = c("lubridate", "stringr"),
                    loop = NULL)
    ...
    cFBasic <- c(cFBasic, list(prob = NULL))
    cFBasic <- c(cFBasic, list(sort = NULL))
    

    试试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      相关资源
      最近更新 更多