为什么我的DecisionTreeClassifier模型在预测时会抱怨labelCol不存在?

时间:2019-02-18 18:11:28

标签: scala apache-spark machine-learning

我开始编写用于对一系列文档中的段落进行分类的ML模型。我写了我的模型,结果看起来很棒!但是,当我尝试提供不包含labelCol的CSV(即标记列,即我要预测的列)时,它会引发错误! “字段tagIndexed不存在。”

所以这很奇怪。我要预测的是“标签”列,为什么当我调用type: ' bar ',(在Predict.scala中)时会期望有“ tagIndexed”列?我没有ML的经验,但是所有的DecisionTreeClassifiers倾向于在测试数据中不存在labelCol。我在这里想念什么?

我创建了模型,并使用测试数据对其进行了验证,然后将其保存到磁盘中。然后,在另一个Scala对象中,加载模型并将csv传递给它。

model.transform(df)

预期结果是预测模型不会引发错误。而是抛出错误“字段“ tagIndexed”不存在”。

1 个答案:

答案 0 :(得分:1)

由于它位于colSeq列输出中,因此您似乎已在功能中包括了标签字段。在此步骤中,您只想包括功能列:

.setInputCols((numericCols ++ colSeq.map(_+"Indexed")).toArray)

我发现使用.filterNot()函数很有帮助。