Spark中的DecisionTree.trainClassifier参数是什么

时间:2016-03-25 07:51:15

标签: scala apache-spark apache-spark-mllib

我正在研究Spark MLlib。 在研究DecisionTree时,我看到了以下DecisionTree.trainClassifier用法示例。

import org.apache.spark.mllib.tree._
val model = DecisionTree.trainClassifier(trainData, 7, Map[int, int](), "gini", 4, 100)

这里有6个参数,我不了解第3(Map),第5(4)和第6(100)个参数。

谷歌表示他们是明确的功能,lambda和alpha。 谁能更好地解释一下呢?

需要你的帮助

2 个答案:

答案 0 :(得分:4)

<强>第三
categoricalFeaturesInfo:此地图中没有的任何要素都被视为连续。

例如,Map(0 - > 2,4 - > 10)指定要素0是二进制(取值0或1),而要素4有10个类别(值{0,1,... ,9})。请注意,要素索引从0开始:要素0和4是实例要素向量的第1和第5个要素。

Map [Int,Int]表示所有要素都是数字类型。

<强>第五
它很容易理解,它是树的(最大)深度。

<强>第六
maxBins:离散连续特征时使用的bin数。

增加maxBins允许算法考虑更多的分割候选者并进行细粒度的分割决策。但是,它也增加了计算和通信。

请注意,maxBins参数必须至少为最大类别数。

您可以参考本书&#34;使用Spark进行分析&#34;(第4.8-4.10章)了解更多详情。

答案 1 :(得分:2)

该功能的签名是:

  

def trainClassifier(输入:RDD [LabeledPoint],numClasses:Int,categoricalFeaturesInfo:Map [Int,Int],impurity:String,maxDepth:Int,maxBins:Int):DecisionTreeModel

,在spark DecisionTree source code 中,您可以看到参数说明:

categoricalFeaturesInfo

映射存储分类特征的arity。条目(n - > k)表示特征n是分类的,其中k个类别从0开始索引:{0,1,...,k-1}。

maxDepth

树的最大深度(例如,深度0表示1个叶节点,深度1表示1个内部节点+ 2个叶节点)。 (建议值:5)

maxBins

用于拆分功能的最大箱数(建议值:32)