Si vous voulez diviser l'ensemble de données une fois en deux parties, vous pouvez utiliser numpy.random.shuffle
ou numpy.random.permutation
si vous avez besoin de garder la trace des indices (n'oubliez pas de fixer la graine aléatoire pour que tout soit reproductible) :
import numpy
# x is your dataset
x = numpy.random.rand(100, 5)
numpy.random.shuffle(x)
training, test = x[:80,:], x[80:,:]
o
import numpy
# x is your dataset
x = numpy.random.rand(100, 5)
indices = numpy.random.permutation(x.shape[0])
training_idx, test_idx = indices[:80], indices[80:]
training, test = x[training_idx,:], x[test_idx,:]
Il y a beaucoup d'autres façons de faire de partitionner de manière répétée le même ensemble de données pour la validation croisée. Beaucoup d'entre eux sont disponible dans le sklearn
bibliothèque (k-fold, leave-n-out, ...). sklearn
comprend également des fonctions plus avancées "échantillonnage stratifié" méthodes qui créent une partition des données équilibrée en ce qui concerne certaines caractéristiques, par exemple pour s'assurer qu'il y a la même proportion d'exemples positifs et négatifs dans l'ensemble d'apprentissage et de test.