【问题标题】:"Wrong model type for classification" in regression problems in R-CaretR-Caret 回归问题中的“分类错误模型类型”
【发布时间】:2017-08-18 12:51:31
【问题描述】:

我正在尝试使用 R 中 Caret 包中的各种预测算法来解决回归问题,即我的目标变量是连续的。 Caret 认为分类是问题的适当类别,当我通过任何回归模型时,我会收到一条错误消息,上面写着“错误的分类模型类型”。为了重现性,让我们看看Combined Cycle Power Plant Data Set。数据在 CCPP.zip 中。让我们将功率预测为其他变量的函数。功率是一个连续变量。

  library(readxl)
  library(caret)
  power_plant = read_excel("Folds5x2_pp.xlsx")
  apply(power_plant,2, class)   # shows all columns are numeric

  control <- trainControl(method="repeatedcv", number=10, repeats=5)

  my_glm <- train(power_plant[,1:4], power_plant[,5],
           method = "lm",
           preProc = c("center", "scale"),
            trControl = control)

下图是我的截图:

【问题讨论】:

    标签: r r-caret


    【解决方案1】:

    由于某种原因,caret 被 tibbles 弄糊涂了,这是 read_excel 返回的数据帧的 tidyverse 变体。通过在将其提供给插入符号之前将其转换为简单的数据框,一切正常:

    library(readxl)
    library(caret)
    power_plant = read_excel("Folds5x2_pp.xlsx")
    apply(power_plant,2, class)   # shows all columns are numeric
    
    power_plant <- data.frame(power_plant)
    control <- trainControl(method="repeatedcv", number=10, repeats=5)
    
    my_glm <- train(power_plant[,1:4], power_plant[,5],
                    method = "lm",
                    preProc = c("center", "scale"),
                    trControl = control)
    
    my_glm
    

    屈服:

    Linear Regression 
    
    9568 samples
       4 predictor
    
    Pre-processing: centered (4), scaled (4) 
    Resampling: Cross-Validated (10 fold, repeated 5 times) 
    Summary of sample sizes: 8612, 8612, 8611, 8612, 8612, 8610, ... 
    Resampling results:
    
      RMSE      Rsquared 
      4.556703  0.9287933
    
    Tuning parameter 'intercept' was held constant at a value of TRUE
    

    【讨论】:

    • 实际上我在其他情况下也发现了这一点,例如当尝试将 glm 与 tibble 一起使用时,它抱怨某些因素的水平,所以我不得不 as.data.frame(unclass(my_tibble)) 并且它起作用了。
    【解决方案2】:

    当我尝试使用公式 = y ~ x 时遇到类似的错误,只需省略命名变量并使用 y ~ x 即可。

    【讨论】:

    • 你能把它作为新问题发布,而不是在回答中提问吗?
    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 2012-04-28
    • 2018-04-13
    • 2015-04-18
    • 2020-09-21
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多