Skip to Content

Che cos'รจ la pre-elaborazione dei dati per il machine learning?

La pre-elaborazione dei dati per il machine learning (ML) si riferisce alla preparazione e alla trasformazione dei dati raw in un formato adatto per l'addestramento dei modelli ML. รˆ un passaggio essenziale in una pipeline ML (o AI) perchรฉ influisce direttamente sulle performance e sulla precisione dei modelli.

La pre-elaborazione dei dati prevede diverse tecniche, come la pulizia dei dati per gestire i valori mancanti, la rimozione degli outlier, la scalabilitร  delle funzionalitร , la codifica delle variabili categoriche e la suddivisione dei dati in set di addestramento e test. Queste tecniche sono fondamentali per garantire che i dati siano in un formato coerente e utilizzabile per gli algoritmi ML.

Questo articolo descrive tutto ciรฒ che devi sapere sulla pre-elaborazione dei dati per il machine learning, compresi i suoi vantaggi, passi ed esempi.ย 

Che cos'รจ la pre-elaborazione dei dati?ย 

La pre-elaborazione dei dati รจ la trasformazione dei dati non elaborati in un formato piรน adatto e significativo per l'analisi e l'addestramento dei modelli. La pre-elaborazione dei dati svolge un ruolo vitale nel miglioramento della qualitร  e dell'efficienza dei modelli ML, risolvendo problemi come valori mancanti, rumore, incoerenze e valori anomali nei dati.

Vantaggi della pre-elaborazione dei dati per il machine learning

La pre-elaborazione dei dati per il machine learning offre molti vantaggi, che sono gli stessi della fase di pre-elaborazione dei dati. Diamo un'occhiata.ย 

1. Pulizia dei dati

La pulizia dei dati รจ una parte essenziale della pipeline di pre-elaborazione dei dati nel machine learning. Prevede l'identificazione e la correzione di errori o incoerenze nel set di dati per garantire che i dati siano di alta qualitร  e adatti per l'analisi o l'addestramento dei modelli.ย 

La pulizia dei dati in genere include:

Gestione dei valori mancanti

I valori mancanti sono un problema comune nei dataset del mondo reale e possono influire negativamente sulle performance dei modelli ML. Per identificare e gestire i valori mancanti:

  • Utilizza statistiche o visualizzazioni descrittive per identificare colonne/funzioni con valori mancanti. Gli indicatori comuni dei valori mancanti includono i valori NaN (non un numero) o NULL.
  • Determina l'impatto dei valori mancanti sull'analisi o sul modello. Considera la percentuale di valori mancanti in ogni colonna e la loro importanza per il set di dati complessivo.
  • Se la percentuale di valori mancanti รจ piccola e le righe o le colonne non sono critiche, รจ possibile rimuoverle utilizzando metodi come dropna() in panda o funzioni simili in altri strumenti.
  • Per le funzioni numeriche, รจ possibile imputare i valori mancanti utilizzando tecniche come il metodo di imputazione media, mediana o modalitร  (fillna() in panda). Per le funzionalitร  categoriche, รจ possibile imputare la categoria piรน frequente.

Puoi anche considerare metodi di imputazione piรน avanzati come l'imputazione di regressione, l'imputazione dei vicini piรน vicini o l'uso di modelli ML per prevedere i valori mancanti in base ad altre funzionalitร .

Gestione degli outlier

Gli outlier sono data point che differiscono in modo significativo da altre osservazioni nel dataset e possono alterare l'analisi statistica o i modelli di machine learning.ย 

Per rilevare e gestire le anomalie:

  • Usa diagrammi a scatola, istogrammi o diagrammi a dispersione per visualizzare la distribuzione delle caratteristiche numeriche e identificare visivamente potenziali outlier.
  • Calcola statistiche riepilogative come media, deviazione standard, quartili e intervallo interquartile (IQR). Gli outlier sono spesso definiti come data point che ricadono al di sotto di Q1 - 1,5 * IQR o al di sopra di Q3 + 1,5 * IQR.
  • In alcuni casi, la rimozione delle anomalie puรฒ essere appropriata, soprattutto se sono dovute a errori o anomalie nell'inserimento dei dati. Usa tecniche di filtraggio basate su soglie statistiche per rimuovere gli outlier.
  • Applica trasformazioni come la trasformazione dei log, la trasformazione della radice quadrata o la trasformazione Box-Cox per rendere i dati piรน distribuiti normalmente e ridurre l'impatto degli outlier.
  • Considera l'utilizzo di solidi modelli di machine learning meno sensibili agli outlier, come le macchine vettoriali di supporto (SVM), le foreste casuali o i metodi di assemblaggio.

