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 :

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 :

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 :

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. Les champs obligatoires sont indiqués avec *

Enter your email to receive for free

The PANE method for Deep Learning

* indicates required

 

You will receive one email per day for 7 days – then you will receive my newsletter.
Your information will never be given to third parties.

You can unsubscribe in 1 click from any of my emails.

Entre ton email pour recevoir gratuitement
la méthode PARÉ pour faire du Deep Learning


Tu recevras un email par jour pendant 7 jours - puis tu recevras ma newsletter.
Tes informations ne seront jamais cédées à des tiers.

Tu peux te désinscrire en 1 clic depuis n'importe lequel de mes emails.