Condividi tramite


Preparazione dei dati per la regressione

Questo articolo descrive come AutoML prepara i dati per il training di regressione e descrive le impostazioni dei dati configurabili. È possibile modificare queste opzioni durante la configurazione dell'esperimento nell'interfaccia utente di AutoML.

Per configurare queste impostazioni usando l'API AutoML, si vedano le informazioni di riferimento sull'API Python AutoML.

Tipi di funzionalità dati supportate

Sono supportati solo i tipi di funzionalità elencati di seguito. Ad esempio, le immagini non sono supportate.

Sono supportate le seguenti funzionalità:

  • numeriche (ByteType, ShortType, IntegerType, LongType, FloatType, e DoubleType)
  • Booleano
  • stringa (testo categorico o inglese)
  • Timestamps (TimestampType, DateType)
  • ArrayType[Numeric] (Databricks Runtime 10.4 LTS ML e versioni successive)
  • DecimalType (Databricks Runtime 11.3 LTS ML e versioni successive)

Imputare valori mancanti

In Databricks Runtime 10.4 LTS ML e versioni successive è possibile specificare la modalità di immissione dei valori Null. Nell'interfaccia utente, selezionare un metodo dall'elenco a discesa nella colonna Impute with nello schema della tabella. Nell'API usare il parametro imputers. Per altre informazioni, vedere Informazioni di riferimento sull'API Python di AutoML.

Per impostazione predefinita, AutoML seleziona un metodo di imputazione in base al tipo di colonna e al contenuto.

Nota

Se si specifica un metodo di imputazione non predefinito, AutoML non esegue il rilevamento dei tipi semantici.

Selezione colonne

In Databricks Runtime 10.3 ML e versioni successive è possibile specificare quali colonne usare AutoML per il training. Per escludere una colonna nell'interfaccia utente, deselezionarla nella colonna Includi. Nell'API usare il parametro exclude_cols. Per altre informazioni, vedere Informazioni di riferimento sull'API Python di AutoML.

Non è possibile eliminare la colonna selezionata come target di previsione o come colonna temporale per suddividere i dati.

Per impostazione predefinita, vengono incluse tutte le colonne.

Suddividere i dati in set di training, convalida e test

AutoML suddivide i dati in tre divisioni per il training, la convalida e il test. A seconda del tipo di problema di Machine Learning, sono disponibili diverse opzioni per la suddivisione dei dati.

Usare i metodi seguenti per dividere i dati in set di training, convalida e test:

(Impostazione predefinita) Suddivisione casuale: se non viene specificata una strategia di suddivisione dei dati, il set di dati viene suddiviso in modo casuale in una divisione del training del 60%, una divisione convalida del 20% e una divisione di test del 20%. Per la classificazione, una suddivisione casuale stratificata garantisce che ogni classe sia adeguatamente rappresentata nei set di training, convalida e test.

divisione cronologica: in Databricks Runtime 10.4 LTS ML e versioni successive è possibile selezionare una colonna temporale per creare divisioni di training, convalida e test cronologici. Le divisioni cronologiche usano i primi punti dati per il training, il primo per la convalida e gli ultimi punti per i test. La colonna temporale può essere una colonna di marca temporale, intero o stringa.

Suddivisione manuale: in Databricks Runtime 15.3 ML e versioni successive è possibile usare l'API per configurare una suddivisione manuale. Specificare una colonna divisa e usare i valori train, validateo test per identificare le righe da usare per il training, la convalida e il test dei set di dati. Tutte le righe con valori di colonna suddivisi diversi da train, testo validate vengono ignorate e viene generato un avviso corrispondente.

Campionamento di set di dati di grandi dimensioni

Anche se AutoML distribuisce le prove di ottimizzazione degli iperparametri tra i nodi di lavoro di un cluster, ogni modello viene sottoposto a training su un singolo nodo di lavoro.

AutoML stima automaticamente la memoria necessaria per caricare ed eseguire il training del set di dati ed esegue il campionamento del set di dati, se necessario.

