IniziaInizia gratis

Stringhe e fattori

Come sai, Spark richiede dati numerici per il modeling. Finora non è stato un problema; anche le colonne booleane possono essere facilmente convertite in interi senza difficoltà. Ma userai anche la compagnia aerea e la destinazione dell’aereo come feature nel tuo modello. Queste sono codificate come stringhe e non c’è un modo evidente per convertirle in un tipo di dato numerico.

Per fortuna, PySpark ha funzioni integrate per gestire questo nel sottomodulo pyspark.ml.features. Puoi creare i cosiddetti "vettori one-hot" per rappresentare il vettore e la destinazione di ogni volo. Un vettore one-hot è un modo di rappresentare una feature categorica in cui ogni osservazione ha un vettore in cui tutti gli elementi sono zero tranne al massimo un elemento, che ha valore uno (1).

Ogni elemento del vettore corrisponde a un livello della feature, quindi è possibile capire qual è il livello corretto vedendo quale elemento del vettore è uguale a uno (1).

Il primo passo per codificare la tua feature categorica è creare uno StringIndexer. Le istanze di questa classe sono Estimator che prendono un DataFrame con una colonna di stringhe e mappano ogni stringa univoca a un numero. Quindi, l’Estimator restituisce un Transformer che prende un DataFrame, vi allega la mappatura come metadato e restituisce un nuovo DataFrame con una colonna numerica corrispondente alla colonna di stringhe.

Il secondo passo è codificare questa colonna numerica come un vettore one-hot usando un OneHotEncoder. Funziona esattamente come lo StringIndexer, creando prima un Estimator e poi un Transformer. Il risultato finale è una colonna che codifica la tua feature categorica come un vettore adatto alle routine di Machine Learning!

Può sembrare complicato, ma non preoccuparti! Devi solo ricordare che ti serve creare uno StringIndexer e un OneHotEncoder, e la Pipeline si occuperà del resto.

Perché devi codificare una feature categorica come un vettore one-hot?

Questo esercizio fa parte del corso

Fondamenti di PySpark

Visualizza il corso

Esercizio pratico interattivo

Passa dalla teoria alla pratica con uno dei nostri esercizi interattivi

Inizia esercizio