#python-3.x #scikit-learn
#python-3.x #scikit-learn
Вопрос:
Я хочу обучить и протестировать классификатор MLP, используя библиотеку «sklearn.neural_network» и набор данных mnist. При использовании метода оценки и предоставлении допустимых данных в виде массива возникает эта ошибка: ValueError: ожидаемый массив, подобный массиву (массив или нестроковая последовательность), получен массив (‘B’, [7, 2, 1, 0, 4, 1, 4, 9, 5, 9,0 …
Обучающие наборы данных X и Y имеют одинаковую длину. Не знаю, что проверить, чтобы решить эту проблему. Я использую записную книжку Anaconda / Jupyter.
код:
clf = MLPClassifier(hidden_layer_sizes=(100, ), activation='relu',
solver='adam', alpha=0.0001, batch_size='auto',
learning_rate='constant', learning_rate_init=0.001,
power_t=0.5, max_iter=200, shuffle=True, random_state=None,
tol=0.0001, verbose=False, warm_start=False, momentum=0.9,
nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1,
beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10)
mndata = MNIST('./samples')
mndata.gz = True
images_tr, labels_tr = mndata.load_training()
images_test, labels_test = mndata.load_testing()
clf.fit(images_tr, labels_tr)
acc = clf.score(images_test, labels_test)
print(acc)
ошибка:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-38-c20e564e6239> in <module>
18 print(len(images_test))
19 print(len(labels_test))
---> 20 acc = clf.score(images_test, labels_test)
21 print(acc)
~Anaconda3libsite-packagessklearnbase.py in score(self, X, y, sample_weight)
288 """
289 from .metrics import accuracy_score
--> 290 return accuracy_score(y, self.predict(X), sample_weight=sample_weight)
291
292
~Anaconda3libsite-packagessklearnmetricsclassification.py in accuracy_score(y_true, y_pred, normalize, sample_weight)
174
175 # Compute accuracy for each possible representation
--> 176 y_type, y_true, y_pred = _check_targets(y_true, y_pred)
177 check_consistent_length(y_true, y_pred, sample_weight)
178 if y_type.startswith('multilabel'):
~Anaconda3libsite-packagessklearnmetricsclassification.py in _check_targets(y_true, y_pred)
70 """
71 check_consistent_length(y_true, y_pred)
---> 72 type_true = type_of_target(y_true)
73 type_pred = type_of_target(y_pred)
74
~Anaconda3libsite-packagessklearnutilsmulticlass.py in type_of_target(y)
241 if not valid:
242 raise ValueError('Expected array-like (array or non-string sequence), '
--> 243 'got %r' % y)
244
245 sparseseries = (y.__class__.__name__ == 'SparseSeries')
ValueError: Expected array-like (array or non-string sequence), got array('B', [7, 2, 1, 0, 4, 1, 4, 9, 5, 9, 0 ...
Комментарии:
1. Пожалуйста, укажите ваш точный импорт ; откуда именно
MNIST
берется?2. Я использую этот набор данных: yann. lecun.com/exdb/mnist/index.html .