Condividi tramite


Normalizzare i dati

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Scala nuovamente i dati numerici per vincolare i valori del set di dati a un intervallo standard

Categoria: Trasformazione dati/Scalabilità e riduzione

Nota

Si applica a: solo Machine Learning Studio (versione classica)

I moduli di trascinamento della selezione simili sono disponibili in Azure Machine Learning finestra di progettazione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Normalize Data in Machine Learning Studio (versione classica) per trasformare un set di dati tramite la normalizzazione.

La normalizzazione è una tecnica spesso applicata come parte della preparazione dei dati per l'apprendimento automatico. L'obiettivo della normalizzazione consiste nel modificare i valori delle colonne numeriche nel set di dati in modo da usare una scala comune, senza distorcere differenze negli intervalli di valori o perdere informazioni. La normalizzazione è necessaria anche per alcuni algoritmi per modellare correttamente i dati.

Si supponga, ad esempio, che il set di dati di input contenga una colonna con valori compresi tra 0 e 1 e un'altra colonna con valori compresi tra 10.000 e 100.000. La grande differenza nella scala dei numeri può causare problemi quando si tenta di combinare i valori come caratteristiche durante la modellazione.

La normalizzazione evita questi problemi creando nuovi valori che mantengono la distribuzione generale e i rapporti nei dati di origine, mantenendo al tempo stesso i valori all'interno di una scala applicata a tutte le colonne numeriche usate nel modello.

Questo modulo offre diverse opzioni per trasformare i dati numerici:

  • È possibile modificare tutti i valori in una scala 0-1 oppure trasformare i valori rappresentandoli come ranghi percentili anziché come valori assoluti.
  • È possibile applicare la normalizzazione a una singola colonna o a più colonne dello stesso set di dati.
  • Se è necessario ripetere l'esperimento o applicare gli stessi passaggi di normalizzazione ad altri dati, è possibile salvare i passaggi come trasformazione di normalizzazione e applicarli ad altri set di dati con lo stesso schema.

Avviso

Alcuni algoritmi richiedono di normalizzare i dati prima di eseguire il training di un modello. Altri algoritmi scalano o normalizzano autonomamente i propri dati. Pertanto, quando si sceglie un algoritmo di Machine Learning da usare per la compilazione di un modello predittivo, assicurarsi di esaminare i requisiti dei dati dell'algoritmo prima di applicare la normalizzazione ai dati di training.

Come configurare Normalize Data

È possibile applicare un solo metodo di normalizzazione alla volta usando questo modulo. Di conseguenza, lo stesso metodo di normalizzazione viene applicato a tutte le colonne selezionate. Per usare metodi di normalizzazione diversi, usare una seconda istanza di Normalize Data.

  1. Aggiungere il modulo Normalize Data all'esperimento. È possibile trovare il modulo in Machine Learning Studio (versione classica), in Trasformazione dati, nella categoria Scalabilità e riduzione.

  2. Connessione un set di dati contenente almeno una colonna di tutti i numeri.

  3. Usare il selettore di colonna per scegliere le colonne numeriche da normalizzare. Se non si scelgono colonne singole, per impostazione predefinita vengono incluse tutte le colonne di tipo numerico nell'input e lo stesso processo di normalizzazione viene applicato a tutte le colonne selezionate.

    Ciò può causare risultati strani se si includono colonne numeriche che non devono essere normalizzate. Controllare sempre attentamente le colonne.

    Se non vengono rilevate colonne numeriche, controllare i metadati della colonna per verificare che il tipo di dati della colonna sia un tipo numerico supportato.

    Suggerimento

    Per assicurarsi che le colonne di un tipo specifico vengano fornite come input, provare a usare il modulo Seleziona colonne nel set di dati prima di Normalizzare i dati.

  4. Usare 0 per le colonne costanti quando selezionato: selezionare questa opzione quando una colonna numerica contiene un singolo valore non modificabile. In questo modo si garantisce che tali colonne non vengano usate nelle operazioni di normalizzazione.

  5. Nell'elenco a discesa Metodo trasformazione scegliere una singola funzione matematica da applicare a tutte le colonne selezionate.

    • Zscore: converte tutti i valori in un punteggio z.

      I valori nella colonna vengono trasformati usando la seguente formula:

      normalization using z-scores

      La deviazione media e quella standard vengono calcolate separatamente per ogni colonna. Viene usata la deviazione standard della popolazione.

    • MinMax: il normalizzatore min-max ridimensiona in modo lineare ogni funzionalità all'intervallo [0,1].

      Questa operazione viene eseguita scalando i valori di ogni funzione in modo che il valore minimo sia 0 e dividendo per il nuovo valore massimo, che è la differenza tra i valori massimo e minimo originali.

      I valori nella colonna vengono trasformati usando la seguente formula:

      normalization using the min-max function

    • Logistica: i valori nella colonna vengono trasformati usando la formula seguente:

      formula for normalization by logistic function

    • LogNormal: questa opzione converte tutti i valori in una scala lognormali.

      I valori nella colonna vengono trasformati usando la seguente formula:

      formula log-normal distribution

      Qui μ e σ sono i parametri della distribuzione, calcolati empiricamente dai dati come stime di probabilità massima, per ogni colonna separatamente.

    • TanH: tutti i valori vengono convertiti in una tangente iperbolica.

      I valori nella colonna vengono trasformati usando la seguente formula:

      normalization using the tanh function

  6. Eseguire l'esperimento oppure fare doppio clic sul modulo Normalize Data (Normalizza dati ) e selezionare Run Selected (Esegui selezionato).

