Personalizarea trainControl
Așa cum ai văzut în video, aria de sub curba ROC este un rezumat extrem de util, exprimat printr-un singur număr, al capacității unui model de a discrimina clasa pozitivă de cea negativă (de exemplu, mine față de roci). Un AUC de 0,5 nu este mai bun decât o ghicire aleatorie, un AUC de 1,0 corespunde unui model cu predicții perfecte, iar un AUC de 0,0 indică un model perfect anti-predictiv (ceea ce se întâmplă rar).
Acesta este adesea un indicator mult mai util decât simpla clasificare a modelelor după acuratețe la un prag fix, deoarece diferite modele pot necesita pași de calibrare diferiți (analizând matricea de confuzie la fiecare pas) pentru a găsi pragul optim de clasificare.
Poți folosi funcția trainControl() din caret pentru a utiliza AUC (în loc de acuratețe) la ajustarea parametrilor modelelor tale. Funcția utilitară twoClassSummary() îți permite să faci acest lucru cu ușurință.
Atunci când folosești twoClassSummary(), asigură-te că incluzi întotdeauna argumentul classProbs = TRUE, altfel modelul va genera o eroare! (Nu poți calcula AUC doar din predicțiile de clasă. Ai nevoie și de probabilitățile asociate fiecărei clase.)
Acest exercițiu face parte din cursul
Machine Learning cu caret în R
Instrucțiuni pentru exercițiu
- Personalizează obiectul
trainControlpentru a folositwoClassSummaryîn loc dedefaultSummary. - Folosește validare încrucișată cu 10 iterații.
- Asigură-te că îi transmiți lui
trainControl()să returneze probabilitățile de clasă.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)