Le prétraitement des données est l'acte d'effectuer certaines actions ou étapes sur un ensemble de données avant qu'il ne soit utilisé pour l'apprentissage automatique ou d'autres tâches. Le prétraitement des données consiste à nettoyer, formater ou transformer les données afin d'améliorer leur qualité ou de s'assurer qu'elles conviennent à leur objectif principal (en l'occurrence, entraîner un modèle). Un ensemble de données propres et de haute qualité améliore les performances du modèle d'apprentissage automatique.
Les problèmes courants liés aux données de mauvaise qualité incluent :
Dans cet article, je vais vous montrer certaines des techniques courantes de prétraitement des données pour préparer des ensembles de données à utiliser dans les modèles de formation. Vous aurez besoin de connaissances de base de Python et de l'utilisation des bibliothèques et des frameworks Python.
Exigences :
Les éléments suivants sont requis pour pouvoir tirer le meilleur parti de ce guide
Vous pouvez également consulter la sortie de chaque code dans ces notebooks Jupyter sur Github.
Si vous n'avez pas encore installé Python, vous pouvez le télécharger depuis le site Web de Python et suivre les instructions pour l'installer.
Une fois Python installé, installez les bibliothèques requises
pip install numpy scipy pandas scikit-learn
Installez Jupyter Notebook.
pip install notebook
Après l'installation, démarrez Jupyter Notebook avec la commande suivante
jupyter notebook
Cela lancera Jupyter Notebook dans votre navigateur Web par défaut. Si ce n'est pas le cas, recherchez sur le terminal un lien que vous pouvez coller manuellement dans votre navigateur.
Ouvrez un nouveau notebook depuis le menu Fichier, importez les bibliothèques requises et exécutez la cellule
import numpy as np import pandas as pd import scipy import sklearn
Allez sur le site Melbourne Housing Dataset et téléchargez l'ensemble de données. Chargez l'ensemble de données dans le notebook à l'aide du code suivant. Vous pouvez copier le chemin du fichier sur votre ordinateur pour le coller dans la fonction read_csv. Vous pouvez également placer le fichier csv dans le même dossier que le bloc-notes et importer le fichier comme indiqué ci-dessous.
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
Divisez les données en ensembles de formation et de validation
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
Vous devez diviser les données en ensembles de formation et de validation afin d'éviter les fuites de données. Par conséquent, quelle que soit la technique de prétraitement que vous effectuez sur l'ensemble des fonctionnalités de formation, elle est la même que celle que vous effectuez sur l'ensemble des fonctionnalités de validation.
Maintenant, l'ensemble de données est prêt à être traité !
Gestion des valeurs manquantes
Les valeurs manquantes dans un ensemble de données sont comme des trous dans un tissu censés être utilisés pour coudre une robe. Cela gâche la robe avant même qu'elle ne soit confectionnée.
Il existe 3 façons de gérer les valeurs manquantes dans un ensemble de données.
pip install numpy scipy pandas scikit-learn
Le problème avec cette méthode est que vous risquez de perdre des informations précieuses avec lesquelles vous devez entraîner votre modèle. À moins que la plupart des valeurs dans les lignes ou colonnes supprimées soient manquantes, il n'est pas nécessaire de supprimer des lignes ou des colonnes avec des cellules vides.
pip install notebook
jupyter notebook
Suppression des doublons
Les cellules en double signifient des données répétées et cela affecte la précision du modèle. La seule façon de les gérer est de les laisser tomber.
import numpy as np import pandas as pd import scipy import sklearn
Gérer les valeurs aberrantes
Les valeurs aberrantes sont des valeurs significativement différentes des autres valeurs de l'ensemble de données. Elles peuvent être inhabituellement élevées ou faibles par rapport à d’autres valeurs de données. Ils peuvent être dus à des erreurs de saisie ou être véritablement des valeurs aberrantes.
Il est important de traiter les valeurs aberrantes, sinon elles conduiront à des analyses de données ou à des modèles inexacts. Une méthode pour détecter les valeurs aberrantes consiste à calculer les scores z.
La façon dont cela fonctionne est que le score z est utilisé pour vérifier si un point de données est éloigné de 3 points ou plus de la valeur moyenne. Ce calcul est effectué pour chaque point de données. Si le score z d'un point de données est égal à 3 ou à une valeur supérieure, le point de données est une valeur aberrante.
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
Normalisation
Vous normalisez les caractéristiques afin qu'elles puissent être décrites comme une distribution normale.
Une distribution normale (également connue sous le nom de distribution gaussienne) est une distribution statistique où il existe des distances ou des distributions à peu près égales au-dessus et en dessous de la moyenne. Le graphique des points de données d'une donnée normalement distribuée forme une courbe en cloche.
L'intérêt de normaliser les données est que l'algorithme d'apprentissage automatique que vous souhaitez utiliser suppose que les données sont normalement distribuées. Un exemple est le modèle gaussien Naive Bayes.
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
Standardisation
La normalisation transforme les caractéristiques d'un ensemble de données pour avoir une moyenne de 0 et un écart type de 1. Ce processus met à l'échelle chaque caractéristique afin qu'elle ait des plages similaires dans les données. Cela garantit que chaque fonctionnalité contribue de manière égale à la formation du modèle.
Vous utilisez la standardisation lorsque :
Vous utilisez StandardScaler() de la bibliothèque sklearn pour standardiser les fonctionnalités.
pip install numpy scipy pandas scikit-learn
Le prétraitement des données n'est pas qu'une étape préliminaire. Cela fait partie du processus de création de modèles d’apprentissage automatique précis. Il peut également être modifié pour répondre aux besoins de l'ensemble de données avec lequel vous travaillez.
Comme pour la plupart des activités, la pratique rend parfait. Au fur et à mesure que vous continuez à prétraiter les données, vos compétences s'amélioreront ainsi que vos modèles.
J'aimerais lire vos réflexions à ce sujet ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!