Binning ottimale rispetto a una determinata variabile di risposta


11

Sto cercando il metodo di binning ottimale (discretizzazione) di una variabile continua rispetto a una determinata variabile binaria di risposta (target) e con il numero massimo di intervalli come parametro.

esempio: ho un insieme di osservazioni di persone con variabili "height" (numeral continue) e "has_back_pains" (binarie). Voglio discretizzare l'altezza in 3 intervalli (gruppi) al massimo con una diversa proporzione di persone con mal di schiena, in modo che l'algoritmo massimizzi la differenza tra i gruppi (con determinate restrizioni, ad esempio, che ogni intervallo abbia almeno x osservazioni).

La soluzione ovvia a questo problema sarebbe quella di utilizzare gli alberi delle decisioni (un semplice modello a una variabile), ma non riesco a trovare alcuna funzione in R che abbia "numero massimo di rami" come parametro - tutti dividono la variabile in 2 gropus (<= x e> x). Il minatore SAS ha un parametro "limite massimo" ma sto cercando una soluzione non commerciale.

alcune delle mie variabili hanno solo alcuni valori univoci (e potrebbero essere trattate come variabili discrete) ma voglio anche discretizzarle in un numero minore di intervalli.

La soluzione più vicina al mio problema è implementata nel pacchetto smbinning in R (che si basa sulla funzione ctree dal pacchetto party) ma presenta due svantaggi: è impossibile impostare il numero di intervalli (tuttavia, è possibile trovare un modo per cambiarlo il parametro p) e non funziona quando il vettore di dati ha meno di 10 valori univoci. Ad ogni modo, puoi vedere l'output di esempio qui (le colonne Cutpoint e Odds sono cruciali):

Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate   Odds  LnOdds     WoE     IV
1   <= 272   9081     169   8912      9081        169      8912 0.1874  0.9814 0.0190 -3.9653 -0.6527 0.0596
2   <= 311   8541     246   8295     17622        415     17207 0.1762  0.9712 0.0297 -3.5181 -0.2055 0.0068
3   <= 335   2986     163   2823     20608        578     20030 0.0616  0.9454 0.0577 -2.8518  0.4608 0.0163
4  Missing  27852    1125  26727     48460       1703     46757 0.5747  0.9596 0.0421 -3.1679  0.1447 0.0129
5    Total  48460    1703  46757        NA         NA        NA 1.0000  0.9649 0.0364 -3.3126  0.0000 0.0956

Oh, sono pienamente consapevole che il binning provoca la perdita di informazioni e che esistono metodi migliori, ma lo userò per la visualizzazione dei dati e tratterò queste variabili come un fattore.


SPSS ha il comando di binning ottimale. Google SPSS Algorithms Optimal Binning.
ttnphns,

Hai visto questo post stackoverflow.com/questions/7018954/… menziona informazioni sull'utilizzo del valore ma non chiarisce cosa significa IV = 1 o non spiega come ottenerlo
adam

Risposte:


6

Mentre leggevo questo libro qui (Nagarajan, 2103 [1]), mi sono imbattuto in queste preziose informazioni che sto citando spudoratamente qui:

  • Utilizzo di conoscenze preliminari sui dati. I limiti degli intervalli sono definiti, per ciascuna variabile, per corrispondere a scenari del mondo reale significativamente diversi, come la concentrazione di un particolare inquinante (assente, pericoloso, letale) o le classi di età (bambino, adulto, anziano).

  • Utilizzare l'euristica prima di apprendere la struttura della rete. Alcuni esempi sono: Sturges, Freedman-Diaconis o le regole di Scott (Venables e Ripley, 2002).

  • Scegliere il numero di intervalli e i relativi limiti per bilanciare l'accuratezza e la perdita di informazioni (Kohavi e Sahami, 1996), sempre una variabile alla volta e prima che la struttura della rete sia stata appresa. Un approccio simile considerando coppie di variabili è presentato in Hartemink (2001).

  • Eseguendo l'apprendimento e la discretizzazione in modo iterativo fino a quando non viene apportato alcun miglioramento (Friedman e Goldszmidt, 1996).

Queste strategie rappresentano diversi compromessi tra l'accuratezza della rappresentazione discreta dei dati originali e l'efficienza computazionale della trasformazione.

Queste informazioni vengono fornite, nel caso in cui si desideri giustificare il metodo di binning che si desidera utilizzare e non utilizzare direttamente un pacchetto.

[1]: Nagarajan R. (2013),
Bayesian Networks in R, con Applications in Systems Biology
Springer


3

Prova il pacchetto informativo per R. https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html

Il pacchetto informativo ha funzionalità per il calcolo di WoE e IV (il numero di bin è un parametro flessibile, il valore predefinito è 10) ed è uno strumento utile per l'esplorazione dei dati e di conseguenza per il binning. L'output non contiene Odds, tuttavia; e non è possibile specificare zero come bin separato (per i miei compiti zero è spesso un bin valido a sé stante); e sarebbe bello ottenere un output dal pacchetto informativo che sarebbe come quello di smbinning. Tuttavia, detto questo sulle caratteristiche interessanti del pacchetto di informazioni, ma non ancora disponibili, altri pacchetti R per WoE e IV (guai, klaR) non hanno fatto impressione di strumenti utili come il pacchetto di informazioni, infatti I impossibile eseguirli dopo 2-3 tentativi. Per il compito di dscretisation / binning, i pacchetti di informazioni e smbinning possono lavorare bene insieme,

Per l'effettivo binning ho usato data.table invece della funzione cut (). Vedi il link al mio post qui sotto, contiene un codice generico in fondo alla domanda iniziale: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- da-un-dataframe

Spero che sia d'aiuto.


@kjetil, kjetil b halvorsen, hai ragione. Il pacchetto informativo ha funzionalità per il calcolo di WoE e IV (il numero di bin è un parametro flessibile, il valore predefinito è 10) ed è uno strumento utile per l'esplorazione dei dati e conseguente per il binning. L'output non contiene Odds, però. E non è possibile specificare zero come bin separato (per i miei compiti zero è spesso un bin valido a sé stante). Altri pacchetti R per WoE e IV (guai, klaR) non hanno fatto impressione di strumenti utili come il pacchetto informativo. Quindi il pacchetto di informazioni e smbinning può funzionare bene insieme come una combinazione.
Akonza,
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.