【发布时间】:2023-03-18 02:08:01
【问题描述】:
我想使用 SparkML MultilayerPerceptronClassifier() 估计以下模型。
val formula = new RFormula()
.setFormula("vtplus15predict~ vhisttplus15 + vhistt + vt + vtminus15 + Time + Length + Day")
.setFeaturesCol("features")
.setLabelCol("label")
formula.fit(data).transform(data)
注意:特征是向量,标签是Double
root
|-- features: vector (nullable = true)
|-- label: double (nullable = false)
我将 MLP 估计器定义如下:
val layers = Array[Int](6, 5, 8, 1) //I suspect this is where it went wrong
val mlp = new MultilayerPerceptronClassifier()
.setLayers(layers)
.setBlockSize(128)
.setSeed(1234L)
.setMaxIter(100)
// train the model
val model = mlp.fit(train)
很遗憾,我收到以下错误:
使用 Spark 的默认 log4j 配置文件:org/apache/spark/log4j-defaults.properties
线程“主”org.apache.spark.SparkException 中的异常:作业因阶段失败而中止:阶段 3.0 中的任务 0 失败 1 次,最近一次失败:阶段 3.0 中丢失任务 0.0(TID 3,本地主机,执行程序驱动程序):java.lang.ArrayIndexOutOfBoundsException:11 在 org.apache.spark.ml.classification.LabelConverter$.encodeLabeledPoint(MultilayerPerceptronClassifier.scala:121) 在 org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$3.apply(MultilayerPerceptronClassifier.scala:245) 在 org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$3.apply(MultilayerPerceptronClassifier.scala:245) 在 scala.collection.Iterator$$anon$11.next(Iterator.scala:363) 在 scala.collection.Iterator$GroupedIterator.takeDestructively(Iterator.scala:935) 在 scala.collection.Iterator$GroupedIterator.go(Iterator.scala:950) ...
【问题讨论】:
标签: scala apache-spark neural-network apache-spark-mllib apache-spark-ml