Ho un set di dati di addestramento in forma di matrice di dimensioni 5000 x 3027 (set di dati CIFAR-10). Usando array_split in numpy, l'ho suddiviso in 5 parti diverse, e voglio selezionare solo una delle parti come la croce di convalida. Comunque il mio problema arriva quando uso qualcosa come XTrain [[Indexes]] dove index è un array come [0,1,2,3], perché fare questo mi dà un tensore 3D di dimensioni 4 x 1000 x 3027, e non una matrice. Come faccio a comprimere il "4 x 1000" in 4000 righe, per ottenere una matrice di 4000 x 3027?numpy: Come posso selezionare indici specifici in un array np per la convalida incrociata k-fold?
for fold in range(len(X_train_folds)):
indexes = np.delete(np.arange(len(X_train_folds)), fold)
XTrain = X_train_folds[indexes]
X_cv = X_train_folds[fold]
yTrain = y_train_folds[indexes]
y_cv = y_train_folds[fold]
classifier.train(XTrain, yTrain)
dists = classifier.compute_distances_no_loops(X_cv)
y_test_pred = classifier.predict_labels(dists, k)
num_correct = np.sum(y_test_pred == y_test)
accuracy = float(num_correct/num_test)
k_to_accuracy[k] = accuracy
Puoi condividere il codice hai problemi con? – dmlittle
Aggiunto il codice, la forma di XTrain = X_train_folds [indici] è 4 x 1000 x 3027, ma spero di farlo diventare 4000 x 3027 – kwotsin