Guadagni:
- Capacità di definire il tipo di problema (classificazione, regressione, clustering) e criteri di successo in base al costo reale del lavoro
- Capacità di dividere i dati onestamente (senza toccare il set di test; cronologicamente nelle serie temporali) e stabilire una base di valutazione senza perdite
- Capacità di scegliere un modello interpretabile partendo da una base semplice e aggiungendo complessità solo quando lo merita.
Finora abbiamo raccolto dati, ripuliti, esplorati e prodotto funzionalità. Ora arriviamo al lavoro vero e proprio, costruendo un modello. Un modello è una struttura matematica che apprende uno schema dai dati e produce previsioni per nuove situazioni. Ma la parte più critica della costruzione di un modello non è il codice stesso, ma le due decisioni che lo precedono: definire il problema giusto e suddividere correttamente i dati. L’intelligenza artificiale è un potente consulente nella selezione degli algoritmi, nella scrittura del codice e nella messa a punto dei parametri; ma spetta a ciascuno decidere cosa prevedere e cosa significa successo. Un problema mal definito non funzionerà nemmeno con un modello scritto perfettamente.
Innanzitutto la definizione del problema: cosa prevediamo
Ogni lavoro di modellazione inizia con una domanda e questa domanda determina il tipo di modello. Classificazione: l'output è una categoria: "Questo cliente se ne andrà o resterà?", "Questa transazione è falsa?". Regressione (in inglese regressione - l'output è un numero): "Quanto vale questa casa?", "Quanti ordini arriveranno il mese prossimo?". Clustering (divisione dei dati senza etichetta in gruppi naturali): "In quanti segmenti naturali sono divisi i miei clienti?".
La seconda parte dell'enunciazione del problema è il criterio di successo: cosa significa che questo modello è "buono"? In un modello di frode, individuare un truffatore è molto più costoso che bloccare accidentalmente un cliente onesto; Pertanto, non viene messa in primo piano la "precisione generale", ma il "tasso di cattura dei truffatori". Se non definisci questo criterio dall'inizio, insieme al proprietario dell'azienda, ti ritroverai con un modello "altamente accurato" che non funziona (approfondiremo i parametri nell'Unità 7).
Attenzione: la "precisione" può essere fuorviante. Se 10 transazioni su 1000 sono fraudolente, un modello stupido che dice "nessuna è fraudolenta" fornirà una precisione del 99% ma non catturerà un singolo truffatore. Scegli i criteri di successo in base al costo reale del problema.
Suddivisione formazione/test: esame onesto del modello
Testare un modello con i dati appresi è come porre allo studente le stesse domande che ha studiato all'esame; Prende voti alti ma non mostra quello che sa veramente. Quindi dividiamo i dati in due (spesso tre):
- Set di formazione (set di formazione in inglese, solitamente 70-80%): il modello apprende da questo.
- Set di test (set di test, solitamente 20-30%): il modello non lo vede affatto; qui si misura la prestazione reale.
- Set di validazione: set intermedio utilizzato per l'impostazione del modello (quale parametro è migliore); per mantenere il set di prova "pulito".
La regola più elementare: il set di prova non viene mai toccato durante l'allenamento. Scalabilità, codifica, selezione delle funzionalità: tutto viene semplicemente appreso dal set di formazione, quindi applicato ai test (principio di perdita dall'Unità 5). Il set di prova è la prima volta che il modello vede il mondo reale; Se lo accendi troppo presto non conoscerai mai le prestazioni reali.
Eccezione per le serie temporali: se i dati dipendono dal tempo (vendite, mercato azionario, domanda), la suddivisione casuale non viene eseguita. Poiché la suddivisione casuale fa sì che il modello veda il futuro e preveda il passato, questa è una perdita. Dividi invece cronologicamente: allenati con il vecchio periodo, prova con il nuovo periodo.
Selezione dell'algoritmo: dal semplice al complesso
L'errore più comune dei principianti è iniziare con il modello più complesso. L’approccio corretto è l’opposto: innanzitutto stabilire una semplice linea di base. "indovina sempre la classe maggioritaria" in una classificazione; "stimare sempre la media" in una regressione. Questo stupido modello fornisce una linea di base; Se il tuo modello attuale non riesce a superarlo, c'è un problema. Passare poi a modelli semplici e interpretabili.
modello
Tipo di problema
punto forte
debolezza
Baseline (maggioranza/media)
entrambi
Fornisce un punto di riferimento
non impara
Regressione logistica
Classificazione
Semplice, interpretabile
Solo relazione lineare
Regressione lineare
regressione
Semplice, veloce
ipotesi lineare
albero decisionale
entrambi
interpretabile
Memorizzazioni facili
foresta casuale
entrambi
Forte, durevole
Meno interpretabile
Potenziamento del gradiente (XGBoost ecc.)
entrambi
molto forte
Difficile da adattare, rischio di memorizzazione
Regola: scegliere il modello più semplice "abbastanza buono". L’interpretabilità è più preziosa del potere nella maggior parte dei contesti aziendali; È meglio spiegare il rifiuto di un prestito “perché il rapporto debito/reddito è elevato” piuttosto che “perché lo dice la scatola nera”.
tre mini custodie
Caso 1 – Definizione errata del problema. Un team ha costruito un modello di classificazione basato su "il cliente è soddisfatto" ma ha scelto "l'accuratezza" come criterio di successo. Dai dati risulta soddisfatto l'88% dei clienti; Il modello ha ottenuto una precisione dell’88% definendo tutti “soddisfatti” e non ha mai catturato le persone insoddisfatte, anche se il vero obiettivo era trovarle. Lezione: scegliere criteri di successo basati sullo scopo reale.
Caso 2 — Perdita di tempo nel compartimento. In un progetto di previsione della domanda, i dati sono stati suddivisi in modo casuale. Il modello ha fornito una precisione del 93%, ma si è bloccato in produzione perché durante l’addestramento aveva previsto gennaio, poi novembre, con i dati di dicembre: aveva visto il futuro. Passando alla divisione cronologica, la performance effettiva è aumentata al 74%. Lezione: divisione cronologica in serie temporali.
Caso 3 – Complessità non necessaria. Un analista ha iniziato direttamente con una rete neurale profonda, l’ha ottimizzata per settimane e ha ottenuto una precisione dell’81%. Poi un collega ha ottenuto l'80% con 20 linee di regressione logistica: molto più veloci, interpretabili e più facili da mantenere. Lezione: iniziare con una linea di base e un modello semplice, aggiungere complessità quando lo merita.
Quattro modelli copiabili
1) Chiarire la definizione del problema:
Il tuo ruolo: consulente di modellistica. Aiutami a definire questo lavoro: "Voglio ridurre il tasso di abbandono dei clienti". Chiedetemi e chiarite: (1) si tratta di una classificazione o regressione, (2) qual è esattamente la variabile target e come dovrebbe essere definita, (3) quali dovrebbero essere i criteri di successo e perché. La decisione è mia; presenti le domande e le opzioni.
2) Vano di formazione/test sicuro:
Dividi il mio df in formazione/test 80%/20%. Mantieni la distribuzione delle classi (stratify).random_state=42. Questa NON è una SERIE TEMPORALE (osservazioni indipendenti). Stampa il rapporto di classe di ciascun set dopo la divisione. Basta fornire il codice di suddivisione al set di test senza applicare alcuna trasformazione.
3) Divisione cronologica delle serie temporali:
I dati dipendono dal tempo (colonna della data: order_date). NON casuale, dividere cronologicamente: 80% formazione più vecchia, 20% test più recenti. Stampa gli intervalli di date della formazione e dei test in modo da poter verificare che il futuro non sia trapelato.
4) Impostazione di una linea di base:
Ho un problema di classificazione (obiettivo: abbandono 0/1). Stabilire innanzitutto una linea di base: misurare l'accuratezza dell'addestramento/test con DummyClassifier, che prevede sempre la classe maggioritaria. Quindi addestra una semplice regressione logistica e confronta se supera la linea di base. Mostra le metriche dei due fianco a fianco.
Prompt debole / Prompt forte
Suggerimento debole:
Costruisci il modello migliore con questi dati.
"Migliore" non è definito; Non esiste alcun tipo di problema, nessun obiettivo, nessun criterio di successo e nessuna strategia di divisione. L'intelligenza artificiale genera uno schema casuale, possibilmente permeabile.
Suggerimento potente:
Il tuo ruolo: assistente modella. Problema: classificazione, target "abbandono" (0/1), c'è uno squilibrio di classe (~12% di abbandono). Criterio di successo: ricordare coloro che abbandonano è una priorità. Osservazione indipendente dai dati (non serie temporali). Attività: (1) suddivisione stratificata 80/20%, (2) linea di base DummyClassifier, (3) regressione logistica, tutte le trasformazioni in pipeline e apprese solo dalla formazione. Non toccare il set di prova prima di dividerlo.
Qui il tipo di problema, lo squilibrio, il criterio e la misura delle perdite sono chiari.
Errori comuni
- Non scegliere i criteri di successo in base allo scopo reale. La "precisione" nei dati sbilanciati è fuorviante; Se si vuole catturare la classe minoritaria, il richiamo viene alla ribalta.
- Toccando il set di prova durante l'allenamento. Eseguire il ridimensionamento/codifica prima della suddivisione genera perdite e nasconde le prestazioni reali.
- Suddivisione casuale in serie temporali. Il modello vede il futuro, crolla nella produzione; La divisione cronologica è essenziale.
- Entrare in un modello complesso senza stabilire una linea di base. Senza benchmark non puoi sapere se un modello è davvero buono oppure no.
- Ignorando l'interpretabilità. Nelle decisioni aziendali, un modello semplice e spiegabile è spesso più prezioso di una scatola nera.
Suggerimento: prima di iniziare a costruire un modello, scrivi una frase: "Questo modello prevederà _____, il suo successo sarà misurato dalla metrica _____, perché il costo reale del lavoro è _____." Se non riesci a compilare questa frase, non sei ancora pronto per scrivere il codice.
In sintesi
La parte più critica della costruzione di un modello non è il codice, ma le decisioni che lo precedono: definire il problema giusto (classificazione o regressione, qual è l'obiettivo, qual è il criterio di successo) e suddividere equamente i dati (senza toccare il set di test; cronologico nelle serie temporali). Inizia sempre con una linea di base semplice e aggiungi la complessità solo quando lo merita; nella maggior parte dei contesti aziendali l’interpretabilità è più importante del potere. L’intelligenza artificiale è un potente consigliere nella selezione e nel codice degli algoritmi, ma è l’essere umano a decidere cosa prevedere e perché.
Compito dell'applicazione
Definire un problema di previsione e completare per iscritto la seguente frase: "Questo modello predirà ___ (classificazione/regressione), l'obiettivo è ___, il criterio di successo è ___ perché ___." Quindi dividi i dati con la giusta strategia (cronologica se si tratta di una serie temporale), stabilisci una linea di base e misura se un modello semplice rompe quella linea di base.
lista di controllo
- [ ] Ho definito chiaramente il tipo di problema (classificazione/regressione) e l'obiettivo?
- [ ] Ho scelto i criteri di successo in base al costo effettivo del lavoro?
- [ ] Ho lasciato intatto il set di test durante l'allenamento?
- [ ] Se si tratta di una serie storica, l'ho divisa cronologicamente?
- [ ] Ho stabilito una linea di base prima di passare al modello complesso?