在R中,我指定一个没有截距的模型,如下所示:
data(iris)
lmFit <- lm(Sepal.Length ~ 0 + Petal.Length + Petal.Width, data=iris)
> round(coef(lmFit),2)
Petal.Length Petal.Width
2.86 -4.48
但是,如果我将同一模型与插入号匹配,则得到的模型将包含一个截距:
library(caret)
caret_lmFit <- train(Sepal.Length~0+Petal.Length+Petal.Width, data=iris, "lm")
> round(coef(caret_lmFit$finalModel),2)
(Intercept) Petal.Length Petal.Width
4.19 0.54 -0.32
如何告诉
caret::train
排除拦截词? 最佳答案
正如在链接的SO问题https://stackoverflow.com/a/41731117/7613376中所讨论的,这在插入符号v6.0.76中有效(并且上面的跟踪答案似乎不再与插入符号中的代码重构一起使用):
caret_lmFit <- train(Sepal.Length~0+Petal.Length+Petal.Width, data=iris, "lm",
tuneGrid = expand.grid(intercept = FALSE))
> caret_lmFit$finalModel
Call:
lm(formula = .outcome ~ 0 + ., data = dat)
Coefficients:
Petal.Length Petal.Width
2.856 -4.479
关于r - 在插入符中拟合无截距模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12394855/