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

我有一组包含分类和连续特征的数据。我已经对所有分类变量进行了索引,并使用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的文档:决策树

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注