Vous êtes sur la page 1sur 3

Machine learning TP Preprocessing 2022/2023

Encodage et Normalisation des données

Après la phase d’acquisition des données il faut procéder tout d’abord à l’exploration des données.
Cette phase permettra de découvrir plusieurs aspects du dataset source. Ce qui mène vers le besoin
du nettoyage des données, leurs transformations et en fin la normalisation de certaines données.

L’objectif de ce TP est de normaliser les données.

Tout au long de ce Tp nous allons travailler sur le dataset titanic.

1. Transformation des données


1.1 Traitement des variables catégorielles : Encodage

• La type d’une variable catégorielle est Objetct.


• La plupart des algorithmes d’apprentissage automatique prennent des valeurs numériques
en entrée. Si vous avez des variables object ou category l'erreur suivante apparaitra :
ValueError: could not convert string to float: [variable]

1.1 Détection des modalités d’une variable catégorielle :


Avant de procéder à l’encodage de variable, vous aurez besoin de connaitre ses valeurs.
Pour ce faire, vous pouvez obtenir les valeurs uniques dans les colonnes concernées. Par
exemple, pour une colonne A : df ["A"].unique()
• Obtenir les valeurs des deux variables : « sex » et « embarked ».
• Afficher la fréquence de chaque valeur ainsi que le nombre de son apparition.
1.2 Traitement des variables catégorielles
• Traiter la variable: embarked avec OneHotEncoder
• Traiter la variable « sex » avec get_dummies.
• Refaire l’encodage avec d’autres techniques.

Pr. N. Daoudi 1/3


Machine learning TP Preprocessing 2022/2023

2. Normalisation

De nombreux algorithmes de machine learning fonctionnent mieux ou convergent plus rapidement


lorsque les caractéristiques sont à une échelle relativement similaire et/ou proches de la distribution
normale. Parmi ces algorithmes (on va les détailler par la suite) :

• Logistic Regression
• Regression Analysis (polynomial, multivariate regression…)
• Support Vector Machines (SVM)
• K-Nearest Neighbors (KNN)
• K-Means (clustering…)
• Principal Component Analysis (PCA)

Ainsi, généralement, il faut procéder à la normalisation des données chaque fois que les variables
utilisent des unités différentes. Parmi les techniques utilisées : StanderScaler et MiniMax.

2.1 Normalisation avec StandardScaler

StandardScaler : Cette technique part du principe que les données sont normalement distribuées. La
fonction va recalculer chaque caractéristique afin que les données soient centrées autour de 0 et avec
un Ecart-Type de 1.

• Charger les bibliothèques nécessaires pour faire la normalisation des données à


l’aide de StandarScaler : sklearn.preprocessing.StandardScaler
• Normaliser les données du dataset Titanic en utilisant StandardScaler

2.2 Normalisation avec MinMax : Sklearn.preprocessing.MinMaxScaler

MinMaxScaler : Cette technique transforme les caractéristiques (xi) en adaptant chacune sur une plage
donnée (par défaut [-1 .. 1]).

• Il est possible de changer cette plage via les paramètres feature_range=(min, max).
• Cette technique fonctionne surtout pour les cas où la distribution n’est pas gaussienne ou
quand Ecart-Type est faible.
• Néanmoins MinMaxScaler() est sensible aux outliers.

Pr. N. Daoudi 2/3


Machine learning TP Preprocessing 2022/2023

• Charger les bibliothèques nécessaires pour faire la normalisation des données à


l’aide de StandarScaler : sklearn.preprocessing. MinMaxScaler

Remarques importantes :
MaxAbsScaler : Cette technique de mise à l’échelle est utile dès lors que la
distribution de valeurs est éparse et que vous avez pas mal d’outiers. En effet les
autres techniques auront tendance à effacer l’impact des outliers ce qui parfois est
gênant. Elle est donc intéressante :

• Car robuste à de très petites déviations standard


• Elle préserve les entrées nulles sur une répartition de données éparses.

• Normaliser les données du dataset Titanic en utilisant MinMaxScalerPartie

complémentaire : Reduction de la dimensionnalité : PCA


Le problème de la réduction de démensualisé s’impose chaque fois que nous sommes dans le cadre
d’une analyse de données multidimensionnelle. Dans le cas des données quantitatives, nous pouvons
utiliser l’analyse à composante principale ACP ou PCA. Pour ce faire, il faut préalablement procéder à
centrer et réduire les variables et ce en utilisant StandardScaler.

L'objet PCA comprend un certain nombre d'objets et de fonctions. La propriété


(.explained_variance_) permet d’obtenir les variances (valeurs propres, λk) associées aux axes
factoriels.

Le ratio (proportion) de variance expliquée par dimension est donné par la propriété
(explained_variance_ratio_).

Chaque ligne de pca.components_ représente le vecteur unitaire qui donne la direction d’un axe
factoriel. Le vecteur pca.components_[i,:] correspond à la valeur propre
pca.explained_variance_ratio_[i].

1. Appliquer l’ACP sur les données de la dataset Titanic (varier le paramètre nombre de
composantes 2,3 et 4).
2. Afficher le tableau des variances expliquées et le ratio :
print(pca.explained_variance_)
print(pca.explained_variance_ratio_)

Pr. N. Daoudi 3/3

Vous aimerez peut-être aussi