Jak stosować siatkę elastyczną?

Jest to pytanie dla początkujących dotyczące regularyzacji z regresją. Większość informacji na temat elastycznej sieci i regresji Lasso online replikuje informacje z Wikipedii lub oryginalnego artykułu z 2005 roku autorstwa Zou i Hastie (Regularyzacja i wybór zmiennych za pomocą elastycznej sieci).

zasób prostej teorii? czy istnieje proste i łatwe Wyjaśnienie gdzieś o tym, co robi, kiedy i dlaczego reguaryzacja jest konieczna i jak jej używać-dla tych, którzy nie są statystycznie skłonny? Rozumiem, że oryginalny papier jest idealnym źródłem, jeśli można go zrozumieć, ale czy jest gdzieś, że po prostu problem i rozwiązanie?

Jak korzystać w sklearn? czy istnieje przykład krok po kroku pokazujący, dlaczego wybrano elastyczną siatkę (over ridge, lasso lub po prostu prosty OLS) i jak obliczane są parametry? Wiele przykładów na sklearn zawiera tylko parametry alfa i rho bezpośrednio w modelu predykcyjnym, dla przykład :

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)
Nie wyjaśniają jednak, w jaki sposób zostały one obliczone. Jak obliczyć parametry dla lasso lub net?
Author: Zach, 2012-09-05

2 answers

Brakuje dokumentacji. Stworzyłem nowy numer , aby go poprawić. Jak powiedział Andreas najlepszym zasobem jest prawdopodobnie ESL II bezpłatnie dostępny online w formacie PDF.

Aby automatycznie dostroić wartość alfa, możliwe jest użycie ElasticNetCV , która oszczędzi zbędne obliczenia, jak przystało na użycie GridSearchCV w klasie ElasticNet do strojenia alpha. W dopełniaczu można użyć zwykłej GridSearchCV do znalezienia optymalnej wartości rho. Zobacz też docstring of ElasticNetCV fore more details.

Jeśli chodzi o Lasso vs ElasticNet, ElasticNet ma tendencję do wybierania większej liczby zmiennych, co prowadzi do większych modeli (również droższych w treningu), ale także jest bardziej dokładny w ogóle. W szczególności Lasso jest bardzo wrażliwy na korelację między funkcjami i może wybrać losowo jedną z 2 bardzo skorelowanych funkcji informacyjnych, podczas gdy ElasticNet będzie bardziej prawdopodobne, aby wybrać oba, które powinny prowadzić do bardziej stabilnego modelu (w kategoriach możliwość uogólniania tak nowych próbek).

 22
Author: ogrisel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-06 12:10:17
 3
Author: Tim Lewandowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 20:59:59