Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment créer un ensemble de train et de test à partir d’un DataFrame Pandas



Lors de l’ajustement de modèles d’apprentissage automatique à des ensembles de données, nous divisons souvent l’ensemble de données en deux ensembles :

1. Ensemble de formation : utilisé pour entraîner le modèle (70 à 80 % de l’ensemble de données d’origine)

2. Ensemble de tests : utilisé pour obtenir une estimation impartiale des performances du modèle (20 à 30 % de l’ensemble de données d’origine)

En Python, il existe deux manières courantes de diviser un DataFrame pandas en un ensemble d’entraînement et un ensemble de tests :

Méthode 1 : utilisez train_test_split() de sklearn

from sklearn.model_selection import train_test_split

train, test = train_test_split(df, test_size=0.2, random_state=0)

Méthode 2 : utiliser sample() à partir de pandas

train = df.sample(frac=0.8,random_state=0)
test = df.drop(train.index)

Les exemples suivants montrent comment utiliser chaque méthode avec le DataFrame pandas suivant :

import pandas as pd
import numpy as np

#make this example reproducible
np.random.seed(1)

#create DataFrame with 1,000 rows and 3 columns
df = pd.DataFrame({'x1': np.random.randint(30, size=1000),
                   'x2': np.random.randint(12, size=1000),
                   'y': np.random.randint(2, size=1000)})

#view first few rows of DataFrame
df.head()

        x1	x2	y
0	5	1	1
1	11	8	0
2	12	4	1
3	8	7	0
4	9	0	0

Exemple 1 : utilisez train_test_split() depuis sklearn

Le code suivant montre comment utiliser la fonction train_test_split() de sklearn pour diviser le DataFrame pandas en ensembles d’entraînement et de test :

from sklearn.model_selection import train_test_split

#split original DataFrame into training and testing sets
train, test = train_test_split(df, test_size=0.2, random_state=0)

#view first few rows of each set
print(train.head())

     x1  x2  y
687  16   2  0
500  18   2  1
332   4  10  1
979   2   8  1
817  11   1  0

print(test.head())

     x1  x2  y
993  22   1  1
859  27   6  0
298  27   8  1
553  20   6  0
672   9   2  1

#print size of each set
print(train.shape, test.shape)

(800, 3) (200, 3)

À partir du résultat, nous pouvons voir que deux ensembles ont été créés :

  • Ensemble de formation : 800 lignes et 3 colonnes
  • Ensemble de test : 200 lignes et 3 colonnes

Notez que test_size contrôle le pourcentage d’observations du DataFrame d’origine qui appartiendra à l’ensemble de test et que la valeur random_state rend la division reproductible.

Exemple 2 : utilisez sample() à partir de pandas

Le code suivant montre comment utiliser la fonction sample() de pandas pour diviser le DataFrame pandas en ensembles d’entraînement et de test :

#split original DataFrame into training and testing sets
train = df.sample(frac=0.8,random_state=0)
test = df.drop(train.index)

#view first few rows of each set
print(train.head())

     x1  x2  y
993  22   1  1
859  27   6  0
298  27   8  1
553  20   6  0
672   9   2  1

print(test.head())

    x1  x2  y
9   16   5  0
11  12  10  0
19   5   9  0
23  28   1  1
28  18   0  1

#print size of each set
print(train.shape, test.shape)

(800, 3) (200, 3)

À partir du résultat, nous pouvons voir que deux ensembles ont été créés :

  • Ensemble de formation : 800 lignes et 3 colonnes
  • Ensemble de test : 200 lignes et 3 colonnes

Notez que frac contrôle le pourcentage d’observations du DataFrame d’origine qui appartiendra à l’ensemble d’apprentissage et que la valeur random_state rend la division reproductible.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes en Python :

Comment effectuer une régression logistique en Python
Comment créer une matrice de confusion en Python
Comment calculer la précision équilibrée en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *