Domanda:
Area Under Curve ROC penalizza in qualche modo i modelli con troppe variabili esplicative?
Luca Dibo
2015-09-11 00:26:35 UTC
view on stackexchange narkive permalink

Sto usando Area Under Curve ROC come misura delle prestazioni dei miei algoritmi di classificazione (regressioni logistiche). Dato che sceglierò il modello che massimizza l'area sotto curva ROC, vorrei sapere se AUC penalizza in qualche modo i modelli con troppi regressori (ad esempio, come il criterio di informazione BIC).

No non lo fa.L'AUC valuta solo le prestazioni predittive ed è completamente indipendente dalla complessità del modello.
Grazie Marc.Quindi, quello che non capisco è: posso scegliere tra un set di 30 regressori, perché AUC è la massima con un sottoinsieme di soli 8 regressori?Voglio dire, se non penalizza la complessità del modello, allora perché non sceglie tutti i possibili regressori?
Probabilmente perché alcuni input peggiorano le prestazioni del tuo classificatore.Avere più input non garantisce un classificatore migliore.
hai calcolato l'AUC "nel campione" (cioè sugli stessi dati che hai utilizzato per stimare la regressione logistica) di "fuori campione" (su dati diversi da quelli che hai utilizzato per la stima)?si confronta l'AUC utilizzando gli stessi dati?
Stimo i parametri logistici nel set di addestramento (75% dell'intero set di dati) e quindi calcolo l'AUC nel set di test (25%) e sì, confronto l'AUC utilizzando gli stessi dati (lo stesso set di test).
@LucaDibo, il motivo per cui l'AUC favorisce un minor numero di regressori non è a causa di alcuna proprietà speciale dell'AUC.È solo perché stai utilizzando una divisione del test del treno.Vedi la mia risposta di seguito.
Cinque risposte:
Paul
2015-09-13 18:40:23 UTC
view on stackexchange narkive permalink

Nei commenti hai menzionato che stai calcolando l'AUC usando una divisione 75-25 del test del treno e sei perplesso sul motivo per cui l'AUC viene massimizzata quando addestri il tuo modello solo su 8 dei tuoi 30 regressori. Da questo hai avuto l'impressione che l'AUC stia in qualche modo penalizzando la complessità nel tuo modello.

In realtà c'è qualcosa che penalizza la complessità nel tuo modello, ma non è la metrica AUC. È la suddivisione del test del treno. La divisione del test del treno è ciò che rende possibile utilizzare praticamente qualsiasi metrica, anche AUC, per la selezione del modello, anche se non hanno penalità intrinseca alla complessità del modello.

Come probabilmente saprai, non misuriamo le prestazioni sugli stessi dati su cui formiamo i nostri modelli, perché il tasso di errore dei dati di addestramento è generalmente una misura eccessivamente ottimistica delle prestazioni nella pratica (vedere la sezione 7.4 del libro ESL). Ma questo non è il motivo più importante per utilizzare le suddivisioni del test del treno. Il motivo più importante è evitare l'overfitting con modelli eccessivamente complessi.

Dati due modelli A e B tali che B "contiene A" (l'insieme di parametri di B contiene quello di A), l'errore di addestramento è matematicamente garantito a favore del modello B, se ti stai adattando ottimizzando alcuni criteri di adattamento e misurando l'errore in base allo stesso criterio. Questo perché B può adattare i dati in tutti i modi in cui A può, più altri modi che possono produrre un errore inferiore rispetto alla migliore corrispondenza di A. Questo è il motivo per cui ti aspettavi di vedere un errore inferiore quando hai aggiunto più predittori al tuo modello.

Tuttavia, suddividendo i tuoi dati in due set ragionevolmente indipendenti per l'addestramento e il test, ti difendi da questa trappola. Quando si adattano i dati di addestramento in modo aggressivo, con molti predittori e parametri, non migliora necessariamente l'adattamento dei dati di test. In effetti, indipendentemente dal modello o dal criterio di adattamento, possiamo generalmente aspettarci che un modello che ha superato i dati di addestramento non funzionerà bene su un set indipendente di dati di test che non ha mai visto. Man mano che la complessità del modello aumenta nel territorio di overfitting, le prestazioni del set di test generalmente peggiorano man mano che il modello raccoglie modelli di dati di addestramento sempre più spuri, portando le sue previsioni sempre più lontano dalle tendenze effettive nel sistema che sta cercando di prevedere. Vedi ad esempio la diapositiva 4 di questa presentazione e le sezioni 7.10 e 7.12 di ESL.

Se hai ancora bisogno di convincimento, un semplice esperimento mentale può aiutarti. Immagina di avere un set di dati di 100 punti con una semplice tendenza lineare più rumore gaussiano e di voler adattare un modello polinomiale a questi dati. Supponiamo ora di suddividere i dati in set di addestramento e di test di dimensione 50 ciascuno e di adattare un polinomio di grado 50 ai dati di addestramento. Questo polinomio interpolerà i dati e darà zero errori di training set, ma mostrerà un comportamento oscillatorio selvaggio portandolo molto, molto lontano dalla semplice linea di tendenza lineare. Ciò causerà errori estremamente grandi sul set di test, molto più grandi di quelli che si otterrebbero utilizzando un semplice modello lineare. Quindi il modello lineare sarà favorito dall'errore CV. Ciò accadrà anche se confronti il ​​modello lineare con un modello più stabile come le spline smussate, sebbene l'effetto sarà meno drammatico.

In conclusione, utilizzando tecniche di suddivisione del test di addestramento come CV e misurando le prestazioni sui dati del test, otteniamo una penalizzazione implicita della complessità del modello, indipendentemente dalla metrica che utilizziamo, solo perché il modello deve prevedere sui dati non ha visto. Questo è il motivo per cui la suddivisione del test del treno è universalmente utilizzata nell'approccio moderno alla valutazione delle prestazioni in regressione e classificazione.

Frank Harrell
2015-09-13 17:04:52 UTC
view on stackexchange narkive permalink

C'è una buona ragione per cui i coefficienti di regressione nella regressione logistica vengono stimati massimizzando la probabilità o la probabilità penalizzata. Ciò porta a determinate proprietà di ottimalità. La probabilità di concordanza ($ c $ -index; AUROC) è un'utile misura supplementare per descrivere la discriminazione predittiva del modello finale, ma non è abbastanza sensibile per l'uso che hai previsto né porterebbe a un modello ottimale. Questo è abbastanza a parte il problema dell'overfitting, che influenza sia l'indice $ c $ che la probabilità (non penalizzata).

L'indice $ c $ può raggiungere il suo massimo con un numero ingannevolmente piccolo di predittori anche se non penalizza la complessità del modello, perché la probabilità di concordanza non premia previsioni estreme "corrette". $ c $ utilizza solo l'ordine di classificazione delle previsioni e non i valori previsti assoluti. $ c $ non è abbastanza sensibile da poter essere utilizzato per confrontare due modelli.

La ricerca di un modello che non utilizzi l'intero elenco di predittori spesso non è ben motivata. La selezione del modello porta instabilità ed estrema difficoltà con le co-linearità. Se desideri una previsione ottimale, l'utilizzo di tutte le funzionalità candidate e l'incorporazione della penalizzazione funzionerà meglio nella maggior parte delle situazioni che potresti incontrare. I dati raramente hanno informazioni sufficienti per consentire di fare scelte corrette su quali variabili sono "importanti" e quali sono inutili.

Stimo i parametri logistici nel training set e poi calcolo l'AUC nel test set.In questo modo ho superato il problema dell'eccessivo adattamento (credo).Quello che non capisco è il seguente: dato che posso scegliere tra un insieme di 30 regressori, perché AUC è la massima con un sottoinsieme di soli 8 regressori?Voglio dire, se non penalizza la complessità del modello, allora perché non sceglie tutti i possibili regressori?
L'AUC non dovrebbe svolgere assolutamente alcun ruolo in questo processo.La regressione logistica riguarda la probabilità (o la devianza).Dovresti ottimizzare la devianza nel campione di prova.Ciò presuppone che tu abbia una formazione enorme e un enorme campione di test, altrimenti la convalida del campione diviso è instabile.Ho ampliato la mia risposta per affrontare l'altra tua domanda.
Eric Czech
2015-09-13 19:42:19 UTC
view on stackexchange narkive permalink

Questo dovrebbe aiutare a chiarire alcune cose, con il minor numero di parole possibile:

  • AUC = misura delle prestazioni predittive effettive del modello
  • BIC = stima del rendimento predittivo del modello

Misure del rendimento , come AUC, sono qualcosa che useresti per valutare le previsioni di un modello su dati che non ha mai visto prima.

Criteri di informazione , come BIC, d'altra parte, tentano di indovina quanto bene un modello farebbe previsioni utilizzando quanto bene il modello si adatta ai dati di addestramento E il numero di parametri utilizzati per adattarli come penalità (l'uso del numero di parametri rende le ipotesi migliori).

In poche parole, BIC (e altri criteri di informazione), approssimare ciò che le misure di performance, come AUC, ti danno direttamente. Per essere più precisi:

  • i criteri di informazione tentano di approssimare la devianza fuori campione utilizzando solo i dati di addestramento e di fare approssimazioni migliori quando tenendo conto del numero di parametri utilizzati.
  • Le misurazioni dirette delle prestazioni, come devianza o AUC, vengono utilizzate per valutare quanto un modello effettua previsioni sui dati di convalida / test . Il numero di parametri è irrilevante per loro perché illustrano il rendimento nel modo più semplice possibile.

All'inizio pensavo che il collegamento tra i criteri di informazione e le misure di rendimento fosse difficile da capire, ma in realtà è abbastanza semplice. Se dovessi usare la devianza invece dell'AUC come misura delle prestazioni, BIC ti direbbe sostanzialmente quale devianza potresti aspettarti se effettivamente facessi previsioni con il tuo modello e poi misurassi la loro devianza.

Questo solleva la domanda, perché utilizzare criteri di informazione? Beh, non dovresti se stai solo cercando di costruire il modello più accurato possibile. Attenersi all'AUC perché è probabile che i modelli che hanno predittori non necessari facciano previsioni peggiori (quindi l'AUC non li penalizza di per sé, semplicemente hanno meno potere predittivo).

user83346
2015-09-13 22:47:18 UTC
view on stackexchange narkive permalink

Nella regressione logistica (la faccio univariata per facilitare la digitazione) si tenta di spiegare un risultato binario $ y_i \ in \ {0,1 \} $ assumendo che sia il risultato di una variabile casuale di Bernouilli con una probabilità di successo $ p_i $ che dipende dalla tua variabile esplicativa $ x_i $, cioè $ p_i = P (y_i = 1 | _ {x_i}) = f (x_i) $, dove $ f $ è la funzione logistica: $ f (x) = \ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x)}} $. I parametri $ \ beta_i $ sono stimati con la massima verosimiglianza. Funziona come segue: per $ i $ -esima osservazione si osserva il risultato $ y_i $ e la probabilità di successo è $ p_i = f (x_i) $, la probabilità di osservare $ y_i $ per un Bernouilli con probabilità di successo $ p_i $ è $ p_i ^ {y_i} (1-p_i) ^ {(1-y_i)} $. Quindi, per tutte le osservazioni del campione, assumendo l'indipendenza tra le osservazioni, la probabilità di osservare $ y_i, i = 1,2, \ dots n $ è $ \ prod_ {i = 1} ^ np_i ^ {y_i} (1- p_i) ^ {(1-y_i)} $. Usando la definizione precedente di $ p_i = f (x_i) $, questo diventa $ \ prod_ {i = 1} ^ nf (x_i) ^ {y_i} (1-f (x_i)) ^ {(1-y_i)} = $ . Poiché $ y_i $ e $ x_i $ sono valori osservati, possiamo vederlo come una funzione dei parametri sconosciuti $ \ beta_i $, ovvero $ \ mathcal {L} (\ beta_0, \ beta_1) = \ prod_ {i = 1 } ^ n \ sinistra (\ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {y_i} \ left (1- \ frac {1} {1 + e ^ { - (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {(1-y_i)} $. La massima probabilità trova i valori per $ \ beta_i $ che massimizzano $ \ mathcal {L} (\ beta_0, \ beta_1) $. Indichiamo questo massimo $ (\ hat {\ beta} _0, \ hat {\ beta} _1) $, quindi il valore della probabilità in questo massimo è $ \ mathcal {L} (\ hat {\ beta} _0, \ hat {\ beta} _1) $.

In modo simile, se avessi usato due variabili esplicative $ x_1 $ e $ x_2 $, la funzione di verosimiglianza avrebbe avuto tre parametri $ \ mathcal {L} '(\ beta_0, \ beta_1 , \ beta_2) $ e il massimo sarebbe $ (\ hat {\ beta} '_ 0, \ hat {\ beta}' _ 1, \ hat {\ beta} '_ 2) $ e il valore della probabilità sarebbe $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) $. Ovviamente conterrebbe che $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) > \ mathcal {L} (\ hat { \ beta} _0, \ hat {\ beta} _1) $, se l'incertezza nella probabilità è significativa deve essere 'testata' con es. un test del rapporto di verosimiglianza. Quindi i test del rapporto di verosimiglianza ti consentono di "penalizzare" i modelli con troppi regressori .

Questo non è così per AUC! In effetti, l'AUC non ti dice nemmeno se le tue "probabilità di successo" sono ben previste! Se prendi tutte le coppie possibili $ (i, j) $ dove $ y_i = 1 $ e $ y_j = 0 $, AUC sarà uguale alla frazione di tutte queste coppie che hanno $ p_i < p_j $. Quindi AUC ha a che fare con (1) quanto è bravo il tuo modello a distinguere tra '0' e '1' (ti dice di coppie con uno 'zero' e uno 'uno'), non dice nulla su quanto è buono il tuo modello sta nel prevedere le probabilità! e (2) si basa solo sul 'ranking' ($ p_i < p_j $) delle probabilità. Se l'aggiunta di 1 variabile esplicativa non cambia nulla alla classifica delle probabilità dei soggetti, l'AUC non cambierà aggiungendo una variabile esplicativa.

