为了账号安全,请及时绑定邮箱和手机立即绑定

WARN TaskSetManager: Lost Task xxx: java.lang.

WARN TaskSetManager: Lost Task xxx: java.lang.

开满天机 2022-06-15 17:51:18
我正在尝试使用 GridCV 在 scala 中进行超参数调整。但是我创建了我的管道和所有内容,我将我的数据集安装到管道中,它非常适合。然后我添加了一些,然后paramGrid在 4 个阶段后进行交叉验证,它给了我错误:scala> val cvModel = cv.fit(df)Tracker started, with env={DMLC_NUM_SERVER=0, DMLC_TRACKER_URI=10.xx.xx.xxx, DMLC_TRACKER_PORT=9091, DMLC_NUM_WORKER=1}Tracker started, with env={DMLC_NUM_SERVER=0, DMLC_TRACKER_URI=10.xx.xx.xxx, DMLC_TRACKER_PORT=9091, DMLC_NUM_WORKER=1}Tracker started, with env={DMLC_NUM_SERVER=0, DMLC_TRACKER_URI=10.xx.xx.xxx, DMLC_TRACKER_PORT=9091, DMLC_NUM_WORKER=1}Tracker started, with env={DMLC_NUM_SERVER=0, DMLC_TRACKER_URI=10.xx.xx.xxx, DMLC_TRACKER_PORT=9091, DMLC_NUM_WORKER=1}19/02/13 09:16:33 WARN TaskSetManager: Lost task 2.0 in stage 152.0 (TID 916, ip-10.xx.xx.xxx.ec2.internal, executor 7): java.lang.ArrayIndexOutOfBoundsException: 1        at org.apache.spark.ml.linalg.DenseVector.apply(Vectors.scala:448)        at org.apache.spark.ml.evaluation.BinaryClassificationEvaluator$$anonfun$1.apply(BinaryClassificationEvaluator.scala:82)        at org.apache.spark.ml.evaluation.BinaryClassificationEvaluator$$anonfun$1.apply(BinaryClassificationEvaluator.scala:81)        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)        at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter..然后实际上有两三段错误。我无法弄清楚为什么会发生这种情况,因为我是第一次在 scala 中编码。但是根据我的概念和示例中给出的代码,它似乎没有锻炼。或者有没有其他方法可以对交叉验证进行超参数调优和测试?我在setEvaluator执行代码时遇到了这个问题。我的理解是我的特征形状和 y 预测形状不匹配。但是我如何确保他们这样做呢?PS 我在 EMR 集群上运行它。我也尝试了同样的事情,只是将算法更改为逻辑回归,它工作得很好。我正在使用 xgboost v0.8 而 spark 是 v2.2
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

那么解决这个问题的诀窍是使用multiclassclassificationevaluator 而不是Binaryclassificationevaluator.



查看完整回答
反对 回复 2022-06-15
  • 1 回答
  • 0 关注
  • 565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信