Ошибка в MLP Classifier в методе подгонки pyspark - PullRequest
0 голосов
/ 05 ноября 2018

Я использую 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)
...