Comment CETTE technique simple va BOOSTER ton Machine Learning

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 :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


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 :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


Tom Keldenich
Tom Keldenich

Data Engineer & passionné d'Intelligence Artificielle !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.