Gestione dei duplicati

I record duplicati possono alterare l'analisi e l'addestramento dei modelli gonfiando determinati schemi o pregiudizi.ย 

Per rilevare e gestire i duplicati:

  • Usa funzioni come duplicate() nei panda per identificare le righe duplicate in base a colonne specifiche o all'intera riga.
  • Se i record duplicati sono ridondanti e non forniscono ulteriori informazioni, รจ possibile rimuoverli utilizzando la funzione drop_duplicates() in panda o metodi simili in altri strumenti.
  • In alcuni casi, i duplicati possono verificarsi a causa di piรน voci, ma hanno identificatori univoci. Assicurati di conservare identificatori univoci o colonne chiave che differenziano i record duplicati.

Seguendo questi passaggi e utilizzando tecniche appropriate, puoi pulire ed elaborare i dati in modo efficace per le attivitร  di machine learning, migliorando la qualitร  e l'affidabilitร  delle previsioni dei tuoi modelli.

2. Normalizzazione dei dati

La normalizzazione รจ una tecnica di pre-elaborazione dei dati utilizzata per scalare e standardizzare i valori delle funzionalitร  all'interno di un dataset. L'obiettivo principale della normalizzazione รจ quello di portare tutti i valori delle funzionalitร  in un intervallo simile senza distorcere le differenze negli intervalli di valori. Questo รจ importante perchรฉ molti algoritmi di machine learning funzionano meglio o convergono piรน velocemente quando le funzionalitร  di input sono su una scala simile e hanno una distribuzione simile.

I vantaggi della normalizzazione includono:

  • Impedisce alle funzionalitร  su larga scala di dominare quelle piรน piccole durante l'addestramento dei modelli.ย 
  • Algoritmi come la discesa a gradiente convergono piรน velocemente quando le funzionalitร  vengono normalizzate, con tempi di addestramento piรน brevi.ย 
  • Riduzione dell'impatto degli outlier portando tutti i valori all'interno di un intervallo delimitato. I dati normalizzati possono essere piรน facili da interpretare e confrontare tra le diverse funzionalitร .

Tecniche di normalizzazione

Scalabilitร  min-maxย 

  • Formula:Xnorm =Xmax โˆ’Xmin /Xmax โˆ’Xmin
  • Gamma: Trasforma i valori in un intervallo compreso tra 0 e 1.

ย 

Esempio:

Z-score Normalization (Standardizzazione):

  • Formula: Xstd =ฯƒX/ฮผ
  • Gamma: Trasforma i valori in modo da avere una media di 0 e una deviazione standard di 1.

ย 

Esempio:

Linee guida per l'applicazione della normalizzazione

Scalabilitร  min-max: La scalabilitร  Min-max รจ adatta agli algoritmi che richiedono funzionalitร  di input che rientrino in un intervallo specifico, come le reti neurali e le macchine vettoriali di supporto. Assicurarsi che gli outlier siano gestiti in modo appropriato, in quanto possono influire sulla scalabilitร .

Normalizzazione del punteggio Z: รˆ adatto ad algoritmi come il k-means clustering, la regressione lineare e la regressione logistica. Si traduce in una distribuzione centrata intorno a 0 con una deviazione standard di 1, che la rende ideale per gli algoritmi che presuppongono dati distribuiti normalmente.

Dati sparsi: Per i set di dati sparsi (dove la maggior parte dei valori รจ pari a zero), รจ consigliabile utilizzare tecniche come MaxAbsScaler o RobustScaler per la normalizzazione.

Dati categorici: Per le funzionalitร  categoriche, considera tecniche come la codifica one-hot prima della normalizzazione per garantire una scalabilitร  significativa.

