Comment effectuer en vertu de l'échantillonnage dans scikit learn?
Nous avons une rétine dataset où l'œil malade de l'information constitue 70% de l'information, alors que l'autre œil malade constitue les 30% restants.Nous voulons un ensemble de données dans lequel les malades et non malades, les échantillons doivent être en nombre égal. Est-il toutes les fonctions disponibles avec l'aide de laquelle on peut faire de même?
Vous devez vous connecter pour publier un commentaire.
J'ai choisi de le faire avec Les Pandas
DataFrame
etnumpy.aléatoire.choix
. De cette façon, il est facile de faire de l'échantillonnage aléatoire pour produire aussi de la taille des ensembles de données. Un exemple:Ces données a deux non-sain et cinq échantillons sains. Pour choisir au hasard deux échantillons de la santé de la population, vous n':
Pour sélectionner automatiquement un sous-échantillon de la même taille que le non-groupe en bonne santé que vous pouvez faire:
Comme variante, vous pouvez utiliser la méthode stochastique. Supposons, vous avez un dataset
data
qui est un grand nombre de tuples(X, Y)
, oùY
est malade des yeux de l'information (0 ou 1). Vous pouvez préparer un wrapper pour votre jeu de données, qui passe tous les non malades des yeux et passe malades yeux avec une probabilité de 0,3 /0.7 (seuls 30% des malades yeux de l'ensemble de données).Attention, si vous avez besoin d'utiliser ce wrapper comme un générateur de nombreuses fois et que vous voulez avoir des résultats identiques, vous devez vous fixer des valeurs aléatoires avant d'utiliser la fonction
random()
. Plus à ce sujet: https://docs.python.org/2/library/random.htmlVous pouvez utiliser le
np.random.choice
pour un naïf en vertu de l'échantillonnage, comme suggéré précédemment, mais un problème peut être que certains de vos échantillons aléatoires sont très similaires, et donc induit en erreur sur l'ensemble de données.Une meilleure option est d'utiliser le déséquilibre de l'apprendre package qui a de multiples options pour l'équilibrage d'un jeu de données. Un bon tutoriel et la description de ceux-ci peuvent être trouvés ici.
La liste des paquets quelques bonnes options pour les sous échantillonnage (à partir de leur github):