Cette technique, beaucoup de débutants l’oublient lorsqu’ils créent leur algorithme de Machine Learning. Pourtant… elle est essentielle !
Cette technique, c’est la normalisation.
Normaliser c’est mettre les valeurs de son dataframe à la même échelle. Par exemple entre 0 et 1.
C’est une technique simple mais qui va booster les performances de votre algorithme !
Pour commencer
Pour ce tutoriel, on va prendre le dataset happiness.csv que vous pouvez télécharge ici sur GitHub.
Tout d’abord on importe la librairie pandas et notre dataset :
import pandas as pd
df = pd.read_csv('happiness.csv', usecols=['Gender','Mean','N='])
Comme vous pouvez le voir, pour ce tutoriel, on utilise seulement les colonnes ‘Gender’, ‘Mean’, ‘N=’.
Ces colonnes représentent respective le sexe des personnes interviewer, la moyenne de leur taux de bonheur qu’ils ressentent et finalement le nombre de personne interviewer.
Le dataset regroupe ces groupe de personnes par pays mais… pour ce tutoriel, nous n’avons pas besoin de cette catégorie 😉
On peut afficher les premières lignes de notre dataset :
df.head()

Et on peut passer à la pratique !
Normaliser les nombres
La première normalisation s’applique sur les données quantitatives, en d’autres termes : les nombres.
Pour cela, on applique une méthode ultra simple : diviser par la valeur la plus grande tout les nombres d’une colonne.
Cela aura nous permet d’avoir des valeurs entre 0 et 1.
Ehh oui la plus grande valeur sera divisée par elle même donc elle sera égale a 1. Les autres n’auront pas d’autres choix que de se situer entre 0 et 1.
Garder en tête que cette technique marche uniquement pour des valeurs positives. Mais d’autres méthodes existent.
Pour appliquer la normalisation à toute une colonne on utilise la fonction applymap().
On indique ensuite à applymap de diviser chaque x, chaque valeur, par la valeur maximum de la colonne :
mean_max = df[['Mean']].max()
df['Mean'] = df[['Mean']].applymap(lambda x: x/mean_max)
Puis, on applique exactement la même méthode pour la colonne ‘N=’ :
n_max = df[['N=']].max()
df['N='] = df[['N=']].applymap(lambda x: float(x/n_max))
Et le tour est joué ! On a normalisé les valeurs quantitatives de notre dataset. Pour vérifier notre résultat, on peut afficher les premières lignes du dataset :
LA MÉTHODE PARÉ POUR FAIRE DU DEEP LEARNING !
Reçois tes 7 JOURS De Formation GRATUITE Pour Apprendre À Créer TA PREMIÈRE INTELLIGENCE ARTIFICIELLE !
Pendant les 7 prochains jours je vais te montrer comment utiliser les Réseaux de neurones.
Tu vas comprendre ce qu'est le Deep Learning avec des exemples concrets qui vont te rester dans la tête.
ATTENTION, cette série d’email ne s’adresse pas à tout le monde. Si tu es du genre à aimer les cours théoriques et scolaires tu peux passer ta route.
Mais si tu souhaite apprendre la méthode PARÉ pour faire du Deep Learning, clique ici :
df.head()

On est sur la bonne voie ! Mais il reste une colonne qui nous pose problème : ‘Gender’.
Normaliser les catégories
Pour normaliser la colonne ‘Gender’, il faut d’abord la comprendre.
On peut l’analyser avec la fonction unique() qui affiche les valeurs différentes qui existent dans une colonne :
df.Gender.unique()
Sortie : [‘Male’, ‘Female’, ‘Both’]
On voit qu’il y a seulement 3 options possibles Masculin, Femme, ou la somme des deux catégories.
Vu qu’il n’y a que peu d’options, on peut facilement en déduire que c’une variable catégorique.
Et c’est parfait pour nous !
En fait avec pandas, c’est beaucoup plus facile de normaliser des catégories.
Pour cela on utilise la fonction get_dummies() :
df = pd.get_dummies(df)
On peut afficher le résultat pour voir ce qu’il en est :
df.head()

La catégorie est bien normaliser ! La fonction get_dummies() à créer 3 colonnes correspondant à chaque sexe.
Si la ligne correspond à un homme, le 1 est mis dans la colonne correspondante. Sinon 0. De même pour les femmes, et les hommes & femmes en même temps.
Conclusion
Voilà ! On a normaliser notre dataset en très peu de temps.
Finalement, on finit avec plus de colonnes, donc plus de données qu’au commencement. On pourrait donc penser que cela va complexifié l’apprentisssage de notre algorithme de Machine Learning.
Bien au contraire ! Vu que toutes les données sont entre 0 et 1, l’algorithme a moins d’effort à faire et va être plus apte à performer sur sa tâche principale !
On vient de voir comment normaliser nos données mais en vérité… il existe des librairies qui font se travail pour vous sans que vous ayez besoin de l’indiquer. Pour en savoir plus c’est dans cet article !
sources :
- Photo by Zoltan Tasi on Unsplash
LA MÉTHODE PARÉ POUR FAIRE DU DEEP LEARNING !
Reçois tes 7 JOURS De Formation GRATUITE Pour Apprendre À Créer TA PREMIÈRE INTELLIGENCE ARTIFICIELLE !
Pendant les 7 prochains jours je vais te montrer comment utiliser les Réseaux de neurones.
Tu vas comprendre ce qu'est le Deep Learning avec des exemples concrets qui vont te rester dans la tête.
ATTENTION, cette série d’email ne s’adresse pas à tout le monde. Si tu es du genre à aimer les cours théoriques et scolaires tu peux passer ta route.
Mais si tu souhaite apprendre la méthode PARÉ pour faire du Deep Learning, clique ici :