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 :

Au fait, si ton objectif est d'apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

À présent, on peut revenir à ce que je mentionnais précédemment.

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 :

Un dernier mot, si tu veux aller plus loin et apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

Tom Keldenich
Tom Keldenich

Ingénieur spécialisé en Intelligence Artificielle et passionné de données !

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 *

This page will not stay online forever

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.