He estado experimentando con el rfe
en la función caret
para realizar regresión logística con selección de características. Utilicé el paquete lmFuncs
funciones con lo siguiente rfeContol
:
ctrl <- rfeControl(functions = lmFuncs, method = 'cv', rerank=TRUE, saveDetails=TRUE, verbose = TRUE, returnResamp = "all", number=100)
A continuación se muestra la estructura del rfe
llamar:
fit.rfe=rfe(df.preds,df.depend, metric='RMSE',sizes=c(5,10,15,20), rfeControl=ctrl)
df.preds
es un marco de datos de entradas al modelo. df.depend
es un vector de 1 o 0 correspondiente a cada fila de df.preds
para indicar la respuesta.
El modelo resultante al que se accede desde el fit
en el rfe
es de clase lm
y produce valores predichos menores que cero y mayores que 1 cuando utilizo el siguiente código con la función predict
función:
predict(fit.rfe$fit,df,type='response')
Dado que espero que sea una logística, todos los valores predichos deben ser mayores que cero y menores que uno.
Agradeceremos cualquier ayuda.
2 votos
No es aconsejable utilizar una validación cruzada de 100 veces. En la práctica, cada pliegue va a ser un 99% similar a otro pliegue. Utilice un menor número de pliegues (como 5 o 10) para obtener más datos nuevos en cada pliegue (mezclar más) y luego, si quieres hacer repeticiones, especifique
repeats=
. De lo contrario, no podrá simular realmente el rendimiento de la técnica con datos nuevos. Véase pregunta para la comparación de k-fold y leave-one-out CV, que es lo que se aborda comonumber=
sube0 votos
¿Has probado lrFunc en lugar de lmFunc?