【问题标题】:How does spark ML decision tree handle continuous features for regression problemsspark ML 决策树如何处理回归问题的连续特征
【发布时间】:2017-11-04 01:42:15
【问题描述】:

我有分类特征和连续特征的混合体。我已经为我所有的分类变量编制了索引,并使用 VectorAssembler 创建了一个特征列

        StringIndexerModel indexer = new StringIndexer()
                    .setInputCol("categorical")
                    .setOutputCol("categoricalIdx1")
                    .setHandleInvalid("skip").fit(data);
        VectorAssembler assembler = new VectorAssembler()
                    .setInputCols(new String[]{"categoricalIdx1","continuous"})
                    .setOutputCol("features");

        DecisionTreeRegressor dt = new DecisionTreeRegressor()
                                       .setMaxBins(40)
                                       .setMaxDepth(10)
                                       .setFeaturesCol("features")
                                       .setLabelCol("commission")
                                       .setPredictionCol("prediction");

我找不到任何方法来指定哪些特征是分类的,哪些是连续的。并且由于所有列都已转换为数值,DecisionTreeRegressor 如何知道差异。我在这里想念什么? 该代码似乎可以工作并且给出了很好的结果,但是我有一种预感,我在这里做错了。

【问题讨论】:

    标签: java apache-spark machine-learning regression decision-tree


    【解决方案1】:

    Spark 使用MaxBins 来指定一个特征是分类的还是连续的。如果不同值的数量 MaxBins,则它是分类的。否则,连续。更多信息,请查看 Spark 的文档:decision tree

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 1970-01-01
      • 2021-04-14
      • 2017-10-18
      • 2019-10-17
      • 2017-07-11
      • 2018-01-04
      • 2021-07-06
      • 2021-03-17
      相关资源
      最近更新 更多