Używam programu Spark's MultilayerPerceptronClassifier. Generuje to kolumnę "przewidywaną" w "przewidywaniach". Kiedy próbuję to pokazać, pojawia się błąd:Dlaczego nie mogę wyświetlić kolumny predykcyjnej Spark MultilayerPerceptronClassifier?
SparkException: Failed to execute user defined function($anonfun$1: (vector) => double) ...
Caused by: java.lang.IllegalArgumentException: requirement failed: A & B Dimension mismatch!
Inne kolumny, na przykład wyświetlanie wektorowe OK. Część schematu przewidywania:
|-- vector: vector (nullable = true)
|-- prediction: double (nullable = true)
Mój kod to:
//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()
EDIT problemem proponowanej Podobne pytanie było
val layers = Array[Int](0, 0, 0, 0)
który nie jest w tym przypadku, nie jest to ta sama błąd.
EDYCJA PONOWNIE: część0 pociągu i testu są zapisywane w formacie PARQUET here.
Nope nie podobnego. – schoon
Problem w tym pytaniu dotyczył warstw val = Array [Int] (0, 0, 0, 0), co nie ma tu miejsca, ani nie był tym samym błędem. – schoon
Czy możesz podać próbkę treningowej ramki danych? –