Qual è la differenza tra decision_function, predict_proba e predict per il problema di regressione logistica?


10

Ho esaminato la documentazione di sklearn ma non sono in grado di comprendere lo scopo di queste funzioni nel contesto della regressione logistica. Perché decision_functiondice che è la distanza tra l'iperpiano e l'istanza di test. come sono utili queste informazioni particolari? e in che modo ciò si collega predicte predict-probametodi?

Risposte:


28

Ricordiamo che la forma funzionale della regressione logistica è

f(x)=11+e(β0+β1x1++βkxk)

Questo è ciò che viene restituito da predict_proba.

Il termine all'interno dell'esponenziale

d(x)=β0+β1x1++βkxk

è ciò che viene restituito da decision_function. L '"iperpiano" cui si fa riferimento nella documentazione è

β0+β1x1++βkxk=0

Questa terminologia è un blocco dai computer di supporto vettoriale, che stimano letteralmente un iperpiano di separazione. Per la regressione logistica questo iperpiano è un po 'un costrutto artificiale, è il piano di uguale probabilità, in cui il modello ha determinato che entrambe le classi target sono ugualmente probabili.

La predictfunzione restituisce una decisione di classe utilizzando la regola

f(x)>0.5

A rischio di soapboxing, la predictfunzione ha pochissimi usi legittimi e lo considero un segno di errore durante la revisione di altri lavori. Andrei abbastanza lontano da chiamarlo un errore di progettazione in sklearn stesso (la predict_probafunzione avrebbe dovuto essere chiamata predicte predictavrebbe dovuto essere chiamata predict_class, se non altro).


Grazie per la risposta @Matthew, ma puoi chiarire un po 'di più questo punto "Per la regressione logistica, questo iperpiano è un po' un costrutto artificiale, è il piano di uguale probabilità, in cui il modello ha determinato che entrambe le classi target sono ugualmente probabili ". ?
Stesso

Questa spiegazione è interessante e utile. Vorrei che Sklearn lo spiegasse meglio. Quello che non capisco è a che serve conoscere il valore di x nella funzione logistica 1 / (1 + e ^ -x)? Tutto quello a cui riesco a pensare è forse usare una diversa funzione sigmoide come x / (1+ | x |). C'è di più? Grazie!
ldmtwo,

Fondamentalmente la funzione decisionale avrebbe dovuto essere il sigmoide nella regressione logistica. Corretta?
3nomis,

2
Penso che la ragione per cui @Matthew è su una soapbox sia che usare 0,5 come soglia per la previsione sia ingenuo. La prima cosa da fare è imparare a usare la validazione incrociata, le curve ROC e l'AUC per scegliere una soglia appropriata c, e usando come funzione decisionale f (x)> c.
hwrd
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.