Quindi la prima la domanda che devi porci è cosa vuoi prevedere : vuoi distinguere tra zeri e uno o vuoi avere "probabilità ben predette"? Solo dopo aver risposto a questa domanda puoi cercare la tecnica più parsimoniosa.

Se vuoi distinguere tra zero e uno allora ROC / AUC potrebbe essere un'opzione, se vuoi probabilità ben predette dovresti dare un'occhiata al Test di bontà di adattamento in Regressione logistica; quale "misura" vogliamo testare?.

RUser4512
2015-09-13 15:50:36 UTC
view on stackexchange narkive permalink

Come ha detto Marc, l'AUC è solo una misura del rendimento, proprio come il tasso di errata classificazione. Non richiede alcuna informazione sul modello.

Al contrario, BIC, AIC, hanno bisogno di conoscere il numero di parametri del tuo modello da valutare.

Non c'è una buona ragione, se tutti i tuoi predittori sono pertinenti, che il tasso di errata classificazione o l'AUC diminuisca quando si rimuovono le variabili.

Tuttavia, è abbastanza comune che la combinazione di un algoritmo di apprendimento, una misura dell'importanza delle variabili e la selezione delle variabili (basata sull'importanza che l'algoritmo conferisce loro) darà risultati migliori rispetto all'adattamento del modello all'intero set di dati .

Hai un'implementazione di questo metodo per le foreste casuali nel pacchetto R RFauc.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...