Unità 2 / 11

Raccolta dati e comprensione della fonte: schema, campionamento, qualità e consapevolezza delle perdite

Guadagni:

  • Capacità di riconoscere diverse origini dati (database, API, file, web scraping) e le insidie di ciascuna e di comprendere correttamente lo schema
  • Capacità di eseguire un campionamento ripetibile valutando se il campione rappresenta la popolazione e la capacità di selezione
  • Capacità di eliminare la fuga di dati nella fase di raccolta e di rispettare i limiti legali/etici ponendo la domanda "Li avrò al momento della previsione" in ciascuna colonna?

Ogni analisi è buona quanto la qualità dei dati raccolti. Anche il modello più avanzato al mondo produrrà risultati inaffidabili se funziona con dati raccolti in modo errato, campionati in modo distorto o contenenti informazioni sul futuro. In informatica questo principio è riassunto come “garbage in, garbage out” (garbage in, garbage out). In questa unità tratteremo la fase di raccolta dei dati: comprendere la fonte, campionare, porre domande sulla qualità ed essere attenti al rischio di fuga di dati fin dal primo giorno. L’intelligenza artificiale è un potente aiuto in questa fase; Scrive query SQL, riepiloga il documento API, redige il contratto dati. Ma è l’essere umano che decide quali dati raccogliere e se quei dati ti rappresentano.

Conoscere le fonti dei dati

I dati provengono da luoghi diversi e ciascuna fonte presenta le proprie insidie. Il database (dati strutturati archiviati in tabelle, solitamente interrogati con SQL) è la fonte più comune; È affidabile, ma è necessario comprenderne bene lo schema. L'API (Application Programming Interface) fornisce dati in tempo reale ma comporta il rischio di limiti di velocità e modifiche al formato. I file (CSV, Excel, JSON) sono flessibili ma soggetti a incoerenze di formato. Il web scraping è potente, ma ha limiti legali ed etici; Non tutti i siti possono essere raschiati.

Attenzione: per il web scraping e la raccolta automatica dei dati, rispettare i termini di utilizzo del sito, il file robots.txt e KVKK/GDPR. La raccolta non autorizzata dei dati crea responsabilità legale. Nel contesto della sicurezza delle informazioni, utilizzare gli strumenti di raccolta dati solo sui sistemi per i quali sei autorizzato e per scopi di difesa/analisi; È vietato l'accesso non autorizzato o lo scraping.

Comprendere lo schema: conoscere i dati

Prima di raccogliere un set di dati, è necessario comprenderne lo schema (i nomi delle colonne, i tipi di dati, i significati e le relazioni reciproche). L'intelligenza artificiale è molto utile in questo caso per creare un "dizionario dei dati": una tabella che spiega il significato di ciascuna colonna. Ma le spiegazioni prodotte dall’intelligenza artificiale sono previsioni; Conferma il vero significato di ciascuna colonna con il team che ha prodotto i dati. Ad esempio, una colonna denominata "status" potrebbe contenere 0/1/2; Solo il team che li ha originati sa se questi sono "in sospeso/approvati/annullati" o qualcos'altro.

La tabella seguente riepiloga i tipi di risorse di base e le avvertenze:

Fonte

punto forte

trappola

Come aiuta l'intelligenza artificiale

Base di dati SQL

Strutturale, affidabile

JOIN complessi

Scrive una bozza di query

API

dati in tempo reale

Limite di velocità, cambio di forma

Riepiloghi dei documenti, codice pull

CSV/Excel

Flessibile, veloce

Incoerenza del formato

Leggere/analizzare il codice

raschiamento del web

Ampia portata

Limite legale/etico

Bozza di analisi (all'interno dell'autorità)

Dati di registro/evento

dettagliato

volume enorme

Query di filtraggio

Illustrazione: la parte rappresenta il tutto?

Nella maggior parte dei casi si lavora con un campione (un sottoinsieme selezionato dalla popolazione) anziché con l'intero dato. La domanda cruciale è: questo campione rappresenta la popolazione? Il bias di selezione è la trappola più comune. Ad esempio, se campioni solo gli utenti dell'app mobile, non vedrai gli utenti Web e i risultati saranno fuorvianti. Il campionamento casuale (ogni record ha la stessa probabilità di essere selezionato) è il più sicuro nella maggior parte dei casi; ma nei dati delle serie temporali, la suddivisione viene effettuata in modo cronologico anziché casuale (lo vedremo nelle Unità 7 e 10).

Perdita di consapevolezza fin dal primo giorno

La fuga di dati è la fonte della maggior parte dei disastri e di solito si verifica durante la fase di raccolta dei dati. Esempio: quando si prevede "è stato annullato", se si aggiunge la colonna "data di annullamento" ai dati, il modello guarda al futuro. Durante la fase di raccolta, poni una domanda per ogni colonna: “Avrò effettivamente queste informazioni nel momento in cui farò la previsione?” Se la risposta è no, quella colonna perde informazioni. Tratteremo questo argomento in modo approfondito nell'Unità 10; Ma la consapevolezza dovrebbe iniziare dal primo giorno.

tre mini custodie

Caso 1 — Il problema della rappresentanza. Una banca ha raccolto dati solo sui prestiti approvati per il suo modello di rischio di credito (18.500 registrazioni). I rifiuti non erano nei dati. Il modello era sbagliato nel mondo reale perché non prevedeva mai come si sarebbero comportati gli scarti. Lezione: il campione dovrebbe essere rappresentativo dell'intera popolazione da cui prendi la decisione.

