Ich arbeite an Assignment 3: Regularization. Nach einem Blick in diese Github, habe ich versucht, die Zuordnung zu lösen, aber ich bekomme einen Laufzeitfehler. Beachten Sie, dass ich eine kleinere Größe des Datasets ausgewählt habe als den Link.Udacity: Aufgabe 3: ValueError: falsche Eingabeform (1000, 10)
Dies ist die Situation:
print('Training set', train_dataset.shape, train_labels.shape)
print('Validation set', valid_dataset.shape, valid_labels.shape)
print('Test set', test_dataset.shape, test_labels.shape)
#Training set (20000, 784) (20000, 10)
#Validation set (1000, 784) (1000, 10)
#Test set (1000, 784) (1000, 10)
und hier ist das Problem:
from sklearn.linear_model import LogisticRegression
original_train_labels = train_labels
logit_clf = LogisticRegression(penalty='l2')
logit_clf.fit(train_dataset[:1000,:], original_train_labels[:1000])
, die bei der Ausführung gibt:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-4888dc0bbc75> in <module>()
4
5 logit_clf = LogisticRegression(penalty='l2')
----> 6 logit_clf.fit(train_dataset[:1000,:], original_train_labels[:1000])
7 predicted = logit_clf.predict(test_dataset)
8 print('accuracy', accuracy((np.arange(num_labels) == predicted[:,None]).astype(np.float32), test_labels), '%')
/usr/local/lib/python2.7/dist-packages/sklearn/linear_model/logistic.pyc in fit(self, X, y, sample_weight)
1140
1141 X, y = check_X_y(X, y, accept_sparse='csr', dtype=np.float64,
-> 1142 order="C")
1143 check_classification_targets(y)
1144 self.classes_ = np.unique(y)
/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.pyc in check_X_y(X, y, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)
513 dtype=None)
514 else:
--> 515 y = column_or_1d(y, warn=True)
516 _assert_all_finite(y)
517 if y_numeric and y.dtype.kind == 'O':
/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.pyc in column_or_1d(y, warn)
549 return np.ravel(y)
550
--> 551 raise ValueError("bad input shape {0}".format(shape))
552
553
ValueError: bad input shape (1000, 10)
Irgendeine Idee, wie man dieses Problem beheben?
http://stackoverflow.com/questions/31306390/sklearn-classifier-get-valueerror-bad-input-shape –
Hmm dank @MosesKoledoye, aber Ich verstehe nicht genau, wie ich mein Problem mit diesem Link lösen soll (verzeihe meine Unwissenheit). Kannst du helfen? :) – gsamaras
Die Form Ihrer Ausgabe ist wahrscheinlich unpassend. Können Sie 'original_train_labels.shape' drucken? –