Dostosowywanie trainControl
Jak pokazano w filmie, pole pod krzywą ROC (AUC) to bardzo przydatna, syntetyczna miara zdolności modelu do rozróżniania klasy pozytywnej od negatywnej (np. min od skał). AUC równe 0,5 oznacza trafność losową, AUC równe 1,0 odpowiada modelowi doskonałemu, a AUC równe 0,0 wskazuje na model całkowicie mylący się w predykcjach (co zdarza się bardzo rzadko).
Jest to zazwyczaj znacznie bardziej użyteczna miara niż proste porównywanie modeli według dokładności przy ustalonym progu – różne modele mogą bowiem wymagać innych kroków kalibracji (np. analizy macierzy pomyłek na każdym etapie), aby wyznaczyć optymalny próg klasyfikacji.
Funkcja trainControl() z pakietu caret pozwala używać AUC zamiast dokładności do strojenia parametrów modelu. Funkcja pomocnicza twoClassSummary() znacznie to ułatwia.
Korzystając z twoClassSummary(), pamiętaj, aby zawsze podawać argument classProbs = TRUE – inaczej model zgłosi błąd! (Obliczenie AUC wymaga nie tylko przynależności do klas, ale też prawdopodobieństw klasowych.)
To ćwiczenie jest częścią kursu
Uczenie maszynowe z caret w R
Instrukcje do ćwiczenia
- Dostosuj obiekt
trainControl, aby używałtwoClassSummaryzamiastdefaultSummary. - Zastosuj 10-krotną walidację krzyżową.
- Pamiętaj, aby wskazać funkcji
trainControl(), że ma zwracać prawdopodobieństwa klasowe.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)