Caso 2 – Cambiamento silenzioso della forma. Ogni giorno un team estraeva i dati sui prezzi da un'API. Un giorno il fornitore API ha cambiato la valuta da USD a EUR, ma il nome del dominio è rimasto lo stesso. I dati sono stati raccolti nell'unità sbagliata per 12 giorni; 3.200 linee erano danneggiate. Lezione: verificare regolarmente la coerenza del volume e del formato nei dati API.

Caso 3 — Perdita precoce. Un analista ha incluso la colonna "motivo della chiusura dell'account" durante la raccolta dei dati per una stima del "abbandono". Questa colonna è stata riempita solo dopo che il cliente se n'è andato. Il modello ha prodotto una precisione del 97% sul set di test; Non ha funzionato in produzione perché la colonna era vuota al momento della previsione. Lezione: porre ad ogni colonna la domanda "ce l'ho al momento del pronostico?"

Quattro modelli copiabili

1) Estrazione del dizionario dati:

Il tuo ruolo: assistente data scientist. Di seguito sono riportati i nomi delle colonne e i valori di esempio (anonimi) di una tabella. Per ogni colonna, elenca il significato stimato, il tipo di dati e i potenziali rischi per la qualità in una tabella. Contrassegna le colonne di cui non sei sicuro come "conferma richiesta"; creazione di significato.Colonne: [incolla qui]

2) Codice di campionamento (casuale, ripetibile):

Ho dei panda df. Scrivi il codice che estrae un campione casuale rappresentativo del 5% da 200.000 righe. Utilizzare random_state=42 (per riproducibilità). Aggiungi codice per verificare che la distribuzione delle classi del campione sia simile a quella della popolazione.

3) Domanda sulla scansione delle perdite:

Ti darò questo elenco di colonne. Il mio obiettivo è pronosticare "viene annullato" (0/1). Per ogni colonna valuto se effettivamente la avrò al momento della previsione e la contrassegno come “sicura/sospetta/perdita”. Scrivi la tua motivazione in una frase. Colonne: [elenco]

4) Bozza della query pull SQL:

Ho tabelle "ordini" e "clienti" in PostgreSQL. Scrivi una query JOIN che combini gli ordini degli ultimi 90 giorni con la città del cliente e restituisca l'importo totale e il numero di ordini per città. Spiegare il filtro della data e come vengono gestite le città NULL. Eseguirò la query e la verificherò.

Prompt debole / Prompt forte

Suggerimento debole:

Prendimi un buon campione di dati da questo database.

"Buono" è ambiguo; Quale dipinto, quale periodo, quale dimensione, quale scopo non è chiaro. L'intelligenza artificiale produrrà solo una query generica, forse sbagliata.

Suggerimento potente:

Il tuo ruolo: assistente SQL. Ho una tabella "transazioni": colonne id, customer_id, data (timestamp), importo (numerico), canale (testo: 'web'/'mobile'). Attività: scrivere una query ripetibile (deterministica con ORDER BY) che restituisca 10.000 righe rappresentative da ciascun canale per l'anno 2024. Scopo: analisi comparativa dei canali. Elenca i presupposti della tua query.

Qui la tabella, lo scopo, le dimensioni e la ripetibilità sono chiari.

Errori comuni

  • Non mettere in discussione la rappresentatività del campione. I dati facilmente accessibili non sono dati accurati; il bias di selezione distorce il risultato.
  • Adattare i significati delle colonne all'intelligenza artificiale. Il team di origine conosce il significato; Non utilizzare la previsione AI senza confermarla.
  • Impossibile monitorare la modifica del formato/unità dell'API. Il cambiamento silenzioso raccoglie dati corrotti per giorni.
  • Ignorare la perdita in fase di raccolta. Se la domanda "Ce l'ho al momento della previsione" non viene posta in anticipo, il modello darà un falso successo.
  • Raccolta di dati non autorizzati o illegali. La violazione di robots.txt, termini di utilizzo e KVKK rappresenta un rischio serio.
Suggerimento: conserva una "scheda dati" di una pagina per ogni nuova origine dati: origine, data di estrazione, numero di righe, limiti noti e colonne a rischio di perdita. Questa scheda salva la domanda "quali erano questi dati" e la riproducibilità mesi dopo.

In sintesi

La qualità dell’analisi è limitata dalla qualità dei dati raccolti. Conoscere bene la fonte (database, API, file, scrape) e lo schema; assicurarsi che il campione sia rappresentativo della popolazione; Elimina le perdite fin dal primo giorno chiedendo a ciascuna colonna "ce l'ho al momento della previsione?" L’intelligenza artificiale è un grande acceleratore per il lavoro su query e documenti, ma gli esseri umani decidono quali dati raccogliere e la loro rappresentatività. I limiti di autorità, legge e riservatezza vengono sempre al primo posto.

Compito dell'applicazione

Scegli un'origine dati (della tua attività o ipotetica). Ottieni una bozza di un dizionario dati da AI con il modello di "estrazione dizionario dati" sopra; Quindi valuta manualmente ciascuna colonna per vedere se è trapelata. Prova a trovare almeno una colonna sospetta/perdita di dati e scrivi in ​​una frase il motivo per cui è rischioso.

lista di controllo

  • [ ] Ho confermato l'origine dati e lo schema con il team di origine?
  • [ ] Ho verificato che il campione sia rappresentativo della popolazione?
  • [ ] Ho posto in ogni colonna la domanda "lo avrò al momento del preventivo?"
  • [ ] Ho reso il campionamento ripetibile (seme fisso)?
  • [ ] Ho controllato i limiti legali/etici (authority, robots.txt, KVKK) di raccolta?