English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ospite
1 / ?
torna alle lezioni

Cos'è la Data Science? [BLOCK_TYPE SECTION/STEP]

La data science non è solo machine learning. Non è solo statistica. Non è solo programmazione. [BLOCK_TYPE SECTION/STEP]

La data science è la disciplina di estrarre conoscenza utile dai dati. La maggior parte di questo lavoro non è glamorous: è pulire spreadsheets disordinati, fare le domande giuste, e comunicare i risultati a persone che non si interessano al tuo codice. [BLOCK_TYPE SECTION/STEP]

Data Science Pipeline [BLOCK_TYPE SECTION/STEP]

Il tipico data science pipeline si presenta così:

1. Collect: raccogliere dati grezzi da database, API, CSV o web scraping

2. Clean: gestire i valori mancanti, correggere i tipi, rimuovere i duplicati

3. Explore: visualizzare distribuzioni, trovare pattern, porre domande

4. Engineer: creare nuove feature che aiutino i modelli a imparare

5. Model: addestrare algoritmi, valutare le prestazioni, iterare

6. Communicate: presentare i risultati agli stakeholder che prendono le decisioni

Se hai mai usato le tabelle pivot di Excel, la formattazione condizionale o VLOOKUP, hai già svolto i passi 1-3. Questa lezione ti fa passare dall'esperienza che hai già al workflow basato su Python che si usa in industria.

Warm-Up

La tua esperienza con i dati

Tutti hanno lavorato con i dati in qualche forma: un foglio di calcolo per il budget, un tracker dei voti, un'app per il fitness, persino una playlist con il conteggio delle riproduzioni.

Descrivi un momento in cui hai lavorato con i dati in un foglio di calcolo o in un'app. Cosa cercavi di capire, e i dati ti hanno dato la risposta?

Garbage In, Garbage Out

Perché la Pulizia è Importante

I data scientist dedicano il 60-80% del loro tempo alla pulizia dei dati. Non è un'esagerazione: è un risultato costante emerso da indagini di settore.

Il motivo è semplice: garbage in, garbage out. Se i tuoi dati contengono errori, valori mancanti o formati inconsistenti,那么 ogni analisi costruita su di essi sarà sbagliata. Un modello perfetto formato su dati sporchi produce risposte sbagliate con convinzione.


Problemi Comuni nei Dati

- Valori mancanti: le celle sono vuote. Il dato non è stato raccolto,还是 il valore è effettivamente zero? Queste sono situazioni diverse che richiedono un trattamento diverso.

- Tipi di dati errati: una colonna di numeri memorizzata come testo, date in formati inconsistenti (01/02/2024: è il 2 gennaio o il 1° febbraio?)

- Outlier: una colonna di stipendi ha un valore di $1.000.000.000. È reale, o è un errore di battitura? In ogni caso, distortirà le medie.

- Duplicati: lo stesso record appare due volte perché due sistemi si sono uniti in modo imperfetto

- Codifica categorica: una colonna contiene 'Yes', 'yes', 'Y', 'TRUE' e '1'. Tutti questi valori significano la stessa cosa, ma il computer non lo sa.


In pandas (la libreria standard di Python per i dati), questi problemi si gestiscono con metodi come dropna(), fillna(), astype() e drop_duplicates(). Ma la parte difficile non è il codice: è decidere cosa fare con ogni problema.

Problemi Comuni nei Dati

Decisioni di Pulizia

Decidere Cosa Fare

Ecco uno scenario reale. Hai un dataset di 10.000 record di clienti. La colonna 'age' ha 500 valori mancanti.

Le tue opzioni:

- Elimina le righe: rimuovi tutti i 500 record. Semplice, ma perdi il 5% dei tuoi dati. Se quei 500 clienti condividono un tratto comune (magari hanno saltato il campo età perché sono attenti alla privacy), eliminare questi record introduce un bias.

- Riempi con la media: sostituisci i valori mancanti con l'età media. Veloce, ma riduce artificialmente la varianza della colonna età.

- Riempi con la mediana: migliore della media se la distribuzione dell'età è asimmetrica (pochi clienti molto vecchi o molto giovani che influiscono sulla media).

- Usa un flag: crea una nuova colonna chiamata 'age_missing' (1 o 0) e riempi il valore originale con la mediana. Ora il tuo modello può imparare se la mancanza di valori è informativa.

Non esiste una risposta giusta per tutti. La scelta dipende dal motivo per cui i dati sono缺失 & da cosa hai intenzione di fare con essi.

Hai un dataset di stipendi dei dipendenti. 200 su 5.000 record hanno valori di stipendio mancanti. Hai notice che la maggior parte dei valori mancanti provengono da executive. Scegliesti di eliminare queste righe, riempi con la media, o fare qualcos'altro? Spiega il tuo ragionamento.

Fare le Giuste Domande

Analisi Esplorativa dei Dati (EDA)

Prima di costruire qualsiasi modello, devi capire i tuoi dati. L'EDA è il processo di sintesi, visualizzazione e interrogazione di un dataset per trovare pattern, anomalie e relazioni.


Strumenti Chiave

