我有一个分类和连续的混合特征。我已经索引了我所有的分类变量,我使用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如何知道它们之间的区别。我在这里错过了什么?这段代码看起来很有效,并给出了很好的效果,但是我有一种预感,我在这里做了一些错误的事情。
发布于 2017-07-04 15:34:19
Spark使用MaxBins指定一个功能是绝对的或连续的。如果不同值的数量<= MaxBins,则为绝对值。否则是连续的。有关更多信息,请查看星火的文档:决策树
https://stackoverflow.com/questions/44332417
复制相似问题