รˆ importante notare che la scelta della tecnica di normalizzazione dipende dalle caratteristiche specifiche dei dati e dai requisiti dell'algoritmo di machine learning che si intende utilizzare. La sperimentazione e la comprensione dell'impatto sulle performance dei modelli sono aspetti chiave per applicare la normalizzazione in modo efficace.

3. Scalabilitร  delle funzionalitร 

La scalabilitร  delle funzionalitร  รจ una tecnica di pre-elaborazione dei dati utilizzata per standardizzare la gamma di variabili o funzionalitร  indipendenti di un dataset. L'obiettivo della scalabilitร  delle funzionalitร  รจ quello di portare tutte le funzionalitร  su una scala o un intervallo simile per evitare che una caratteristica prevalga su altre durante l'addestramento o l'analisi dei modelli. La scalabilitร  delle funzionalitร  puรฒ migliorare la velocitร  di convergenza degli algoritmi di ottimizzazione ed evitare che determinate funzionalitร  abbiano un'influenza indebita sul modello.

Ruolo della scalabilitร  delle funzionalitร  nella pre-elaborazione dei dati

Le funzionalitร  di scalabilitร  garantiscono che gli algoritmi ML trattino tutte le funzionalitร  allo stesso modo, evitando distorsioni verso le funzionalitร  con scale piรน grandi. Inoltre, migliora le convergenze, poichรฉ molti algoritmi di ottimizzazione (ad esempio, la discesa a gradiente) convergono piรน velocemente quando le funzionalitร  vengono scalate, portando a un addestramento piรน rapido dei modelli. Puรฒ anche prevenire problemi di instabilitร  numerica che possono insorgere a causa di grandi differenze di grandezza delle funzionalitร . Infine, la scalabilitร  puรฒ semplificare l'interpretazione dell'impatto delle funzionalitร  sulle previsioni del modello.

Metodi di scalabilitร  delle funzionalitร 

Oltre alla scala min-max e alla normalizzazione del punteggio Z descritte sopra, sono disponibili anche:

MaxAbsScaler: In questo modo ogni caratteristica viene scalata in base al suo valore assoluto massimo, quindi i valori risultanti variano tra -1 e 1. รˆ adatto per i dati sparsi in cui รจ importante preservare zero voci, come nella classificazione del testo o nei sistemi di raccomandazione.

Scalabilitร  solida: Questo utilizza statistiche solide per gli outlier, come la mediana e l'intervallo interquartile (IQR), per scalare le funzionalitร . รˆ adatto per dataset contenenti outlier o distribuzioni alterate.

Linee guida per l'applicazione della scalabilitร  delle funzionalitร 

Per applicare la scalabilitร  delle funzionalitร :

  • Applicare la standardizzazione (normalizzazione del punteggio Z) quando i dati seguono una distribuzione normale o quando utilizzano algoritmi come la regressione lineare, la regressione logistica o il k-means clustering.
  • Applica la normalizzazione (scala min-max) quando hai bisogno che i dati rientrino in un intervallo specifico, come le reti neurali o le macchine vettoriali di supporto.
  • Usa MaxAbsScaler per gestire dati sparsi, come i dati di testo o le funzionalitร  sparse ad alta dimensione.
  • Usa RobustScaler per gestire dataset contenenti outlier o funzionalitร  distribuite in modo non normale.

Tieni presente che le funzionalitร  categoriche possono richiedere la codifica (ad esempio, la codifica one-hot) prima di applicare la scalabilitร  delle funzionalitร , specialmente se sono nominali (categorie non ordinate).

4. Gestione dei dati categorici

