Je suis intéressé à utiliser le curseur pour faire des inférences sur un ensemble de données particulier. Est-il possible de faire ce qui suit:
produire des coefficients d'un modèle glmnet que j'ai formé au caret. Je voudrais utiliser glmnet en raison de la sélection de fonctionnalités inhérentes car je ne pense pas que glm l'ait?
autre que la métrique ROC, existe-t-il une autre métrique que je peux utiliser pour évaluer l'ajustement du modèle? Tels que ajusté ?
Le but de cette analyse est de tirer une certaine inférence sur les effets de variables particulières, plutôt que pour la prédiction. J'aime juste le paquet caret car il a été facile de travailler jusqu'à présent avec des matrices.
Réponses:
Disons que votre modèle caret est appelé "modèle". Vous pouvez accéder au modèle final de glmnet avec
model$finalModel
. Vous pouvez ensuite appelercoef(model$finalModel)
, etc. Vous devrez sélectionner une valeur de lambda pour laquelle vous souhaitez des coefficients, tels quecoef(model$finalModel, model$bestTune$.lambda)
.Jetez un œil au
summaryFunction
paramètre de latrainControl
fonction. Il vous permettra de spécifier n'importe quelle fonction que vous souhaitez minimiser (ou maximiser, voir l'maximize
argumenttrain
), en fonction d'un prédicteur et d'une réponse.Il peut être difficile d'obtenir le R ^ 2 ajusté de cette manière, mais vous pouvez probablement obtenir R ^ 2 ou quelque chose de similaire.
la source
caret
version6.0.78
, la meilleure écoute lambda est maintenant:model$bestTune$lambda
.