Risultati

Il modulo Normalize Data genera due output:

  • Per visualizzare i valori trasformati, fare clic con il pulsante destro del mouse sul modulo, scegliere Set di dati trasformato e fare clic su Visualizza.

    Per impostazione predefinita, i valori vengono trasformati sul posto. Per confrontare i valori trasformati con i valori originali, usare il modulo Aggiungi colonne per ricombinare i set di dati e visualizzare le colonne affiancate.

  • Per salvare la trasformazione in modo che sia possibile applicare lo stesso metodo di normalizzazione a un altro set di dati simile, fare clic con il pulsante destro del mouse sul modulo, scegliere Funzione trasformazione e fare clic su Salva come trasformazione.

    È quindi possibile caricare le trasformazioni salvate dal gruppo Trasformazioni del riquadro di spostamento a sinistra e applicarle a un set di dati con lo stesso schema usando Applica trasformazione.

Esempio

Per esempi di come viene usata la normalizzazione in Machine Learning, vedere Azure AI Gallery:

  • Stima del rischio di credito: in questo esempio la normalizzazione viene applicata a tutti i dati numerici, ad eccezione della colonna della classe , il punteggio di rischio del credito. In questo esempio viene utilizzata la trasformazione tanh , che converte tutte le funzionalità numeriche in valori compresi in un intervallo compreso tra 0 e 1.

Note tecniche

Questo modulo supporta solo i metodi di normalizzazione standard elencati nella sezione Procedura e non supporta la normalizzazione della matrice o altre trasformazioni complesse.

Se è necessario creare un metodo di normalizzazione personalizzato, è possibile usare i moduli Execute R Script (Esegui script R ) o Execute Python Script (Esegui script Python ) per calcolare e applicare la trasformazione.

Algoritmi che applicano la normalizzazione

La normalizzazione delle funzionalità in modo che usino una scala comune è un requisito generale per molti algoritmi di Machine Learning.

  • Negli algoritmi di classificazione lineare le istanze vengono considerate come vettori nello spazio multidimensionale. Poiché l'intervallo di valori dei dati non elaborati varia notevolmente, alcune funzioni obiettivo non funzionano correttamente senza normalizzazione. Ad esempio, se una delle funzioni dispone di una vasta gamma di valori, le distanze tra i punti sono controllate da questa particolare funzione.

    Le funzioni numeriche devono pertanto essere normalizzate in modo che ogni funzione contribuisca in modo più o meno proporzionale alla distanza finale. Questo può garantire vantaggi significativi in termini di aumento della velocità e accuratezza.

  • Quando si usano gli algoritmi Logistic Regression e Averaged Perceptron , per impostazione predefinita, le funzionalità vengono normalizzate prima del training.

Altre informazioni e risorse

Se non si è certi del tipo di normalizzazione più adatto ai dati, vedere le risorse seguenti:

Input previsti

Nome Tipo Descrizione
Set di dati Tabella dati Set di dati di input

Parametri del modulo

Name Intervallo Type Predefinito Descrizione
Transformation method any TransformationMethods ZScore Scegliere il metodo matematico usato per il ridimensionamento
Columns to transform any ColumnSelection NumericAll Selezionare tutte le colonne a cui deve essere applicata la trasformazione selezionata

Output

Nome Tipo Descrizione
Set di dati trasformato Tabella dati Set di dati trasformato
Funzione di trasformazione Interfaccia ITransform Definizione della funzione di trasformazione che può essere applicata ad altri set di dati

Eccezioni

Eccezione Descrizione
Errore 0001 L'eccezione si verifica se non è possibile trovare una o più colonne specificate del set di dati.
Errore 0003 L'eccezione si verifica se uno o più input sono null o vuoti.
Errore 0017 Si verifica un'eccezione se il tipo di una o più colonne specificate non è supportato dal modulo attuale.
Errore 0020 L'eccezione si verifica se il numero di colonne in alcuni set di dati passati al modulo è troppo piccolo.
Errore 0021 L'eccezione si verifica se il numero di righe in alcuni set di dati passati al modulo è troppo piccolo.

Per un elenco degli errori specifici dei moduli di Studio (versione classica), vedere Machine Learning Codici di errore.

Per un elenco delle eccezioni API, vedere Machine Learning codici di errore dell'API REST.

Vedi anche

Scale and Reduce