Domanda

Sto lavorando a un'attività di classificazione binaria. Il set di dati è piuttosto piccolo ~ 1800 righe e ~ 60 colonne. Non ci sono duplicati nelle righe. Sto confrontando diversi classificatori tra quelli canonici: foresta casuale, regressione logistica, albero potenziato e SVC. Sto allenando gli iperparametri con un CV sul 90% (treno) con il 10% tenuto per misurare l'errore di generalizzazione (test). Il set di dati è leggermente squilibrato (rapporto da 1 a 3 delle classi), quindi ho usato una piega stratificata per tutte le divisioni. Uso anche ROC-AUC come metrica per il mio CV.

Ottengo i seguenti risultati per il punteggio e la precisione ROC-AUC:

 DummyClassifier
Train
ROC-AUC score: 0.50000
Accuracy: 0.69705
Test
ROC-AUC score: 0.50000
Accuracy: 0.69545

 LogisticRegression
Train
ROC-AUC score: 0.88459
Accuracy: 0.78666
Test
ROC-AUC score: 0.72559
Accuracy: 0.69545

 RandomForestClassifier
Train
ROC-AUC score: 1.00000
Accuracy: 0.99695
Test
ROC-AUC score: 0.81748
Accuracy: 0.80455

 XGBClassifier
Train
ROC-AUC score: 1.00000
Accuracy: 0.99949
Test
ROC-AUC score: 0.80617
Accuracy: 0.79545

 SVC
Train
ROC-AUC score: 0.89900
Accuracy: 0.83248
Test
ROC-AUC score: 0.73515
Accuracy: 0.73182

C'è sempre un divario significativo tra i punteggi dei treni e dei test. Sono chiaramente eccessivo. Immagino sia una conseguenza del basso numero di file, ma non sono sicuro di cosa fare al riguardo? Forzare la ricerca della griglia CV per iperparametri a un intervallo con una forte regolarizzazione?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top