Je voudrais utiliser GLM et Elastic Net pour sélectionner ces fonctionnalités pertinentes + construire un modèle de régression linéaire (c'est-à-dire à la fois la prédiction et la compréhension, il serait donc préférable de se retrouver avec relativement peu de paramètres). La sortie est continue. C'est gènes pour 50 cas. J'ai lu sur le paquet, mais je ne suis pas sûr à 100% des étapes à suivre:glmnet
Effectuez CV pour choisir lambda:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) étant donné les données d'entrée, choisiriez-vous une valeur alpha différente?
(Q2) Dois -je faire autre chose avant de construire le modèle?Ajuster le modèle:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(Q3) quelque chose de mieux que la "covariance"?
(Q4) Si lambda a été choisi par CV, pourquoi cette étape est-elle nécessairenlambda=?
(Q5) est-il préférable d'utiliserlambda.minoulambda.1se?Obtenez les coefficients, pour voir quels paramètres sont tombés ("."):
predict(model, type="coefficients")Dans la page d'aide il y a beaucoup de
predictméthodes (par exemple,predict.fishnet,predict.glmnet,predict.lognet, etc.). Mais tout "simple" prédire comme je l'ai vu sur un exemple.
(Q6) Dois-je utiliserpredictoupredict.glmnetou autre?
Malgré ce que j'ai lu sur les méthodes de régularisation, je suis assez nouveau dans R et dans ces packages statistiques, il est donc difficile d'être sûr d'adapter mon problème au code. Toute suggestion sera la bienvenue.
MISE
À JOUR Basé sur "Comme indiqué précédemment, un objet de train de classe contient un élément appelé finalModel, qui est le modèle ajusté avec les valeurs des paramètres de réglage sélectionnés par rééchantillonnage. Cet objet peut être utilisé de manière traditionnelle pour générer des prédictions pour de nouveaux échantillons, en utilisant celui fonction de prédiction du modèle. "
Utilisation caretpour régler à la fois alpha et lambda:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
Ne fitMremplacer étape précédente 2? Si oui, comment spécifier maintenant les options glmnet ( type.gaussian="naive",lambda=cv$lambda.min/1se)?
Et ce qui suit predictpas, puis - je remplacer modelà fitM?
Si je fais
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
est-ce que cela a du sens ou est-ce que je mélange de manière incorrecte le vocabulaire des deux packages?