1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Uczenie maszynowe z caret w R

Connected

Exercise

glmnet z własnym trainControl i strojeniem

Jak widziałeś w filmie, model glmnet dopasowuje wiele modeli jednocześnie – to jedna z największych zalet tego pakietu. Możesz to wykorzystać, podając dużą liczbę wartości lambda, które kontrolują poziom regularyzacji w modelu. Funkcja train() jest na tyle inteligentna, że dopasowuje tylko jeden model na wartość alpha, przekazując wszystkie wartości lambda jednocześnie.

Moja ulubiona siatka strojenia dla modeli glmnet wygląda tak:

expand.grid(
  alpha = 0:1,
  lambda = seq(0.0001, 1, length = 100)
)

Ta siatka przeszukuje dużą liczbę wartości lambda (100, żeby być precyzyjnym) – od bardzo małych do bardzo dużych. (Możesz zwiększyć maksymalną wartość lambda do 10, ale w tym ćwiczeniu 1 to dobra górna granica.)

Jeśli chcesz przetestować mniej modeli, użyj krótszej sekwencji lambda. Na przykład lambda = seq(0.0001, 1, length = 10) dopasuje 10 modeli na każdą wartość alpha.

Dzięki tej siatce tuneGrid sprawdzisz też dwie formy modeli z regularyzacją: regresję grzbietową i regresję lasso. alpha = 0 oznacza czystą regresję grzbietową, a alpha = 1 – czystą regresję lasso. Możesz również dopasować mieszankę obu modeli (czyli elastic net), używając wartości alpha między 0 a 1. Na przykład alpha = 0.05 to 95% regresji grzbietowej i 5% regresji lasso.

W tym zadaniu skupisz się wyłącznie na dwóch skrajnościach – czystej regresji grzbietowej i czystej regresji lasso – aby zilustrować różnice między nimi.

Instrukcje

100 XP
  • Wytrenuj model glmnet na danych overfit tak, aby y było zmienną odpowiedzi, a wszystkie pozostałe zmienne – zmiennymi objaśniającymi. Pamiętaj, żeby użyć własnego obiektu trainControl z poprzedniego ćwiczenia (myControl). Użyj też własnej siatki tuneGrid, która przeszuka alpha = 0:1 i 20 wartości lambda od 0,0001 do 1 dla każdej wartości alpha.
  • Wyświetl model w konsoli.
  • Wyświetl wartość max() statystyki ROC z model[["results"]]. Możesz ją uzyskać za pomocą model[["results"]][["ROC"]].