Vous êtes sur la page 1sur 4

TP1 : Machine Learning

Préparation des données

I- Installation des bibliothèques :


- pip install matplotlib (bibliothèque permettant de tracer des graphes)
- pip install pandas (un package Python qui fournit des structures de données rapides,
flexibles et expressives conçues pour rendre le travail avec des données «relationnelles»
ou « étiquetées » à la fois facile et intuitif.)
- pip install numpy (numerical python : fournit une interface pour stocker et effectuer des
opérations sur les données. Elle rend les opérateurs beaucoup plus efficaces et surtout
sur les tableaux de taille large)

II- Exploration des données :


Plusieurs bases dédiées pour l’apprentissage automatique peuvent être trouvée sur le web.
- Consulter la page web suivante :
https://archive.ics.uci.edu/ml/datasets.html
Dans ce TP, on se basera sur la base "pima-indians-diabetes.data.csv".
Pima est un groupe d’indien de l’Amérique (Native Americans) vivant à Arizona. Ils sont sujets
de plusieurs études car le changement dans leurs habitude alimentaire a favorisé qu’ils soient
atteints de diabète de type 2.
La base inclus 767 femmes décrites par les 8 attributs suivants.
1. Nombre de grossesses (NumTimesPrg)
2. Concentration du plasma en glucose (PlGlcConc)
3. Tension artérielle (BloodP)
4. Épaisseur du pli cutané des triceps (SkinThick)
5. Taux d’insuline (TwoHourSerIns)
6. Indice de masse corporelle (BMI)
7. Fonction pédigrée du diabète : hérédité (DiPedFunc)
8. Age (age)
La dernière colonne "HasDiabetes" de la base (9 ème colonne) indique si la personne est
diagnostiquée (1) de diabète ou pas (0).
On souhaite d’abord lire et inspecter les données dans la base. La base "pima-indians-
diabetes.data.csv" est fournie avec le format CSV (Comma Separated Values, valeurs
séparées par des virgules). Il s’agit du format le plus commun dans l’import et l’export de
feuilles de calculs et de bases de données

Exercice 1
1. Lire le contenu du fichier "pima-indians-diabetes.data.csv" à l’aide de la fonction
"read_csv" du paquetage "pandas".
2. Attribuer à chaque colonne le nom de l’attribut correspondant.
3. Afficher la structure de la base à l’aide de l’attribut "shape" appliqué sur un objet de type
"dataframe".
4. Afficher les 10 premières lignes de la base à l’aide de la fonction" head(nbre)" appliquée
sur un objet de type "dataframe".
5. Afficher seulement les valeurs de la tension artérielle (attribut "BloodP") pour la totalité des
individus.
6. Obtenir des statistiques sur les individus dans la base à l’aide de la fonction" describe()"
appliquée sur un objet de type "dataframe".
7. Créer une matrice qui ne contient que les données des attributs (séparer les valeurs des
attributs de leurs classes d’appartenances).
III- Préparation des données
Plusieurs techniques de traitement des données peuvent être utilisées. Le choix de la technique
appropriée dépend du contexte.
a. Data Cleaning :
Certaines instances peuvent avoir des attributs ayant des valeurs nulles. Ce qui peut dégrader
les performances d’un algorithme d’apprentissage. La solution la plus simple est de supprimer
les individus dont les valeurs de certains attributs sont manquantes. Mais, ceci peut causer la
perte de données importantes. Une seconde alternative et de déterminer, la valeur médiane de
chaque attribut, puis de remplacer les valeurs nulles par la médiane.
Exercice 2
1. Filtrer les valeurs de l’attribut ‘SkinThick’ pour déterminer les valeurs non nulles.
2. Calculer la médiane de ces valeurs en utilisant la fonction" median ()" appliquée sur un objet
de type "dataframe".
3. Remplacer les valeurs nulles de l’attribut "SkinThick" par la médiane.
4. Pourquoi on ne peut pas faire la même chose avec l’attribut " NumTimesPrg" ?
b. Data Rescaling :
Le changement d’échelle est une sorte de normalisation. L’intervalle dans lequel vari les
variables numériques peut être différent selon l’attribut. Ceci peut influencer les performances
de certains algorithmes d’apprentissage automatique, surtout ceux qui se basent sur le calcul
de distances.
Pour cela, le but de cette étape est de ramener toutes les valeurs dans l’intervalle [0,1]. Une des
techniques utilisées pour la normalisation est la suivante :
𝑉𝑎𝑙 − 𝑉𝑎𝑙𝑚𝑖𝑛
𝑉𝑎𝑙𝑛𝑜𝑟𝑚 =
𝑉𝑎𝑙𝑚𝑎𝑥 − 𝑉𝑎𝑙𝑚𝑖𝑛
Exercice 3
1. Utiliser les fonctions "MinMaxScaler" du package "sklearn.preprocessing" pour créer un
normalisateur approprié "scaler".
2. Utiliser la fonction "scaler.fit_transform(…)" pour ramener les valeurs des attributs dans
un intervalle [0-1].
3. Réafficher les données.
MinMaxScaler : (objet Python de la bibliothèque Scikit-learn qui est utilisé pour normaliser
nos données. La normalisation est une technique de mise à l’échelle des caractéristiques qui
place nos valeurs variables à l’intérieur d’une plage définie (comme 0-1) afin qu’elles aient
toutes la même plage).
c. Data standardization
La standardisation des données est aussi une sorte de normalisation. Ramener les valeurs des
attributs à l’intervalle [0-1] est parfois insuffisant surtouts dans le cas des bases qui contiennent
beaucoup de zéros ou des algorithmes qui multiplient ces valeurs par une certaine pondération.
Les valeurs d’un attribut sont transformées pour suivre une loi gaussienne ayant une moyenne
𝜇 = 0 et un écart type 𝜎 = 1.
1 1 𝑋−𝜇 2
𝑒 2 𝜎 )
− (
𝜑𝜇,𝜎2 (𝑥) =
𝜎√2𝜋

Exercice 4
1. Utiliser la fonction "StandardScaler().fit(…))" du package "sklearn.preprocessing" pour
créer un normalisateur approprié "scaler".
2. Utiliser la fonction "scaler.fit_transform(…)" pour standardiser les données.
3. Réafficher les données.

Vous aimerez peut-être aussi