Chargement des données pour les projets ML

Supposons que si vous souhaitez démarrer un projet ML, quelle est la première et la plus importante chose dont vous auriez besoin? Ce sont les données que nous devons charger pour démarrer l'un des projets ML. En ce qui concerne les données, le format de données le plus courant pour les projets ML est CSV (valeurs séparées par des virgules).

Fondamentalement, CSV est un format de fichier simple qui est utilisé pour stocker des données tabulaires (nombre et texte) telles qu'une feuille de calcul en texte brut. En Python, nous pouvons charger des données CSV de différentes manières, mais avant de charger des données CSV, nous devons prendre en compte certaines considérations.

Considérations lors du chargement des données CSV

Le format de données CSV est le format le plus courant pour les données ML, mais nous devons prendre soin de suivre les principales considérations lors de leur chargement dans nos projets ML -

En-tête de fichier

Dans les fichiers de données CSV, l'en-tête contient les informations pour chaque champ. Nous devons utiliser le même délimiteur pour le fichier d'en-tête et pour le fichier de données car c'est le fichier d'en-tête qui spécifie comment les champs de données doivent être interprétés.

Voici les deux cas liés à l'en-tête de fichier CSV qui doivent être pris en compte -

  • Case-I: When Data file is having a file header - Il attribuera automatiquement les noms à chaque colonne de données si le fichier de données a un en-tête de fichier.

  • Case-II: When Data file is not having a file header - Nous devons attribuer les noms à chaque colonne de données manuellement si le fichier de données n'a pas d'en-tête de fichier.

Dans les deux cas, nous devons spécifier explicitement si notre fichier CSV contient un en-tête ou non.

commentaires

Les commentaires dans n'importe quel fichier de données ont leur importance. Dans un fichier de données CSV, les commentaires sont indiqués par un hachage (#) au début de la ligne. Nous devons prendre en compte les commentaires lors du chargement des données CSV dans les projets ML, car si nous avons des commentaires dans le fichier, nous pouvons avoir besoin d'indiquer, cela dépend de la méthode que nous choisissons pour le chargement, de l'attente ou non de ces commentaires.

Délimiteur

Dans les fichiers de données CSV, le caractère virgule (,) est le délimiteur standard. Le rôle du délimiteur est de séparer les valeurs dans les champs. Il est important de prendre en compte le rôle de délimiteur lors du téléchargement du fichier CSV dans les projets ML, car nous pouvons également utiliser un autre délimiteur tel qu'une tabulation ou un espace blanc. Mais dans le cas de l'utilisation d'un délimiteur différent de celui standard, nous devons le spécifier explicitement.

Citations

Dans les fichiers de données CSV, les guillemets («») sont le caractère de guillemet par défaut. Il est important de prendre en compte le rôle des guillemets lors du téléchargement du fichier CSV dans les projets ML, car nous pouvons également utiliser un autre caractère de guillemet que les guillemets doubles. Mais en cas d'utilisation d'un caractère guillemet différent du caractère standard, nous devons le spécifier explicitement.

Méthodes de chargement du fichier de données CSV

Lorsque vous travaillez avec des projets ML, la tâche la plus cruciale consiste à y charger correctement les données. Le format de données le plus courant pour les projets ML est CSV et il se présente sous différentes saveurs et différentes difficultés à analyser. Dans cette section, nous allons discuter de trois approches courantes en Python pour charger un fichier de données CSV -

Charger CSV avec la bibliothèque standard Python

La première approche et la plus utilisée pour charger un fichier de données CSV est l'utilisation de la bibliothèque standard Python qui nous fournit une variété de modules intégrés, à savoir csv moduleet la fonction reader (). Ce qui suit est un exemple de chargement de fichier de données CSV à l'aide de celui-ci -

Example

Dans cet exemple, nous utilisons l'ensemble de données de fleurs d'iris qui peut être téléchargé dans notre répertoire local. Après avoir chargé le fichier de données, nous pouvons le convertir enNumPyarray et utilisez-le pour les projets ML. Voici le script Python pour charger le fichier de données CSV -

