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