Ho alcuni risultati di apprendimento automatico che non capisco. Sto usando Python sciki-learn, con oltre 2 milioni di dati di circa 14 funzionalità. La classificazione di 'ab' sembra piuttosto male sulla curva di richiamo di precisione, ma il ROC di Ab sembra altrettanto buono della classificazione di molti altri gruppi. Cosa può spiegarlo?Buona curva ROC ma scarsa curva di precisione di richiamo
risposta
Classe squilibrio.
A differenza della curva ROC, le curve PR sono molto sensibili allo squilibrio. Se si ottimizza il classificatore per una buona AUC su dati sbilanciati, è probabile che si ottengano risultati di richiamo di precisione scadenti.
Capisco, ma cosa significa veramente in termini di prestazioni del test? È buono (basato su ROC) o cattivo (basato su P-R)? Come può un test essere buono se nella curva P-R sopra il meglio che può fare è il 40% sia per precisione che per richiamo? – KubiK888
Significa che devi fare attenzione quando segnali le prestazioni di un test su dati sbilanciati. Nelle applicazioni mediche può avere un impatto terribile (vedi test dell'AIDS come un caso da manuale), in altri può andare bene, dipende molto dalla tua specifica applicazione. – Calimo
Non ho modificato l'impostazione predefinita mentre sto utilizzando scikit, ma come hai detto sembra ottimizzare in base alla AUC, c'è un modo per ottimizzare basato sulla coppia Precision/recall nei dati sbilanciati? – KubiK888
Il tuo set è bilanciato? (ad esempio, come molti come non ab) – Calimo
No è molto sbilanciato, Ab è inferiore al 2% – KubiK888
Ecco qui. Prova il sovracampionamento per mitigare il problema. – Calimo