- Istogrammi: mostrano la distribuzione di una singola variabile. È a forma di campana? Asimmetrica? Bimodale (due picchi)? Un istogramma del reddito è sempre asimmetrico a destra perché poche persone guadagnano molto di più della maggioranza.

- Grafici a dispersione: mostrano la relazione tra due variabili. Le persone più alte pesano di più? Più tempo di studio si correlano con voti più alti? Il pattern (o l'assenza di pattern) ti dice se esiste una relazione.

- Correlazione: un numero tra -1 e +1 che misura l'associazione lineare. +1 significa relazione positiva perfetta, -1 significa relazione negativa perfetta, 0 significa nessuna relazione lineare. Ma la correlazione non implica causalità: le vendite di gelato e i morti per annegamento sono correlati perché entrambi aumentano d'estate.

- Statistiche descrittive: media, mediana, deviazione standard, min, max. In pandas: df.describe() ti li gibt in una sola riga.


La Vera Abilità

Gli strumenti sono facili da imparare. La parte difficile è fare le domande giuste. Domanda sbagliata: 'Cosa dicono i dati?' Domanda buona: 'I clienti che contattano il supporto entro la prima settimana hanno tassi di retention più alti?'

EDA Tools

Trappola della Correlazione

Correlazione vs. Causalità

Questo è il concetto più importante nella data literacy. Due variabili possono essere fortemente correlate senza che una causi l'altra.

Esempi classici:

- Le città con più vigili del fuoco hanno più incendi. (Le città più grandi hanno entrambi.)

- Gli studenti che fanno colazione ottengono voti migliori. (Forse le famiglie più agiate hanno più probabilità di fornire la colazione E il supporto accademico.)

- I Paesi che consumano più cioccolato vincono più Premi Nobel. (Entrambi correlano con la ricchezza nazionale.)

Il fattore nascosto si chiama variabile confondente: una terza variabile che influenza entrambe quelle che stai osservando.

Correlation vs. Causation

Un'azienda scopre che i dipendenti che usano la palestra aziendale hanno il 30% in meno di giorni di malattia. L'amministratore delegato vuole obbligare tutti i dipendenti a usare la palestra. Cosa c'è di sbagliato in questo ragionamento? Quali variabili confondenti potrebbero spiegare la correlazione?

Creazione di Variabili Utili

Cos'è il Feature Engineering?

Una feature è una variabile di input che un modello usa per fare previsioni. Il feature engineering è l'arte di creare nuove feature dai dati grezzi per aiutare i modelli a imparare pattern che altrimenti non potrebbero vedere.

I dati grezzi raramente arrivano nella forma di cui i modelli hanno bisogno. Considera un dataset con una colonna 'data di nascita'. Un modello non può fare molto con le date grezze. Ma se crei una feature 'età' da essa, il modello può improvvisamente imparare pattern basati sull'età.


Tecniche Comuni

- Normalizzazione: scalare i numeri in un intervallo comune (0 a 1, o media=0 e deviazione standard=1). Senza di essa, una feature misurata in migliaia (stipendio) dominerà una feature misurata in cifre singole (anni di esperienza).

- One-hot encoding: convertire le variabili categoriche in colonne binarie. Una colonna 'color' con valori [red, blue, green] diventa tre colonne: 'color_red', 'color_blue', 'color_green', ciascuna con 0 o 1.

- Binning: trasformare una variabile continua in categorie. L'età 0-17 diventa 'minor', 18-64 diventa 'adult', 65+ diventa 'senior'. Questo aiuta quando la relazione non è线性的.

- Feature di interazione: moltiplicare due feature insieme. 'Metri quadri per numero di bagni' potrebbe prevedere il prezzo della casa meglio di ciascuna da sola.

- Conoscenza del dominio: la tecnica più potente. Un medico che crea feature per un modello medico sa quali valori di laboratorio sono重要的. Un marketer sa che 'giorni dall'ultimo acquisto' è più utile di 'data di acquisto'. Nessun algoritmo può sostituirla.

Tecniche di Feature Engineering

Pratica sulle Feature

Applicazione della Feature Engineering

Immagina di costruire un modello per prevedere quali clienti cancelleranno il loro abbonamento a streaming il prossimo mese. I tuoi dati grezzi includono:

- Data di creazione dell'account

- Data dell'ultimo accesso

- Numero di show guardati il mese scorso

- Importo del pagamento mensile

- Ticket di assistenza clienti aperti

- Paese

Dai dati grezzi elencati sopra, proponi almeno tre nuove feature che potresti creare. Per ciascuna, spiega cosa cattura e perché potrebbe aiutare a prevedere la cancellazione.

Suddivisione Train/Test

Perché dividere i dati

La regola più importante nel modeling: non valutare mai un modello sugli stessi dati su cui è stato addestrato.

Se lo fai, il modello può semplicemente memorizzare le risposte. Otterrà un punteggio perfetto sui dati di training ma fallirà sui nuovi dati non visti. Questo si chiama overfitting: il modello ha imparato il rumore nel tuo dataset specifico invece dei veri pattern.

La pratica standard è dividere i tuoi dati:

- Training set (tipicamente 70-80%): il modello impara da questi

- Test set (tipicamente 20-30%): messi da parte, usati solo per valutare il modello finale

In scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


Algoritmi comuni

- Regressione lineare: traccia la retta di miglior adattamento attraverso i dati. Semplice, interpretabile, funziona quando la relazione è approssimativamente lineare. Prevede un numero (prezzo, temperatura, punteggio).

- Alberi decisionali: un diagramma di flusso di domande sì/no. Facile da capire e spiegare. Soggetto a overfitting a meno che non venga potato o limitato nella profondità.

- Foreste casuali: molti alberi decisionali che votano insieme. Più accurato di un singolo tree, meno soggetto a overfitting, ma più difficile da spiegare.


Overfitting vs. Underfitting

- Overfitting: il modello è troppo complesso. Memorizza i dati di training, including noise. Alta accuratezza sui dati di training, bassa accuratezza sui dati di test.

- Underfitting: il modello è troppo semplice. Non riesce a catturare i pattern reali. Bassa accuratezza sia sui dati di training, sia sui dati di test.

Il goal è il sweet spot in mezzo.

Train/Test Split and Bias-Variance Tradeoff

Metriche di Valutazione

Come Sapere Se Il Tuo Modello È Buono?

L'accuratezza da sola può essere fuorviante. Se il 95% delle email non è spam, un modello che dice sempre 'non spam' è accurato al 95%: ma completamente inutile.

Metriche chiave:

- Accuratezza: percentuale di previsioni corrette. Utile quando le classi sono bilanciate.

- Precisione: tra tutte le cose che il modello ha contrassegnato come positive, quante lo erano effettivamente? Un'alta precisione significa pochi falsi allarmi.

- Richiamo: tra tutti i casi positivi reali, quanti ne ha individuati il modello? Un alto richiamo significa pochi casi mancati.

- F1 score: la media armonica tra precisione e richiamo. Utile quando è necessario bilanciare entrambi.

- RMSE (Root Mean Squared Error): per la regressione (previsione di numeri). Quanto sono lontane le previsioni in media?

Quale metrica è più importante dipende dal problema. Per la rilevazione del cancro, il richiamo è più importante: non si vuole perdere un caso. Per il filtraggio dello spam, la precisione è più importante: non si vuole eliminare una vera email.

Evaluation Metrics and Confusion Matrix

Stai costruendo un modello per rilevare transazioni fraudolente con carta di credito. Solo lo 0,1% delle transazioni è effettivamente fraudolento. Se il tuo modello prevede ogni transazione come legittima, qual è la sua accuratezza? Perché l'accuratezza è una metrica negativa qui, e quale metrica useresti invece?

Data Analyst vs. Data Scientist vs. ML Engineer

Tre ruoli distinti

Il campo dei dati ha tre percorsi di carriera principali, e richiedono competenze diverse.


Data Analyst

- Focus: rispondere a domande di business con dati esistenti

- Tools: SQL, Excel, Tableau, Python o R base

- Day-to-day: dashboard, report, analisi di test A/B, presentazioni agli stakeholder

- Entry path: spesso la via più accessibile. Molti analisti iniziano senza una laurea in informatica.


Data Scientist

- Focus: costruire modelli predittivi e trovare pattern in dati complessi

- Tools: Python (pandas, scikit-learn, matplotlib), statistica, SQL, Jupyter notebooks

- Day-to-day: EDA, feature engineering, model building, experimentation

- Entry path: typically requires statistics or quantitative background. Bootcamps & self-study are viable.


Machine Learning Engineer

- Focus: deploying & scaling models in production systems

- Tools: Python, TensorFlow/PyTorch, Docker, cloud platforms (AWS/GCP), APIs

- Day-to-day: model optimization, pipeline infrastructure, monitoring production models

- Entry path: usually requires strong software engineering skills plus ML knowledge.


Creare un Portfolio

I responsabili delle assunzioni si concentrano su ciò che sai fare, non solo su ciò che hai studiato. Un portfolio di 3-5 progetti solidi su GitHub conta più delle certificazioni. I buoni progetti utilizzano dataset reali (non giocattolo), includono una documentazione chiara e mostrano l'intera pipeline: da dati grezzi a insight azionabili.

Percorsi di Carriera nei Dati

I Tuoi Prossimi Passi

Dove Andare da Qui

Gli strumenti del mestiere sono gratuiti e accessibili:

- pandas: la libreria Python standard per la manipolazione dei dati

- matplotlib / seaborn: librerie di visualizzazione

- scikit-learn: lo strumento principale per il machine learning classico

- Jupyter notebooks: ambienti di codifica interattivi in cui puoi mixare codice, output e note

- Kaggle: dataset gratuiti, competizioni e una comunità di praticanti

Inizia con un dataset reale che ti interessa. Scaricalo, puliscilo, esploralo e prova a rispondere a una domanda. Quel singolo progetto ti imparerà di più di qualsiasi corso.

Basato su ciò che hai imparato in questa lezione, quale dei tre ruoli (data analyst, data scientist o ML engineer) ti interessa di più? Qual è un passo concreto che potresti prendere questa settimana per iniziare a costruire le competenze per quel ruolo?