Kom igångKom igång gratis

Strängar och faktorer

Som du vet kräver Spark numerisk data för modellering. Hittills har det inte varit något problem – även booleska kolumner kan enkelt konverteras till heltal. Men du kommer också att använda flygbolaget och flygets destination som särdrag i din modell. Dessa är kodade som strängar och det finns inget uppenbart sätt att konvertera dem till en numerisk datatyp.

Tur nog har PySpark inbyggda funktioner för detta i undermodulen pyspark.ml.features. Du kan skapa så kallade "one-hot-vektorer" för att representera flygbolag och destination för varje flyg. En one-hot-vektor är ett sätt att representera ett kategoriskt särdrag där varje observation har en vektor där alla element är noll – utom högst ett element, som har värdet ett (1).

Varje element i vektorn motsvarar en nivå av särdragen, så det går att avgöra vilken nivå som är rätt genom att se vilket element i vektorn som är lika med ett (1).

Första steget för att koda ditt kategoriska särdrag är att skapa en StringIndexer. Medlemmar av denna klass är Estimatorer som tar en DataFrame med en kolumn av strängar och mappar varje unik sträng till ett tal. Sedan returnerar Estimatorn en Transformer som tar en DataFrame, kopplar mappningen till den som metadata och returnerar en ny DataFrame med en numerisk kolumn som motsvarar strängkolumnen.

Andra steget är att koda denna numeriska kolumn som en one-hot-vektor med hjälp av en OneHotEncoder. Det fungerar på exakt samma sätt som StringIndexer – genom att skapa en Estimator och sedan en Transformer. Slutresultatet är en kolumn som kodar ditt kategoriska särdrag som en vektor som är lämplig för maskininlärning!

Det kan verka komplicerat, men oroa dig inte! Allt du behöver komma ihåg är att du måste skapa en StringIndexer och en OneHotEncoder – sedan tar Pipeline hand om resten.

Varför behöver du koda ett kategoriskt särdrag som en one-hot-vektor?

Den här övningen är en del av kursen

Grunderna i PySpark

Visa kurs

Interaktiv övning med praktiskt arbete

Gör teori till handling med en av våra interaktiva övningar

Starta övningen