我必须使用这个代码:
val dt = new DecisionTreeClassifier().setLabelCol("indexedLabel").setFeaturesCol("indexedFeatures").setImpurity(impurity).setMaxBins(maxBins).setMaxDepth(maxDepth);
我需要添加分类特征信息,这样决策树就不会处理 indexedCategoricalFeatures
作为数字。我有这张Map:
val categoricalFeaturesInfo = Map(143 -> 126, 144 -> 5, 145 -> 216, 146 -> 100, 147 -> 14, 148 -> 8, 149 -> 19, 150 -> 7);
但是它只适用于 DecisionTree.trainClassifier
方法。我不能使用这个方法,因为它接受的参数与我的不同。。。我真的很想使用 DecisionTreeClassifie
正确处理分类特征。
谢谢你的帮助!
1条答案
按热度按时间70gysomp1#
您混合了两种不同的API,它们采用不同的方法处理分类数据:
RDD
基于o.a.s.mllib
它通过传递categoricalFeaturesInfo
Map。Dataset
(DataFrame
)o.a.s.ml
它使用列元数据来确定变量类型。如果你正确使用ML
创建特性的转换器应该为您自动处理,否则您必须手动提供元数据。