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
我混合了分类特征和连续特征。我已经为所有分类变量编制了索引,并使用 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