我必须使用此代码:
val dt = new DecisionTreeClassifier().setLabelCol("indexedLabel").setFeaturesCol("indexedFeatures").setImpurity(impurity).setMaxBins(maxBins).setMaxDepth(maxDepth);
我需要添加分类功能信息,以便决策树不会将indexedCategoricalFeatures
视为数字。我有这张地图:
val categoricalFeaturesInfo = Map(143 -> 126, 144 -> 5, 145 -> 216, 146 -> 100, 147 -> 14, 148 -> 8, 149 -> 19, 150 -> 7);
但它仅适用于DecisionTree.trainClassifier
方法。我不能使用这种方法,因为它接受的参数不同于我拥有的参数...我真的希望能够使用DecisionTreeClassifie
r来正确处理分类特征。
感谢您的帮助!
答案 0 :(得分:1)
您正在混合两种不同的API,这些API采用不同的分类数据方法:
RDD
基于o.a.s.mllib
,通过传递categoricalFeaturesInfo
地图提供所需的元数据。Dataset
(DataFrame
)o.a.s.ml
使用列元数据来确定变量类型。如果您正确使用ML
变换器来创建功能,则应自动为您处理,否则您必须provide metadata manually。