gpt4 book ai didi

scala - 为什么我不能显示 Spark MultilayerPerceptronClassifier 的预测列?

转载 作者:行者123 更新时间:2023-12-04 12:39:40 26 4
gpt4 key购买 nike

我正在使用 Spark 的 MultilayerPerceptronClassifier。这会在“预测”中生成一列“预测”。当我尝试显示它时,出现错误:

SparkException: Failed to execute user defined function($anonfun$1: (vector) => double) ...
Caused by: java.lang.IllegalArgumentException: requirement failed: A & B Dimension mismatch!

其他列,例如矢量显示OK。
部分预测模式:
|-- vector: vector (nullable = true)
|-- prediction: double (nullable = true)

我的代码是:
//racist is boolean, needs to be string:
val train2 = train.withColumn("racist", 'racist.cast("String"))
val test2 = test.withColumn("racist", 'racist.cast("String"))

val indexer = new StringIndexer().setInputCol("racist").setOutputCol("indexracist")

val word2Vec = new Word2Vec().setInputCol("lemma").setOutputCol("vector") //.setVectorSize(3).setMinCount(0)

val layers = Array[Int](4,5, 2)

val mpc = new MultilayerPerceptronClassifier().setLayers(layers).setBlockSize(128).setSeed(1234L).setMaxIter(100).setFeaturesCol("vector").setLabelCol("indexracist")

val pipeline = new Pipeline().setStages(Array(indexer, word2Vec, mpc))

val model = pipeline.fit(train2)

val predictions = model.transform(test2)

predictions.select("prediction").show()

编辑提出的类似问题的问题是
val layers = Array[Int](0, 0, 0, 0) 

这不是这里的情况,也不是同样的错误。

再次编辑:训练和测试的第 0 部分以 PARQUET 格式保存 here .

最佳答案

添加 .setVectorSize(3).setMinCount(0) 并更改 val layers = Array[Int](3,5, 2) 使其工作:

val word2Vec = new Word2Vec().setInputCol("lemma").setOutputCol("vector").setVectorSize(3).setMinCount(0)

// specify layers for the neural network:
// input layer of size 4 (features), two intermediate of size 5 and 4
// and output of size 3 (classes)
val layers = Array[Int](3,5, 2)

关于scala - 为什么我不能显示 Spark MultilayerPerceptronClassifier 的预测列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45210682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com