Come eseguire l'analisi dei dati esplorativi per scegliere l'algoritmo di apprendimento automatico appropriato


16

Stiamo studiando l'apprendimento automatico tramite l'apprendimento automatico: una prospettiva probabilistica (Kevin Murphy). Mentre il testo spiega le basi teoriche di ciascun algoritmo, raramente dice in quale caso quale algoritmo è migliore, e quando lo fa, non dice come dire in quale caso mi trovo.

Ad esempio, per la scelta del kernel, mi è stato detto di fare analisi esplorative dei dati per valutare la complessità dei miei dati. In semplici dati bidimensionali, posso tracciare e vedere se un kernel lineare o radiale è appropriato. Ma cosa fare nella dimensione superiore?

Più in generale, cosa significano le persone quando dicono "conoscere i tuoi dati" prima di scegliere un algoritmo? In questo momento posso solo distinguere l'algoritmo di classificazione vs regressione e algoritmo lineare vs non lineare (che non posso controllare).

EDIT: Anche se la mia domanda originale riguarda la regola empirica universale, mi è stato chiesto di fornire maggiori informazioni sul mio problema specifico.

Dati: un pannello con ogni riga che corrisponde a un mese di paese (~ 30.000 righe in totale, che copre ~ 165 paesi per ~ 15 anni).

Risposta: 5 variabili binarie di interesse (cioè se protesta / colpo di stato / crisi, ecc. Accadono in quel mese).

Caratteristiche: ~ 400 variabili (un mix di continue, categoriche, binarie) che descrivono in dettaglio un mucchio di caratteristiche dei 2 mesi precedenti del paese (è possibile creare un ritardo più lungo). Utilizziamo solo variabili ritardate poiché l'obiettivo è la previsione.

Gli esempi includono, tasso di cambio, crescita del PIL (continua), livello di stampa libera (categorica), democrazia, se il vicino ha un conflitto (binario). Nota che molte di queste 400 funzionalità sono variabili ritardate.

Risposte:


15

Questa è una domanda ampia senza una risposta semplice. A CMU ho insegnato a 3 mesi corso su questo argomento. Ha riguardato questioni come:

  1. Utilizzo delle proiezioni per comprendere la correlazione tra variabili e struttura distributiva complessiva.
  2. Come costruire un modello di regressione modellando successivamente i residui.
  3. Determinare quando aggiungere termini di interazione non lineari a un modello lineare.
  4. Come decidere tra knn vs. un albero decisionale vs. un classificatore logistico. Ho esaminato una serie di set di dati UCI e ho mostrato come si poteva capire quale classificatore avrebbe vinto prima di eseguirli.

Purtroppo, non ci sono video o libri di testo per il corso, ma ho tenuto un discorso che sintetizza i punti principali della lezione. Non sono a conoscenza di alcun libro di testo che copra lo stesso terreno.


Mi prenderò un giorno o due per digerire questi materiali utili, ma mentre ho la tua attenzione: perché non abbiamo un libro di testo / risorsa che tratta questo argomento? Non è importante poiché ogni volta che qualcuno si impegna in un progetto deve pensare a questa domanda?
Heisenberg,

1
Bella domanda (+1) e risposta (+1). @Heisenberg: concordo con Tom nel non aver visto un libro di testo specifico sull'argomento. Tuttavia, oltre alle sue risorse, suggerirei due risorse online (nonostante non si concentrino su applicazioni ML): 1) la sezione EDA del Manuale di statistica ingegneristica NIST; 2) un interessante articolo del Prof. Andrew Gelman sull'EDA per modelli complessi.
Aleksandr Blekh,

0

Ci sono alcune cose che puoi controllare nei tuoi dati.

1 - correlation between variables
2 - categorical variables or continuous variables?
3 - relation between number of samples and number of variables
4 - are the samples independent or is it a time series? 

In base a questi punti e al tipo di informazioni che desideri estrarre dai tuoi dati, puoi decidere quale algoritmo utilizzare.


Potresti elaborare in che modo ciascuna di queste 4 informazioni influenza la mia scelta dell'algoritmo? So solo che 2 deciderà la classificazione contro la regressione. E gli altri 3? (soprattutto n. 4 - Ho dati panel di 165 paesi in 10 anni)
Heisenberg,

In 2- stavo pensando alle variabili categoriali come input. La decisione finale sull'algoritmo dipende dal problema che si sta tentando di risolvere. Ora c'è modo di saperlo prima. In 2- forse un albero decisionale può aiutarti. In 3 devi stare attento al sovradimensionamento. In 4- devi decidere come valutare le tue prestazioni. Solo se spieghi un problema specifico, possiamo aiutarti a decidere quale algoritmo usare.
Donbeo,

Ho modificato la mia domanda per maggiori dettagli sul mio problema specifico.
Heisenberg,
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.