spark ML决策树如何处理回归问题的连续特征

How does spark ML decision tree handle continuous features for regression problems

我混合了分类特征和连续特征。我已经为所有分类变量编制了索引,并使用 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 如何知道差异。我在这里错过了什么? 该代码似乎有效并给出了很好的结果,但我有一种预感,我在这里做错了什么。

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