Tout d'abord, nous devons importer le module csv fourni par la bibliothèque standard Python comme suit -

import csv

Ensuite, nous devons importer le module Numpy pour convertir les données chargées en tableau NumPy.

import numpy as np

Maintenant, fournissez le chemin complet du fichier, stocké sur notre répertoire local, ayant le fichier de données CSV -

path = r"c:\iris.csv"

Ensuite, utilisez la fonction csv.reader () pour lire les données du fichier CSV -

with open(path,'r') as f:
   reader = csv.reader(f,delimiter = ',')
   headers = next(reader)
   data = list(reader)
   data = np.array(data).astype(float)

Nous pouvons imprimer les noms des en-têtes avec la ligne de script suivante -

print(headers)

La ligne de script suivante imprimera la forme des données, c'est-à-dire le nombre de lignes et de colonnes dans le fichier -

print(data.shape)

La ligne de script suivante donnera les trois premières lignes du fichier de données -

print(data[:3])

Output

['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
(150, 4)
[  [5.1  3.5  1.4  0.2]
   [4.9  3.   1.4  0.2]
   [4.7  3.2  1.3  0.2]
]

Charger CSV avec NumPy

Une autre approche pour charger un fichier de données CSV est la fonction NumPy et numpy.loadtxt (). Ce qui suit est un exemple de chargement de fichier de données CSV à l'aide de celui-ci -

Exemple

Dans cet exemple, nous utilisons l'ensemble de données sur les Indiens Pima contenant les données des patients diabétiques. Cet ensemble de données est un ensemble de données numériques sans en-tête. Il peut également être téléchargé dans notre répertoire local. Après avoir chargé le fichier de données, nous pouvons le convertir en tableau NumPy et l'utiliser pour les projets ML. Voici le script Python pour charger le fichier de données CSV -

from numpy import loadtxt
path = r"C:\pima-indians-diabetes.csv"
datapath= open(path, 'r')
data = loadtxt(datapath, delimiter=",")
print(data.shape)
print(data[:3])

Production

(768, 9)
[  [ 6.  148.  72.  35.  0.  33.6  0.627  50. 1.]
   [ 1.  85.   66.  29.  0.  26.6  0.351  31. 0.]
   [ 8.  183.  64.  0.   0.  23.3  0.672  32. 1.]
]

Charger CSV avec Pandas

Une autre approche pour charger un fichier de données CSV consiste à Pandas et pandas.read_csv()function. C'est la fonction très flexible qui renvoie unpandas.DataFramequi peut être utilisé immédiatement pour le traçage. Ce qui suit est un exemple de chargement de fichier de données CSV à l'aide de celui-ci -

Exemple

Ici, nous allons implémenter deux scripts Python, le premier avec l'ensemble de données Iris ayant des en-têtes et un autre en utilisant le jeu de données Pima Indians qui est un ensemble de données numériques sans en-tête. Les deux ensembles de données peuvent être téléchargés dans le répertoire local.

Script-1

Ce qui suit est le script Python pour charger un fichier de données CSV à l'aide de Pandas sur l'ensemble de données Iris -

from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])

Output:

(150, 4)
   sepal_length   sepal_width  petal_length   petal_width
0         5.1     3.5          1.4            0.2
1         4.9     3.0          1.4            0.2
2         4.7     3.2          1.3            0.2

Script-2

Ce qui suit est le script Python pour charger le fichier de données CSV, ainsi que pour fournir les noms des en-têtes, en utilisant l'ensemble de données Pandas sur Pima Indians Diabetes -

from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
headernames = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=headernames)
print(data.shape)
print(data[:3])

Output

(768, 9)
   preg  plas  pres   skin  test   mass    pedi    age   class
0   6    148    72      35    0     33.6   0.627    50      1
1   1    85     66      29    0     26.6   0.351    31      0
2   8    183    64      0     0     23.3   0.672    32      1

La différence entre les trois approches utilisées ci-dessus pour charger le fichier de données CSV peut être facilement comprise à l'aide d'exemples donnés.