Fondamenti di Machine Learning e Data Science: Tecniche e Algoritmi Essenziali
Inviato da Anonimo e classificato in Matematica
Scritto il in
italiano con una dimensione di 17,19 KB
Database Integrato e Processo ETL
Un Database Integrato è una raccolta di dati e informazioni organizzate e gestite utilizzando il linguaggio di interrogazione SQL.
Perché creare un database integrato?
La versione coerente e normalizzata di tutti i dati è utile in caso di grandi quantità di dati, come nell'analisi dei Big Data. L'integrazione consente di operare meglio attraverso operazioni SQL per confrontare diversi database.
Fasi di Creazione del Database Integrato
Step 1: Ricerca delle Fonti
Si ricercano le fonti, partendo da fonti ufficiali come gli istituti di statistica, e si verifica l'esistenza di database non ufficiali. È fondamentale verificare se i dati delle varie fonti sono comparabili.
Step 2: ETL (Extract, Transform, Load/Integrate)
Il processo ETL (Extract, Transform e Integrate) può essere a tempo discreto o in tempo reale. Bisogna estrarre i dati, ad esempio tramite file CSV o API. Una volta estratti, è necessario prepararli per l’integrazione. Una volta unificati, si potrà usare un indicatore per identificare in modo univoco i dati. Possiamo avere due tipi di ID:
ID Centralizzato: È un nodo centrale che decide gli ID. Quando arrivano i dati dalle varie fonti, il sistema centrale assegna un nuovo ID, eliminando problemi di coincidenza. Ogni operazione richiede anche un'operazione JOIN.
ID Distribuito: Ogni database locale genera i propri ID in autonomia. Non è richiesta l’operazione JOIN. Sono generalmente meno flessibili e sostenibili.
Step 3: Analisi dei Dati
È possibile eseguire le classiche analisi dati tramite operazioni SQL o estrarli per operare con tecnologie diverse.
Tecniche di Riduzione della Dimensionalità
PCA (Principal Component Analysis)
La PCA trasforma i dati in un nuovo sistema di coordinate in cui le variabili sono linearmente non correlate. Questo significa che non ci sono informazioni ridondanti. Funziona attraverso le seguenti fasi:
Standardizzazione dei dati: Si evita che variabili con scale diverse dominino il calcolo.
Calcolo della matrice di covarianza.
Calcolo di autovettori (che indicano la direzione) e autovalori (l’importanza).
Selezione delle componenti principali.
Proiezione dei dati.
UMAP (Uniform Manifold Approximation and Projection)
UMAP è una tecnica di riduzione della dimensionalità non lineare basata sulla teoria della varietà e sulla topologia algebrica. I parametri principali sono:
N-Neighbours: Il numero di vicini più prossimi approssimativi utilizzati per costruire il grafo iniziale ad alta dimensionalità.
min_dist: La distanza minima tra punti nello spazio a bassa dimensionalità.
Feature Engineering
Principali Casi di Feature Engineering
Il Feature Engineering è cruciale per migliorare le prestazioni dei modelli.
Creazione di Feature
Consiste nel generare nuove feature basandosi sui dati esistenti o sulla conoscenza del dominio. Ad esempio, se si hanno la data di inizio e fine contratto, si può creare una nuova feature chiamata “durata del contratto”.
Trasformazione delle Feature
Convertire le feature in una forma più appropriata per il modello.
Estrazione delle Feature
Estrarre nuove feature combinando o riducendo quelle esistenti, in modo tale da migliorare le prestazioni riducendo la dimensionalità e l’overfitting. Esempi includono l'uso di PCA e UMAP.
Selezione delle Feature
Selezionare le caratteristiche più importanti attraverso un filtraggio mirato.
Ridimensionamento delle Feature (Scaling)
È importante che le feature abbiano una scala simile, in modo da dare uguale peso a ogni feature. Si possono usare:
Scaling Min-Max (tra 0 e 1).
Standardizzazione (con media 0 e deviazione standard 1).
Apprendimento Non Supervisionato (Unsupervised Learning)
Definizione di Unsupervised Learning
L'Unsupervised Learning è un modello descrittivo, il cui obiettivo è descrivere la struttura dei dati. Esegue l’analisi senza una variabile target (y) predefinita. I dati di addestramento non sono etichettati e non sappiamo a priori cosa stiamo cercando. Il processo è orientato all’esplorazione e all'identificazione di nuovi pattern o strutture nascoste all’interno di un dataset. Abbiamo due tipi principali: il Clustering e la Riduzione della Dimensionalità.
K-means
L'algoritmo K-means mira a minimizzare la Somma dei Quadrati degli Errori (SSE), che è la somma delle distanze euclidee quadrate tra ciascun punto e il centroide del cluster a cui è assegnato.
Misurazione della Dissimilarità tra Cluster
Nel clustering gerarchico, la dissimilarità tra due cluster può essere misurata in diversi modi:
Complete Linkage: Definisce la distanza inter-cluster come la distanza massima tra due punti qualsiasi. Richiede che anche i punti più lontani siano “abbastanza vicini” prima di fondere due gruppi, risultando in cluster compatti e chiaramente separati. È molto sensibile agli outlier.
Single Linkage: Utilizza la distanza minima tra due punti in cluster diversi. Se anche solo un elemento di A è molto vicino a un elemento di B, i due cluster vengono considerati vicini e uniti. Questo può portare al fenomeno del concatenamento.
Mean Linkage: Calcola la distanza media tra tutte le coppie di punti. È un approccio bilanciato nella formazione dei cluster.
Centroid Linkage: Calcola la distanza tra i centroidi dei cluster.
Ward: Utilizza un approccio simile all’ANOVA. Minimizza la varianza all’interno del cluster. Aggrega le coppie di cluster la cui unione comporta il minor aumento della somma dei quadrati all’interno del cluster, rendendoli dunque il più omogenei possibili.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
I parametri chiave di DBSCAN sono:
ε (Epsilon): Rappresenta la misura della distanza massima entro la quale due punti vengono considerati direttamente raggiungibili per densità.
minPts: Il numero minimo di punti richiesti per formare un cluster (spesso impostato come numero di colonne + 1 o ln(righe)). Se minPts è molto piccolo, si creano cluster molto sottili e rumorosi.
Apprendimento Supervisionato (Supervised Learning)
Che cos'è il Supervised Learning?
È un modello predittivo, in grado di generare una previsione accurata di un dato output (target) utilizzando input (feature).
Problemi di Regressione e Classificazione
Problema di Regressione
Si verifica quando l'obiettivo è prevedere un risultato numerico. L'output ricade su uno spettro continuo e può assumere qualsiasi valore nell’intervallo possibile, a seconda della combinazione dei predittori.
Problema di Classificazione
Si verifica quando l'obiettivo è prevedere un risultato categorico. Questi problemi ruotano attorno a una previsione di una risposta binaria (sì/no, 1/0) o multinomiale (0-5).
Regressione Lineare
La Regressione Lineare è un pilastro della modellazione statistica. Modella la relazione statistica tra una variabile dipendente continua Y e una singola variabile predittrice continua X, assumendo una relazione approssimativamente lineare. Per determinare la retta che fornisce il miglior best fitting dei dati, si minimizza la Somma dei Quadrati Residui (RSS).
Assunzioni della Regressione Lineare
Relazione Lineare: Si assume che tra il predittore e la variabile di risposta ci sia una relazione lineare.
Varianza Costante dei Residui (Omoschedasticità): Si assume che la varianza tra gli errori sia costante.
Nessuna Autocorrelazione: Si assume che gli errori siano indipendenti e non correlati.
Il numero di osservazioni deve essere maggiore di quello dei predittori.
Multicollinearità: Variabili molto correlate tra loro possono distorcere il risultato, dando un peso eccessivo a determinate informazioni.
Modelli Basati su Alberi e Logistici
Alberi Decisionali (Decision Trees)
I modelli basati su alberi sono una classe di algoritmi non parametrici. Suddividono i dati di training in sottogruppi omogenei (gruppi con valori di risposta simili) e adattano una costante semplice in ciascun sottogruppo. Questi sottogruppi, chiamati nodi, vengono ricorsivamente formati utilizzando partizioni binarie.
CART (Classification and Regression Trees)
I sottogruppi sono formati attraverso un processo ricorsivo top-down. Ad ogni passaggio la divisione è binaria. L’obiettivo è trovare la migliore feature Xj e il miglior punto di split s. Per i problemi di regressione, la funzione obiettivo da minimizzare è la Somma Totale degli Errori Quadratici (SSE), mentre in quelli di classificazione è massimizzare la riduzione dell’impurità.
Tecniche di Regolarizzazione
Early Stopping: Impone una profondità massima dell’albero o un numero minimo di osservazioni affinché un nodo possa essere considerato terminale. In questo modo si riducono gli split, riducendo la varianza.
Potatura (Pruning): Consiste nel far crescere un albero decisionale molto grande e complesso, e in seguito potarlo per trovare un sotto-albero ottimale. Il parametro di costo-complessità: un alpha piccolo tende a produrre penalità minori, risultando in modelli più complessi e alberi più grandi, mentre un alpha grande risulta in penalità maggiori e quindi in alberi molto più piccoli.
Una volta completato il partizionamento, i nodi che non sono più divisi sono chiamati nodi terminali o foglie. Gli alberi decisionali creano confini di decisione che risultano essere regioni rettangolari.
Regressione Logistica
La Regressione Logistica viene utilizzata quando si vuole calcolare la probabilità che un evento accada, garantendo che tutte le previsioni si trovino tra 0 e 1. Viene utilizzata la funzione sigmoidale per produrre la caratteristica curva ad S. Il modello solitamente usa una soglia (spesso il 50%) per la classificazione finale, anche se nel caso di classi sbilanciate è necessario spostare il valore soglia.
Metriche di Valutazione
Accuratezza: Misura la correttezza complessiva.
Precisione: Con quale frequenza abbiamo ragione quando prevediamo un risultato positivo.
Sensibilità (TPR): Di tutti i positivi effettivi, quanti ne abbiamo individuati.
Specificità (1-FPR): Prevedere un risultato negativo quando il risultato è effettivamente negativo.
Curva ROC (Receiver Operating Characteristic)
È uno strumento grafico per la valutazione dei modelli di classificazione binaria. L'asse X rappresenta il Tasso di Falsi Positivi (1 - Specificità) e l'asse Y rappresenta il Tasso di Veri Positivi (Sensibilità). È utile per confrontare diversi modelli, ma è limitata alla classificazione binaria ed è sensibile alle classi sbilanciate.
Scenari Sensibili ai Costi
Alto costo dei falsi positivi: Concentrarsi sulla Precisione (es. non segnalare email vere come spam).
Alto costo dei falsi negativi: Concentrarsi sulla Sensibilità (es. non prevedere pazienti malati).
Support Vector Machine (SVM)
Che cos'è il Support Vector Machine?
L'SVM cerca di trovare un iperpiano in uno spazio delle caratteristiche che separi al meglio le due classi. Classifica tutti i punti su un lato del confine di decisione come appartenenti a una classe e tutti quelli sull’altro lato come appartenenti all’altra classe.
Il Kernel Trick
Dato che molti insiemi di dati presentano relazioni non lineari, si può utilizzare il Kernel Trick, che permette di creare classificatori non lineari mantenendo la struttura algoritmica di un classificatore lineare.
Funzionamento del Kernel Trick
Dati inseparabili nello spazio originale: Si consideri un esempio di classificazione binaria dove una classe forma un cerchio e l'altra la circonda.
Espansione dello spazio delle caratteristiche: Si applica una mappatura non lineare per proiettare i dati in uno spazio a dimensione superiore.
Separabilità nello spazio espanso: Nello spazio esteso (es. 3-D), i dati diventano perfettamente separabili linearmente.
Proiezione indietro, confine non lineare: Quando questo iperpiano decisionale viene proiettato nuovamente nello spazio originale, il risultato è un confine decisionale non lineare (un cerchio), che separa perfettamente i dati originali.
Quando Usare i Diversi Modelli
Decision Tree: Dataset non lineari, necessità di regole esplicite e dati con molti valori mancanti.
Regressione Logistica: Set di dati lineari, necessità di interpretabilità, probabilità di appartenenza alla classe.
SVM: Dataset ad alta dimensionalità, confini decisionali complessi, robustezza ai valori anomali.
Serie Temporali e Text Clustering
Serie Temporali Stazionarie
Una Serie Stazionaria è una serie le cui proprietà non dipendono dal momento in cui viene osservata. Queste serie hanno degli andamenti prevedibili nel lungo termine.
Componenti delle Serie Temporali
Andamento Stagionale: Oscillazioni che si ripetono in modo regolare e prevedibile con frequenza fissa, influenzate da periodi dell’anno o giorni della settimana.
Andamento Ciclico: Aumenti o diminuzioni che non hanno frequenza fissa, dunque hanno durata variabile e imprevedibile, e sono spesso correlate al ciclo economico.
Modelli di Previsione
Autoregressione (AR): In un modello autoregressivo si prevede la variabile di interesse facendo una combinazione lineare dei valori passati della variabile stessa.
Media Mobile (MA): Si tratta di una regressione fatta sugli errori, dunque utilizza come predittori i valori degli errori di previsione passati.
Decomposizione Seasonal-Trend-Residual
La decomposizione scompone la serie in componenti:
Trend: La direzione a lungo termine.
Stagionalità: Le fluttuazioni periodiche.
Residuo: Il rumore casuale che non può essere attribuito a trend o stagionalità.
La decomposizione può essere:
Additiva: Quando l'entità della stagionalità non cambia con l’entità della serie temporale.
Moltiplicativa: Quando l’entità della stagionalità varia con l’entità della serie temporale.
Tecniche di Text Clustering
Metodo Reinert (ALCESTE)
Non raggruppa documenti interi ma frammenti. Il testo viene tagliato in Unità di Contesto Elementari (UCE). Un algoritmo divide le UCE in due gruppi massimizzando il Chi-quadro.
Latent Dirichlet Allocation (LDA)
LDA è un modello di soft clustering probabilistico, che rappresenta la probabilità che un documento abbia una possibilità di appartenere a un dato cluster.
Il parametro alpha controlla la sparsità dei documenti: un alpha basso forza i documenti ad avere pochi topic dominanti.
Il parametro beta controlla la sparsità delle parole nei topic: un beta basso forza i topic ad avere poche parole chiave specifiche.