Я использую MultilayerPerceptronClassifier из pyspark.ml.classification
Мой набор данных имеет 11 функций
['fixed acidity',
'volatile acidity',
'citric acid',
'residual sugar',
'chlorides',
'free sulfur dioxide',
'total sulfur dioxide',
'density',
'pH',
'sulphates',
'alcohol']
и мой ярлык состоит из 7 классов.
-----+
|label|
+-----+
| 6|
| 3|
| 5|
| 9|
| 4|
| 8|
| 7|
+-----+
Я использую модель MultiLayerPerceptronClassifier в pyspark для обучения моего набора данных. В соответствии с соглашением pyspark ML, я определил мою архитектуру нейронной сети в этом формате
# specify layers for the neural network:
# input layer of size 11 (features), two intermediate of size 5 and 4
# and output of size 7 (classes)
layers = [11,5,4,7]
Я указываю свой классификатор
clf = MultilayerPerceptronClassifier(labelCol='label',layers=layers)
Теперь я тренируюсь с данными поезда
cvModel = clf.fit(train_data)
Может кто-нибудь сказать мне, почему я получаю эту ошибку?
Error
Py4JJavaError: An error occurred while calling o241.fit.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 47.0 failed 1 times, most recent failure: Lost task 0.0 in stage 47.0 (TID 812, localhost, executor driver): java.lang.ArrayIndexOutOfBoundsException: 8
at org.apache.spark.ml.classification.LabelConverter$.encodeLabeledPoint(MultilayerPerceptronClassifier.scala:121)
at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$3.apply(MultilayerPerceptronClassifier.scala:238)
at org.apache.spark.ml.classification.MultilayerPerceptronClassifier$$anonfun$3.apply(MultilayerPerceptronClassifier.scala:238)