我开始编写用于对一系列文档中的段落进行分类的ML模型。我写了我的模型,结果看起来很棒!但是,当我尝试提供不包含labelCol的CSV(即标记列,即我要预测的列)时,它会引发错误! “字段tagIndexed不存在。”
所以这很奇怪。我要预测的是“标签”列,为什么当我调用type: ' bar ',
(在Predict.scala中)时会期望有“ tagIndexed”列?我没有ML的经验,但是所有的DecisionTreeClassifiers倾向于在测试数据中不存在labelCol。我在这里想念什么?
我创建了模型,并使用测试数据对其进行了验证,然后将其保存到磁盘中。然后,在另一个Scala对象中,加载模型并将csv传递给它。
model.transform(df)
预期结果是预测模型不会引发错误。而是抛出错误“字段“ tagIndexed”不存在”。
答案 0 :(得分:1)
由于它位于colSeq列输出中,因此您似乎已在功能中包括了标签字段。在此步骤中,您只想包括功能列:
.setInputCols((numericCols ++ colSeq.map(_+"Indexed")).toArray)
我发现使用.filterNot()函数很有帮助。