Das könnte Naiv sein, aber ich habe gerade mit PySpark und Spark angefangen. Bitte hilf mir, die Eine Heiße Technik in Pyspark zu verstehen. Ich versuche OneHotEncoding auf einer der Spalten zu machen. Nach einer Hot-Codierung fügt das Datenrahmenschema einen Vektor hinzu. Um den Machine Learning-Algorithmus anzuwenden, sollten jedoch einzelne Spalten zum vorhandenen Datenrahmen hinzugefügt werden, wobei jede Spalte eine Kategorie darstellt, nicht jedoch die Spalte für den Vektortyp. Wie kann die OneHotEncoding validiert werden?PySpark- OneHotEncoding
Mein Code:
stringIndexer = StringIndexer(inputCol="business_type", outputCol="business_type_Index")
model = stringIndexer.fit(df)
indexed = model.transform(df)
encoder = OneHotEncoder(dropLast=False, inputCol="business_type_Index", outputCol="business_type_Vec")
encoded = encoder.transform(indexed)
encoded.select("business_type_Vec").show()
Diese Anzeige:
+-----------------+
|business_type_Vec|
+-----------------+
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
+-----------------+
only showing top 20 rows
Die neu hinzugefügte Spalte ist der Vektortyp. Wie kann ich das in einzelne Spalten jeder Kategorie konvertieren
Dies ist das erwartete Verhalten, das Sie nicht in einzelne Spalten konvertieren müssen, da Spark ML mit Feature-Vektoren arbeitet. – mtoto