1

我有混合的分类和连续功能。我已经索引的所有我的分类变量和我用VectorAssembler创建一个功能列火花ML决策树如何处理回归问题的连续特征

 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如何知道差异。我在这里错过了什么? 该代码似乎工作,并给出了相当好的结果,但我有一个预感,我在这里做错了什么。

回答

1

火花使用MaxBins指定一个功能是分类或连续的。如果不同值的数量为< = MaxBins,则它是分类的。否则,持续。欲了解更多信息,请查看Spark的文档:decision tree