Seite 1 von 1

ValueError: shape mismatch: value array of shape...

Verfasst: Samstag 8. Juli 2017, 12:33
von uschmidt
Hallo zusammen,

im Rahmen einer linearen Diskriminanzanalyse bekomme ich folgende Fehlermeldung:

ValueError: shape mismatch: value array of shape (47,) could not be broadcast to indexing result of shape (47,1)

Da ich noch nicht soviel Erfahrung mit Python habe, weiß ich leider nicht, wie ich diesen Fehler beheben kann. Kann mir evtl. jemand weiterhelfen?

Mein Code sieht wie folgt aus?

Code: Alles auswählen

tscv = TimeSeriesSplit(n_splits=10)

X=X.values.reshape(-1,1)
y=y.values.reshape(-1,1)

lda=LinearDiscriminantAnalysis()

acc=[]
prediction=np.zeros(y.shape)
for train_index, test_index in tscv.split(X):
    skip_size = len(next(tscv.split(X))[0])
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    lda.fit(X_train.astype(int),y_train.astype(int))
    y_pred=lda.predict(X_test)
    prediction[test_index]=y_pred  
    acc.append(metrics.accuracy_score(y_test, y_pred))
    print('Acc: %.10f' % metrics.accuracy_score(y_test, y_pred))

Danke schon mal!!!

Re: ValueError: shape mismatch: value array of shape...

Verfasst: Samstag 8. Juli 2017, 19:32
von Sirius3
@uschmidt: numpy ist sehr strikt darin, ob es sich um ein eindimensionales Array oder ein zweidimensionales Array handelt. Daher muß entweder das zweidimensionale in ein eindimensionales umgewandelt werden »array_2d[:, 0]« oder umgekehrt »array_1d[:, None]«.

Re: ValueError: shape mismatch: value array of shape...

Verfasst: Samstag 8. Juli 2017, 22:48
von uschmidt
Danke erstmal für deinen Tipp! In welcher Zeile genau muss ich denn meinen Code verändern?

Python gibt mir folgenden Hinweis
A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
y = column_or_1d(y, warn=True)
Wenn ich nun allerdings folgendes versuche

Code: Alles auswählen

lda.fit(X_train.astype(int),y_train[:, 0].astype(int))
bekomme ich nach wie vor die gleiche Fehlermeldung.

Re: ValueError: shape mismatch: value array of shape...

Verfasst: Samstag 8. Juli 2017, 23:38
von Sirius3
@uschmidt: warum erzeugst Du überhaupt in Zeile 3 und 4 2d-Arrays wenn Du sie gar nicht willst? Du hast wohl mit X_train das selbe Problem wie bei y_train.

Re: ValueError: shape mismatch: value array of shape...

Verfasst: Sonntag 9. Juli 2017, 09:12
von uschmidt
Wenn ich das nicht mache, bekomme ich folgende Fehlermeldung:
ValueError: LinearDiscriminantAnalysis expects at least 2 samples provided in a 2 dimensional array-like input