Come costruire un modello predittivo

Contenuti

Panoramica

  • Gli hackathon prevedono la costruzione di modelli predittivi in un breve periodo di tempo.
  • La fase di pre-elaborazione dei dati occupa la maggior parte del tempo condiviso durante la creazione di un modello
  • Altri passaggi includono l'analisi descrittiva, Modellazione dei dati e valutazione delle prestazioni del modello.

introduzione

Negli ultimi mesi, Abbiamo iniziato a fare data science. hackatones. Questi hackathon sono concorsi con un ostacolo di dati ben definito., che dovrebbe essere risolto in breve tempo. Generalmente, ultimo tra 2 e 7 giorni.

Se le gare di un mese a Kaggle sono come le maratone, Quindi questi hackathon sono un formato più breve del gioco: 100 mts Sprint. Sono eventi ad alta energia in cui i data scientist portano molta energia., la classifica cambia quasi ogni ora e la velocità per risolvere il problema della scienza dei dati è molto più importante delle competenze di Kaggle.

Modello predittivo, Dieci minuti, Presto

Uno dei migliori consigli che posso offrire ai data scientist che partecipano a questi hackathon (o anche in competizioni più lunghe) è quello di creare rapidamente la prima soluzione e inviarla. Le prime presentazioni dovrebbero essere molto veloci. Ho creato moduli in Python e R che possono includere dati tabulari e il nome della variabile di destinazione e BOOM! Ho il mio primo modello in meno di 10 minuti (supponendo che i tuoi dati abbiano più di 100,000 osservazioni). Per set di dati più piccoli, Questo può essere ancora più veloce. Il motivo per spedire questa soluzione ultraveloce è quello di creare un punto di riferimento per te dove devi migliorare.. Parlerò della mia metodologia in questo post.

Ripartizione della procedura di modellazione predittiva

Comprendere le aree strategiche, Analizziamo innanzitutto la procedura di analisi predittiva nelle sue componenti essenziali. All'incirca, può essere suddiviso in 4 parti. Ogni componente richiede x quantità di tempo per l'esecuzione. Valutiamo questi aspetti n (con il tempo trascorso):

  1. Analisi descrittiva dei dati: 50% tempo metereologico
  2. Elaborazione dati (Valore perso e correzione dei valori anomali): 40% tempo metereologico
  3. Modellazione dei dati: 4% tempo metereologico
  4. Stima delle prestazioni: 6% tempo metereologico

Nota: Le percentuali si concentrano su un campione di 40 Competenze, a cui ho partecipato in passato (arrotondato).

Ora sappiamo dove dobbiamo ridurre i tempi. Andiamo per gradi nella procedura (con tempo stimato):

1.Analisi descrittiva : Quando ho iniziato la mia carriera nell'analisi, Costruivamo principalmente modelli basati su Logistic Regression e Decision Tree. La maggior parte dell'algoritmo che abbiamo usato riguardava algoritmi avidi, che può sottocombinare il numero di funzionalità su cui devo concentrarmi.

Con strumenti avanzati di machine learning in esecuzione, Il tempo necessario per eseguire questa attività può essere significativamente ridotto. Per l'analisi iniziale, Probabilmente non è necessario eseguire alcun tipo di ingegneria delle funzioni. Perché, Il tempo necessario per eseguire un'analisi descrittiva è limitato alla conoscenza dei valori mancanti e delle grandi caratteristiche direttamente visibili. Nella mia metodologia, Bisogno 2 minuti Per completare questo passaggio (Suppongo un fatto con 100.000 osservazioni).

2.Elaborazione dati : Poiché questo è considerato il passaggio più dispendioso in termini di tempo, Dobbiamo trovare tecniche intelligenti per completare questa fase. Ecco due semplici trucchi che puoi mettere in pratica:

  • Creare indicatori fittizi per i valori mancanti: generalmente, Ho scoperto che i valori mancanti nella variabile a volte contengono anche una buona quantità di informazioni.. Come esempio, Se stai analizzando i dati clickstream, Probabilmente non avrai molti valori in variabili specifiche corrispondenti all'utilizzo del dispositivo mobile.
  • Imputare il valore mancante con la media / qualsiasi altro metodo più facile: Ho trovato che 'cattivo’ Funziona bene per la prima iterazione. Solo nei casi in cui vi sia una tendenza evidente proveniente dall'analisi descrittiva, Probabilmente hai bisogno di un metodo più intelligente.

