Caret:glmboost中的家庭规格不起作用

问题描述 投票:0回答:1

我正试图在Caret上运行一个强大的稳健回归(与Huber家族一起),但是在训练模型时我遇到了错误:

library(caret)

X <- rnorm(300, 0, 100)
Y <- rnorm(300, 0, 100000)
data <- cbind(X,Y)

model <- train(Y~X, method="glmboost", data=data, family=Huber())

我得到错误'找不到函数Huber()',但是这明确包含在mboost包(glmboost所基于的包)中。

任何帮助将非常感激。

r machine-learning r-caret boosting
1个回答
1
投票

如果您只使用library(caret)运行method="glmboost",它将加载mboost包,但它不会将mboost包附加到您的搜索路径。不鼓励软件包自动附加其他软件包,因为它们可能导入可能与您加载的其他函数冲突的函数。因此,大多数软件包都私下加载依赖项。如果使用包名称完全限定函数名称,则可以在模型中使用它

model <- train(Y~X, method="glmboost", data=data, family=mboost::Huber())

或者您也可以运行library(mboost)将包附加到搜索路径,这样您就不必包含包名称前缀。

© www.soinside.com 2019 - 2024. All rights reserved.