Le variabili categoriche rappresentano gruppi o categorie e sono spesso di natura non numerica, ponendo sfide durante l'addestramento dei modelli, tra cui:

  • Rappresentazione non numerica: Le variabili categoriche sono in genere rappresentate utilizzando stringhe o etichette, che la maggior parte degli algoritmi di machine learning non รจ in grado di elaborare direttamente. Gli algoritmi richiedono input numerici per l'addestramento e le previsioni.
  • Variabili normali e nominali: Le variabili categoriche possono essere ordinali (con un ordine significativo) o nominali (senza un ordine specifico). Trattare le variabili ordinali come nominali o viceversa puรฒ portare a interpretazioni errate dei modelli o a previsioni distorte.
  • Maledizione della dimensionalitร : La codifica one-hot, una tecnica comune per la gestione dei dati categorici, puรฒ portare a un aumento della dimensionalitร  del set di dati, specialmente con un elevato numero di categorie univoche. Ciรฒ puรฒ influire sulle performance del modello e aumentare la complessitร  computazionale.

Tecniche di codifica delle variabili categoriche

Le tecniche di codifica delle variabili categoriche includono:

Codifica delle etichette: La codifica delle etichette assegna un'etichetta numerica univoca a ciascuna categoria in una variabile categorica. รˆ adatto per le variabili ordinali in cui esiste un ordine significativo tra le categorie.

Ecco un esempio di utilizzo dello scikit-learn di Python:

da sklearn.preprocessing import LabelEncoder

le = LabelEncoder()

coded_labels = le.fit_transform(['cat', 'cane', 'coniglio', 'cane'])

Codifica one-hot: La codifica one-hot crea colonne binarie per ogni categoria in una variabile categorica, in cui ogni colonna indica la presenza o l'assenza di tale categoria. รˆ adatto per le variabili nominali senza un ordine specifico tra le categorie.

Ecco un esempio di panda:

importare panda come pd

df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})

one_hot_encoded = pd.get_dummies(df['category'], prefisso='category')

Codifica fittizia: La codifica fittizia รจ simile alla codifica one-hot, ma elimina una delle colonne binarie per evitare problemi di multicollinearitร  nei modelli lineari. รˆ comunemente utilizzato nei modelli di regressione in cui una categoria funge da categoria di riferimento.

Ecco un esempio di panda:

dummy_encoded = pd.get_dummies(df['category'], prefisso='category', drop_first=True)

Linee guida per la gestione dei dati categorici

Per gestire correttamente i dati categorici, รจ necessario:

Comprendere i tipi di variabili: Determinare se le variabili categoriche sono ordinali o nominali per scegliere la tecnica di codifica appropriata.

Evitare interpretazioni errate ordinali: Prestare attenzione quando si utilizza la codifica delle etichette per le variabili nominali, in quanto puรฒ introdurre ordinalitร  involontaria nei dati.

Affronta l'alta cardinalitร : Per le variabili categoriche con un elevato numero di categorie univoche, considerare tecniche come la codifica della frequenza, la codifica della destinazione o le tecniche di riduzione della dimensionalitร  come PCA.

Tutto questo si aggiunge alla giร  citata gestione dei valori mancanti e alla normalizzazione dei dati numerici.ย 

5. Gestione dei dati sbilanciati

Gestire i dati sbilanciati รจ una sfida comune nel machine learning, specialmente nelle attivitร  di classificazione in cui il numero di istanze in una classe (classe di minoranza) รจ significativamente inferiore rispetto alle altre classi (classi di maggioranza). I dati sbilanciati possono avere un impatto profondo sull'addestramento e sulla valutazione dei modelli, portando a modelli disorientati che favoriscono la maggioranza e offrono performance scarse sulle classi di minoranza.ย 

Ecco alcuni punti chiave relativi ai dati sbilanciati e alle tecniche di gestione:

Impatto dei dati sbilanciati sulle performance dei modelli

I modelli formati su dati sbilanciati tendono a dare prioritร  alla precisione nella classe di maggioranza, trascurando al contempo la classe di minoranza. Ciรฒ puรฒ portare a performance scadenti per le previsioni di minoranze. Inoltre, metriche come l'accuratezza possono essere fuorvianti nei dataset sbilanciati, poichรฉ una precisione elevata puรฒ derivare dalla previsione corretta della classe di maggioranza, ignorando al contempo la classe di minoranza. Le metriche di valutazione come precisione, richiamo, F1-score e area sotto la curva ROC (AUC-ROC) sono piรน informative per i dataset sbilanciati rispetto alla sola precisione.

Tecniche di gestione dei dati sbilanciati

