Perché usare il ridimensionamento di Platt?


17

Al fine di calibrare un livello di confidenza con una probabilità nell'apprendimento supervisionato (diciamo per mappare la confidenza da un SVM o un albero decisionale usando dati sovracampionati) un metodo consiste nell'utilizzare il ridimensionamento di Platt (ad esempio, Ottenere probabilità calibrate dall'amplificazione ).

Fondamentalmente si usa la regressione logistica per mappare a [ 0 ; 1 ] . La variabile dipendente è la vera etichetta e il predittore è la sicurezza del modello non calibrato. Quello che non capisco è l'uso di una variabile target diversa da 1 o 0. Il metodo richiede la creazione di una nuova "etichetta":[-;][0;1]

Per evitare l'adattamento eccessivo al set di treno sigmoideo, viene utilizzato un modello fuori campione. Se ci sono esempi positivi e N - esempi negativi nel set di treni, per ogni esempio di allenamento Platt Calibration utilizza i valori target y + e y - (anziché 1 e 0, rispettivamente), dove y + = N + + 1N+N-y+y-

y+=N++1N++2;y-=1N-+2

Quello che non capisco è come questo nuovo obiettivo sia utile. La regressione logistica non tratterà semplicemente la variabile dipendente come un'etichetta binaria (indipendentemente dall'etichetta fornita)?

AGGIORNARE:

Ho scoperto che in SAS cambiando il dipendente da 1/0PROC GENMOD

data(ToothGrowth) 
attach(ToothGrowth) 

  # 1/0 coding 
dep          <- ifelse(supp == "VC", 1, 0) 
OneZeroModel <- glm(dep~len, family=binomial) 
OneZeroModel 
predict(OneZeroModel) 

  # Platt coding 
dep2           <- ifelse(supp == "VC", 31/32, 1/32) 
plattCodeModel <- glm(dep2~len, family=binomial) 
plattCodeModel 
predict(plattCodeModel) 

compare        <- cbind(predict(OneZeroModel), predict(plattCodeModel)) 

plot(predict(OneZeroModel), predict(plattCodeModel))

Risposte:


13

Suggerisco di controllare il pagina di Wikipedia della regressione logistica . Indica che, nel caso di una regressione logistica variabile variabile binaria, i predittori mappano la probabilità di occorrenza della variabile dipendente. Senza alcuna trasformazione, la probabilità utilizzata per l'allenamento del modello è 1 (se y è positivo nel set di allenamento) o 0 (se y è negativo).

pi=1(1+exp(Afi+B))fiy+y-


Grazie per la risposta! Prima stavo usando SAS e non riuscivo a ottenere una variabile di risposta diversa. Adatto quanto segue in R come esempio e vedo che viene emesso un avviso di non essere una variabile di risposta intera ma il risultato si adattava a un modello diverso.
B_Miner,

data (ToothGrowth) attach (ToothGrowth) # 1/0 coding dep <-ifelse (supp == "VC", 1,0) OneZeroModel <-glm (dep ~ len, family = binomial) OneZeroModel predict (OneZeroModel) #Platt coding dep2 <-ifelse (supp == "VC", 31/32, 1/32) plattCodeModel <-glm (dep2 ~ len, family = binomial) plattCodeModel predict (plattCodeModel) compare <-cbind (predict (OneZeroModel), predict ( plattCodeModel)) grafico (predict (OneZeroModel), predict (plattCodeModel))
B_Miner

@ user2040: 1. Sì ... c'è una domanda o è solo un'osservazione :)? 2. perché non aggiungi il codice alla domanda? Nessuna formattazione è orribile.
Steffen,

2

Un altro metodo per evitare un adattamento eccessivo che ho trovato utile è quello di adattare il modello di regressione logistica univariato all'output di convalida incrociata di esclusione dell'SVM, che può essere approssimato in modo efficiente utilizzando il limite di Span .

Tuttavia, se si desidera un classificatore che produca stime della probabilità di appartenenza alla classe, sarebbe meglio usare la regressione logistica del kernel, che mira a farlo direttamente. L'output di SVM è progettato per una classificazione discreta e non contiene necessariamente le informazioni richieste per una stima accurata delle probabilità lontano dal contorno p = 0,5.

I classificatori di processo gaussiani sono un'altra buona opzione se si desidera un classificatore probabilistico basato sul kernel.

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.