如何在插入符号中获得 rfe 函数的 lmFuncs 函数来进行逻辑回归?

机器算法验证 r 物流 插入符号
2022-03-17 10:33:06

我一直在尝试使用包中的rfe功能caret进行逻辑回归和特征选择。我使用了lmFuncs以下功能rfeContol

ctrl <- rfeControl(functions = lmFuncs, method = 'cv', rerank=TRUE, saveDetails=TRUE, verbose = TRUE, returnResamp = "all", number=100)

下面是rfe调用的结构:

fit.rfe=rfe(df.preds,df.depend, metric='RMSE',sizes=c(5,10,15,20), rfeControl=ctrl)

df.preds是模型输入的数据框。df.depend是一个 1 或 0 的向量,对应于 in 中的每一行,df.preds以表示响应。

当我将以下代码与函数一起使用时,从fit对象中的对象访问的结果模型rfe属于类lm,并产生小于零和大于 1 的预测值:predict

predict(fit.rfe$fit,df,type='response')

鉴于我期望这是一个逻辑,所有预测值都应大于零且小于一。

任何帮助将不胜感激。

1个回答

lmFuncs是拟合线性回归。只需键入lmFuncs$fit即可查看。尝试重写它:

lmFuncs$fit<-function (x, y, first, last, ...){   
     tmp <- as.data.frame(x)   
     tmp$y <- y   
 glm(y ~ ., data = tmp,family=binomial)   
}

请注意,我不知道如何附加<environment: namespace:caret>以及它的含义是什么。你可以在你的数据上尝试这个技巧并评论结果。