中编码和组装多个功能
使用Spark ML变压器,我到达了DataFrame
,其中每一行看起来像这样:
Row(object_id, text_features_vector, color_features, type_features)
其中text_features
是项权的稀疏向量,color_features
是一个小的20元(单热编码器)颜色密集向量,type_features
也是一个类型的单热编码器密集向量。
一个好的方法是(使用Spark的工具)将这些特性合并到一个单一的大数组中,以便我测量任何两个对象之间的余弦距离之类的东西?
你可以使用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)
PySpark示例参见:在PySpark