Le tecniche piรน comuni per la gestione dei dati sbilanciati sono l'oversampling e l'undersampling. L'ipercampionamento implica l'aumento del numero di istanze nella classe di minoranza per bilanciarlo con la classe di maggioranza. Il sottocampionamento comporta la riduzione del numero di istanze nella classe di maggioranza per bilanciarle con la classe di minoranza. Puoi anche adottare un approccio ibrido combinando il sovracampionamento e il sottocampionamento.

รˆ inoltre disponibile una ponderazione della classe, in cui si regolano i pesi della classe durante l'addestramento dei modelli per penalizzare gli errori nella classe di minoranza piuttosto che gli errori nella classe di maggioranza. Ciรฒ รจ utile solo per gli algoritmi che supportano la ponderazione delle classi, come la regressione logistica o il supporto delle macchine vettoriali.

Linee guida per la gestione dei dati sbilanciati

Per gestire i dati sbilanciati, รจ necessario:

Comprendere la distribuzione dei dati: Analizzare la distribuzione delle classi nel dataset per determinare la gravitร  dello squilibrio.

Scegliere la tecnica appropriata: Seleziona la tecnica di sovracampionamento, sottocampionamento o ibrida in base alle dimensioni del set di dati, al rapporto di squilibrio e alle risorse computazionali.

Valuta le metriche: Utilizza metriche di valutazione appropriate come precisione, richiamo, F1-score o curva AUC-ROC per valutare le performance del modello su entrambe le classi.

Convalida incrociata: Applicare tecniche all'interno di fold di convalida incrociata per evitare la perdita di dati e ottenere stime affidabili delle performance del modello.

Conclusione

La pre-elaborazione dei dati aiuta a garantire che i modelli ML siano formati su dati di alta qualitร  e adeguatamente formattati, il che influisce direttamente sulle performance, sulla precisione e sulla capacitร  di generalizzazione del modello. Risolvendo problemi come valori mancanti, outlier, variabili categoriche e squilibri di classe, la pre-elaborazione dei dati consente ai modelli di fare previsioni piรน informate e accurate, portando a un migliore processo decisionale nelle applicazioni del mondo reale.

Grazie a una corretta pre-elaborazione dei dati, i professionisti del ML possono liberare tutto il potenziale dei propri dati e creare modelli predittivi piรน precisi e affidabili per varie applicazioni tra domini.

Tuttavia, per farlo realmente nel mondo reale, devi prima disporre di una soluzione di data storage flessibile come Pure Storage che ti aiuti ad accelerare l'AI e il machine learningย e ad andare avanti con le tue iniziative di AI aziendale.

Potrebbe interessarti anche...

11/2025
Scale AI from Pilot to Production Guide | Everpure
Learn how to overcome AI scaling challenges. Get practical strategies for data readiness, infrastructure modernization, and building your AI factory.
eBook
12 pages

Esplora risorse e eventi principali

VIDEO
Guarda: Il valore di un Enterprise Data Cloud (EDC).

Charlie Giancarlo spiega perchรฉ il futuro รจ nella gestione dei dati, non dello storage. Scopri in che modo un approccio unificato trasforma le operazioni IT aziendali.

Guarda
RISORSA
Lo storage legacy non puรฒ alimentare il futuro.

I workload moderni richiedono velocitร , sicurezza e scalabilitร  AI-ready. Il tuo stack รจ pronto?

Effettua la valutazione
DEMO DI PURE360
Esplora, scopri e prova Pure Storage.

Accedi a video e demo on demand per scoprire i vantaggi che Pure Storage ti offre.

Guarda le demo
THOUGHT LEADERSHIP
La corsa per l'innovazione

Le piรน recenti informazioni approfondite e opinioni di leader di settore che sono all'avanguardia nell'innovazione dello storage.

Maggiori informazioni
Il browser che stai usando non รจ piรน supportato.

I browser non aggiornati spesso comportano rischi per la sicurezza. Per offrirti la migliore esperienza possibile sul nostro sito, ti invitiamo ad aggiornare il browser alla versione piรน recente.

Personalize for Me
Steps Complete!
1
2
3
Thinking...