【发布时间】:2018-05-03 17:42:05
【问题描述】:
我的错误类似于这 2 个帖子,尝试了这些可能性,但仍然看到以下错误: : CLOUDERA && STACK OVERFLOW
var categoricalFeaturesInfo = Map[Int, Int]()
categoricalFeaturesInfo += (0 -> 31)
categoricalFeaturesInfo += (1 -> 7)
java.lang.IllegalArgumentException:要求失败:DecisionTree 要求 maxBins (= 3) 至少与值的数量一样大 在每个分类特征中,但分类特征 0 有 31 个值。 考虑删除这个和其他具有大的分类特征 值的数量,或添加更多的训练示例。
val numClasses = 2
val impurity = "gini"
val maxDepth = 9
val maxBins = 32
val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo,impurity, maxDepth, maxBins)
问题:最大的分类变量是 31 ,我试过 maxBins = 32 (根据这些帖子中的答案)。我错过了什么吗?
就像试验 n 错误一样,我尝试了所有值集,例如 2 、 3 10 、 15 、 50 、 10000 ,看到同样的错误。 !
使用的地图功能:
val mlprep = flightsRDD.map(flight => {
val monthday = flight.dofM.toInt - 1 // category
val weekday = flight.dofW.toInt - 1 // category
})
【问题讨论】:
-
你使用的是什么
Map实现? -
我正在尝试使用这个 mapR 链接来实现这个算法。代码非常相似,使用的地图功能相同:mapr.com/blog/apache-spark-machine-learning-tutorial
-
用地图功能更新了帖子!
标签: scala apache-spark machine-learning decision-tree