【发布时间】:2016-12-10 14:28:36
【问题描述】:
我正在尝试基于日志文件构建决策树。一些特征集很大,包含数千个唯一值。我正在尝试在 Java 中使用管道和数据框的新习语。我为每个分类特征列构建了一个带有多个 StringIndexer 管道阶段的管道。然后我使用 VectorAssembler 创建一个特征向量。在 VectorAssembler 阶段之后,生成的数据框对我来说看起来很完美。我的管道看起来大概像
StringIndexer->StringIndexer->StringIndexer->VectorAssembler->DecisionTreeClassifier
但是我收到以下错误:
DecisionTree 要求 maxBins (= 32) 至少与每个分类特征中的值的数量一样大,但分类特征 5 有 49 个值。考虑删除这个和其他具有大量值的分类特征,或者添加更多的训练示例。
我可以通过使用 Normalizer 解决此问题,但生成的决策树无法满足我的需求,因为我需要生成具有原始特征值的 DSL 决策树。我无法手动设置 maxBins,因为整个管道是一起执行的。我希望生成的决策树具有 StringIndexer 生成的值(例如 Feature 5
【问题讨论】:
标签: java machine-learning apache-spark-mllib