如何处理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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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