Con metodi così semplici di elaborazione dei dati, può ridurre il tempo di elaborazione dei dati per 3-4 minuti.

3. Modellazione dei dati : Ho scoperto che GBM è estremamente efficace per 100.000 Casi di osservazione. In caso di dati di grandi dimensioni, È possibile prendere in considerazione l'esecuzione di una foresta casuale. Questa operazione richiederà la massima quantità di tempo (~ 4-5 minuti)

4. Stima delle prestazioni : Incontro k-fold con k = 7 Molto efficace per accettare la mia scommessa iniziale. Questo in conclusione prende 1-2 minuti Esecuzione e documento.

La ragione per costruire questo modello non è vincere la competizione, ma per determinare un punto di riferimento per noi stessi. Permettetemi di scavare più a fondo nel mio algoritmo. Ho anche incluso alcuni frammenti del mio codice in questo post.

Iniziamo a metterlo in pratica

Non includerò tutte le mie funzionalità per darti spazio per innovare. Ecco uno scheletro del mio algoritmo (un R):

passo 1 : Aggiungere il set di dati di test ed eseguire il training insieme

passo 2 : Leggi il set di dati nella tua memoria

set("C:UtentiTavishDesktopKaggAV")
Completo <- leggi.csv("complete_data.csv", stringsAsFactors = VERO)

passo 3: Visualizzare i nomi delle colonne / Riepilogo del set di dati

colnames(Completo )
[1] "ID" "Genere" "Città"  "Monthly_Income" "Sborsato" "treno"

passo 4: Identificare la a) Variabile numerica b) Variabili di identificazione c) Variabili del fattore D) Variabili di destinazione

passo 5 : Creare contrassegni per i valori persi

missing_val_var <- funzione(dati,variabile,new_var_name) {
data$new_var_name <- ifelse(is.na(variabile),1,0))
Restituzione(data$new_var_name)}

passo 6 : Imputare valori numerici mancanti

numeric_impute <- funzione(dati,variabile) {
media1 <- Significare(data$variable)
data$variable <- ifelse(is.na(data$variable),mean1,data$variable)
Restituzione(new_var_name)
}

Equivalentemente, imputare una variabile categorica in modo che tutti i valori mancanti siano codificati come un singolo valore, Dillo “Nullo”.

passo 7 : Passa la variabile imputata alla routine di modellazione.

#Sfida: prova a integrare una metodologia K-fold in questo passaggio

create_model <- funzione(trainData,obbiettivo) {
set.seme(120)
myglm <- glm(Bersaglio~ . , data=trainData, famiglia = "binomiale")
Restituzione(myglm) }

passo 8 : Fai previsioni

punto <- prevedere(myglm, newdata = testData, tipo = "risposta")
score_train <- prevedere(myglm, newdata = completo, tipo = "risposta")

passo 9 : Controllare le prestazioni

Auc(completato$Erogato,score_train)

E invia!!

Note finali

Auspicabilmente, Questo post ti avrà dato abbastanza motivazione per creare il tuo codice di punteggio per 10 minuti. La maggior parte degli insegnanti di Kaggle e dei migliori scienziati nei nostri hackathon hanno questi codici pronti e girano la loro prima presentazione prima di fare un'analisi dettagliata.. Una volta che hanno una stima del benchmark, Iniziano a improvvisare di più. Condividi i tuoi codici completi nella casella dei commenti qui sotto.

Questo post è stato utile?? Condividi le tue opinioni / pensieri nella sezione commenti qui sotto.

Se ti piace quello che hai appena letto e vuoi continuare a imparare l'analisi, iscriviti alle nostre email, Seguici su Twitter o come il nostro pagina Facebook.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.