Spark 中的 DecisionTree.trainClassifier 参数是什么

What are DecisionTree.trainClassifier parameters in Spark

我正在研究 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)个参数我没看懂

Google 表示它们是分类特征,lambda 和 alpha。 谁能更好地解释一下?

需要您的帮助

函数的签名是:

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

spark DecisionTree source code 中可以看到参数的说明:

分类特征信息

存储分类特征数量的地图。条目 (n -> k) 表示特征 n 是分类的,具有从 0 开始索引的 k 个类别:{0, 1, ..., k-1}。

最大深度

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

maxBins

用于分割特征的最大 bin 数(建议值:32)

第三:
categoricalFeaturesInfo:Any 不在此地图中的要素被视为连续要素。

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

Map[Int,Int]表示所有特征都是数值类型

第五:
很容易理解,就是树的(最大)深度。

第六:
maxBins:离散化连续特征时使用的箱数。

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

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

您可以参考本书 "Adcaned Analytics with Spark"(第 4.8-4.10 章)了解更多详情。