Versione di Databricks Runtime Comportamento di campionamento
9.1 LTS ML - 10.4 LTS ML La frazione di campionamento è costante e non dipende dal tipo di nodo o dalla memoria del cluster per nodo.
11.x ML La frazione di campionamento aumenta per i nodi di lavoro con più memoria per core. Per aumentare le dimensioni del campione:

- Usare un tipo di istanza ottimizzata per la memoria.
- Regolare spark.task.cpus nella configurazione di Spark. Il valore predefinito è 1 e il valore massimo è il numero di CPU nel nodo di lavoro. Il valore massimo è il numero di CPU nel nodo di lavoro. Quando si aumenta questo valore, le dimensioni del campione sono maggiori, ma meno versioni di valutazione vengono eseguite in parallelo.

Esempio: in un computer con 4 core e 64 GB di RAM:

- Con spark.task.cpus=1, quattro versioni di valutazione vengono eseguite per ogni ruolo di lavoro, ognuna con 16 GB di RAM.
- Con spark.task.cpus=4, viene eseguita una versione di valutazione per ogni ruolo di lavoro, usando tutta la RAM da 64 GB.
11.3 LTS ML e versioni successive Se AutoML esegue l'esempio del set di dati, la frazione di campionamento viene visualizzata nella scheda Panoramica dell'interfaccia utente.
12.2 LTS ML e versioni successive AutoML può gestire set di dati di dimensioni maggiori allocando più core CPU per ogni attività di training. Aumentare le dimensioni del campione selezionando un'istanza con più memoria totale.

Per i problemi di classificazione, AutoML usa il sampleBy PySpark per il campionamento stratificato per mantenere la distribuzione delle etichette di destinazione.

Per i problemi di regressione, AutoML usa il sample PySpark .

Rilevamento dei tipi semantici

Nota

  • AutoML non esegue il rilevamento semantico dei tipi per le colonne con metodi di imputazione personalizzata specificati.

Con Databricks Runtime 9.1 LTS ML e versioni successive, AutoML tenta di rilevare se le colonne hanno un tipo semantico diverso dal tipo di dati Spark o pandas nello schema della tabella. AutoML considera queste colonne come tipo semantico rilevato. Questi rilevamenti sono un'operazione ottimale e talvolta potrebbero perdere l'esistenza di tipi semantici. È anche possibile impostare manualmente il tipo semantico di una colonna o indicare a AutoML di non applicare il rilevamento dei tipi semantici a una colonna usando annotazioni.

In particolare, AutoML apporta queste modifiche:

  • Le colonne stringa e integer che rappresentano i dati di data o timestamp vengono considerate come un tipo di timestamp.
  • Le colonne stringa che rappresentano dati numerici vengono considerate come un tipo numerico.

Con Databricks Runtime 10.1 ML e versioni successive, AutoML apporta anche queste modifiche:

  • Le colonne numeriche che contengono ID categorici vengono considerate come funzionalità categoriche.
  • Le colonne stringa che contengono testo in lingua inglese vengono considerate come una funzionalità di testo.

Annotazioni di tipo semantico

Con Databricks Runtime 10.1 ML e versioni successive, è possibile controllare manualmente il tipo semantico assegnato inserendo un'annotazione di tipo semantico in una colonna. Per annotare manualmente il tipo semantico di colonna <column-name> come <semantic-type>, usare la sintassi seguente:

metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)

<semantic-type> può essere uno dei seguenti:

  • categorical: la colonna contiene valori categorici ,ad esempio valori numerici da considerare come ID.
  • numeric: la colonna contiene valori numerici, ad esempio valori stringa che possono essere analizzati in numeri.
  • datetime: la colonna contiene valori di timestamp (valori stringa, numerici o di data che possono essere convertiti in timestamp).
  • text: la colonna stringa contiene testo in inglese.

Per disabilitare il rilevamento dei tipi semantici in una colonna, usare l'annotazione della parola chiave speciale native.