簡體   English   中英

R插入符號包,如何調整lm中的截距和斜率?

[英]R caret package, how do I tune the intercept and slope in lm?

我正在嘗試使用 R caret 包對線性回歸模型執行 5 折交叉驗證。 我是機器學習的新手,但我希望每次“重復”都會有一個新的斜率和截距適合“訓練”數據集。 然而,默認情況下,所有重復的斜率和截距都保持不變,並且測試似乎只是在每次重復時輸出新的 RMSE 和 Rsquared。 有沒有辦法允許調整攔截?

這是我的代碼:

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

regress         <- train(y ~ x,
                   data = myData,
                   method  = "lm",
                   trControl = regressControl)
regress

輸出如下所示:

Linear Regression 

54 samples
 1 predictor

No pre-processing
Resampling: Cross-Validated (5 fold, repeated 5 times) 
Summary of sample sizes: 45, 44, 42, 42, 43, 43, ... 
Resampling results:

  RMSE        Rsquared 
  0.01162334  0.9614908

Tuning parameter 'intercept' was held constant at a value of TRUE

regress$finalModel
Call:
lm(formula = .outcome ~ ., data = dat)

Coefficients:
(Intercept)     x  
   -0.03054      0.01690  

您可以添加和更改 tuneGrid 參數,默認為 TRUE

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

regress         <- train(y ~ x,
                   data = myData,
                   method  = "lm",
                   trControl = regressControl),
                   tuneGrid = expand.grid(intercept = TRUE)
regress 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM