Comment est-Elastic Net utilisé?
C'est une question de débutant sur la régularisation avec la régression. Plus d'informations sur l'Elastic Net et Lasso de Régression en ligne réplique de l'information de Wikipedia ou l'original de 2005 de papier par Zou et Hastie (Régularisation et la sélection de variables via l'elastic net).
De ressources pour la simple théorie? Est-il simple et facile explication quelque part sur ce qu'il fait, quand et pourquoi reguarization est nécessaire, et comment l'utiliser - pour ceux qui ne sont pas statistiquement incliné? Je comprends que le document original est la source idéale si vous pouvez le comprendre, mais il est là quelque part que plus simplement le problème et la solution?
Comment utiliser dans sklearn? Est-il un exemple étape par étape montrant pourquoi l'elastic net est choisi (plus de ridge, lasso, ou de simples MCO) et de la façon dont les paramètres sont calculés? De nombreux exemples sur sklearn il suffit d'inclure l'alpha et l'rho paramètres directement dans le modèle de prédiction, pour exemple:
from sklearn.linear_model import ElasticNet
alpha = 0.1
enet = ElasticNet(alpha=alpha, rho=0.7)
y_pred_enet = enet.fit(X_train, y_train).predict(X_test)
Cependant, ils n'expliquent pas comment elles ont été calculées. Comment voulez-vous calculer les paramètres pour le lasso ou net?
- Vous pouvez apprendre les bases de la régularisation dans prof. Andrew Ng excellente machine learning cours. Il traite de la régularisation L2 seulement, mais les maths de L1 ou E-net est très similaire. Comme pour trouver les bons paramètres, scikit-learn a des classes comme
ElasticNetCV
pour que. - Je recommande également à la recherche dans
Elements of statistical learning
un grand livre sur l'apprentissage de la machine, qui est disponible en ligne gratuitement. Btw, la régression de la balise ici ne semble pas à dire ce que tu veux dire 😉 - J'ai juste édité le tag description pour
regression
. La plupart des questions semblent être sur "comment utiliser R/SciPy/Matlab/Octave", ils sont donc probablement pas sur les tests.
Vous devez vous connecter pour publier un commentaire.
La documentation est incomplète. J'ai créé un nouveau question pour l'améliorer. Comme Andreas dit que la meilleure ressource est probablement II ESL librement disponible en ligne au format PDF.
Pour syntoniser automatiquement la valeur de l'alpha, il est en effet possible d'utiliser ElasticNetCV qui va de rechange redondant calcul apposées à l'aide de GridSearchCV dans le
ElasticNet
classe pour le réglagealpha
. En complément, vous pouvez utiliser unGridSearchCV
pour trouver la valeur optimale derho
. Voir la docstring de ElasticNetCV pour plus de détails.Comme pour Lasso vs ElasticNet, ElasticNet auront tendance à choisir plus de variables par conséquent conduire à de plus grands modèles (les plus chers de train), mais également d'être plus précis en général. En particulier, le Lasso est très sensible à la corrélation entre les caractéristiques et pourrait sélectionner au hasard un des 2 très corrélée fonctions informatives, tandis que ElasticNet seront plus enclins à sélectionner à la fois ce qui devrait conduire à une plus grande stabilité du modèle (en termes de capacité de généralisation de sorte que de nouveaux échantillons).
Je vous orienter vers ce blog: http://www.datarobot.com/blog/regularized-linear-regression-with-scikit-learn/.