apache spark - ¿Cómo fusionar múltiples vectores de características en DataFrame?
apache-spark machine-learning (1)
Usando transformadores Spark ML, llegué a un DataFrame
donde cada fila se ve así:
Row(object_id, text_features_vector, color_features, type_features)
donde text_features
es un vector disperso de pesos de término, color_features
es un vector denso de colores de 20 elementos (codificador de un solo calor), y type_features
también es un vector denso de tipos de codificador de un solo calor.
¿Cuál sería un buen enfoque (utilizando las instalaciones de Spark) para combinar estas características en una sola matriz grande, de modo que mido cosas como la distancia del coseno entre dos objetos?
Puedes usar VectorAssembler :
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.sql.DataFrame
val df: DataFrame = ???
val assembler = new VectorAssembler()
.setInputCols(Array("text_features", "color_features", "type_features"))
.setOutputCol("features")
val transformed = assembler.transform(df)
Para ver el ejemplo de PySpark, codificar y ensamblar múltiples funciones en PySpark