Ich habe einen Trainingsdatensatz in Matrixform der Dimensionen 5000 x 3027 (CIFAR-10 Datensatz). Mit array_split in numpy partitionierte ich es in 5 verschiedene Teile, und ich möchte nur einen der Teile als die Kreuzvalidierung falten. Allerdings kommt mein Problem, wenn ich etwas wie XTrain [[Indizes]] wo Indizes ist ein Array wie [0,1,2,3], weil dies mir einen 3D-Tensor der Abmessungen 4 x 1000 x 3027, und nicht eine Matrix. Wie komprimiere ich die "4 x 1000" in 4000 Zeilen, um eine Matrix von 4000 x 3027 zu erhalten?numpy: Wie kann ich bestimmte Indizes in einem np-Array für k-fache Kreuzvalidierung auswählen?
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
Können Sie den Code teilen Sie Probleme haben, mit? – dmlittle
Hinzugefügt den Code, die Form von XTrain = X_train_folds [Indizes] ist 4 x 1000 x 3027, aber ich hoffe, dass es zu 4000 x 3027 werden – kwotsin