首页 > 解决方案 > 如何使用具有两列文本作为特征的 apache spark ML 训练逻辑回归?

问题描述

我正在尝试使用 Apache Spark 训练逻辑回归模型。我的数据框看起来像这样。

StructType schema = new StructType(new StructField[]{
    new StructField("label", DataTypes.DoubleType, false, Metadata.empty()),
    new StructField("text_A", DataTypes.StringType, false, Metadata.empty()),
    new StructField("text_B", DataTypes.StringType, false, Metadata.empty()),
});

Dataset<Row> trainingDataFrame =spark.createDataFrame(trainingdata, schema);

我想同时使用text_Atext_B作为特征来训练模型,但我不想只是连接它们。我想让它们成为单独的特征类别(所以如果同一个词出现在text_Aandtext_B中,它们被认为是不同的特征)。在当前的 lr 类中,它使用features列作为默认值,并且只使用特征来训练模型。是否可以使用两个不同的列作为训练特征?或者如何将这两个文本特征合并到一个features列中进行训练?

标签: javaapache-sparkapache-spark-mllib

解决方案


所以我实际上在网上研究了一下,发现如何在DataFrame中合并多个特征向量?这似乎是对我的问题的准确答案。


推荐阅读