Vous êtes sur la page 1sur 3

TP4 - Visualisation de données

Partie I. Théorie
Exercise 1.

Regardez la visualisation de données suivante et répondez aux questions.

- Que représente les ligne et les colonnes?


- Que represente la diagonale?
- Quels sont les problèmes avec cette visualisation de données et comment pourrait-elle être améliorée ?

Exercise 2.
Supposons que nous ayons un jeu de données X contenant 2 000 objets, 15 variables et que la classe
(étiquette) soit disponible. Nous voulons le visualiser en 2 DIMENSIONS.

- Quel modèle de réduction de dimensionnalité est préférable d'utiliser car l'étiquette est
DISPONIBLE ?
- Donner l'algorithme de cette méthode et l'expliquer.

Exercise 3.
Quel modèle utiliser si le jeu de données contient des distances entre des villes en Europe ? Décrivez le
modèle.
Partie II. Pratique.

Exercise 1. Visualisations plus ergonomiques

- Suivez le tutoriel et analysez les visualisations, interprétez les résultats:


https://www.kaggle.com/code/benhamner/python-data-visualizations

- Adaptez ce type de visualisation pour le Projet

Exercise 2. Chiffres manuscrits

1. Charger des images des chiffres de 0 à 5 et visualiser plusieurs d'entre eux

from sklearn.datasets import load_digits


digits=load_digits(n_class=6)

fig,ax=plt.subplots(8,8,figsize=(6, 6))
for i, axi in enumerate(ax.flat):
axi.imshow(digits.images[i], cmap='binary')
axi.set(xticks=[], yticks=[])

2. Changez le nombre de classes de 6 à un minerval de [4-9]

3. Projetez les chiffres en 2 dimensions à l'aide d’Isomap

from sklearn.manifold import Isomap


iso=Isomap(n_components=2)
projection=iso.fit_transform(digits.data)

plt.scatter(projection[:, 0], projection[:, 1], lw=0.1,c=digits.target, cmap=plt.cm.get_cmap('cubehelix', 6))


plt.colorbar(ticks=range(6), label='digit value')
plt.clim(-0.5, 5.5)

Exercise 3. Décompositions des ensembles de données Faces

Cet exemple s'applique à The Olivetti faces dataset différentes méthodes de décomposition matricielle non
supervisée (réduction de dimension) du module sklearn.decomposition

1. Préparation du jeu de données - Chargement et prétraitement du jeu de données des visages Olivetti.

import logging

from numpy.random import RandomState


import matplotlib.pyplot as plt

from sklearn.datasets import fetch_olivetti_faces


from sklearn import cluster
from sklearn import decomposition

rng = RandomState(0)

# Display progress logs on stdout


logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
faces, _ = fetch_olivetti_faces(return_X_y=True, shuffle=True, random_state=rng)
n_samples, n_features = faces.shape

# Global centering (focus on one feature, centering all samples)


faces_centered = faces - faces.mean(axis=0)

# Local centering (focus on one sample, centering all features)


faces_centered -= faces_centered.mean(axis=1).reshape(n_samples, -1)

print("Dataset consists of %d faces" % n_samples)

2. Définissez une fonction de base pour tracer la galerie de visages.

n_row, n_col = 2, 3
n_components = n_row * n_col
image_shape = (64, 64)

def plot_gallery(title, images, n_col=n_col, n_row=n_row, cmap=plt.cm.gray):


fig, axs = plt.subplots(
nrows=n_row,
ncols=n_col,
figsize=(2.0 * n_col, 2.3 * n_row),
facecolor="white",
constrained_layout=True,
)
fig.set_constrained_layout_pads(w_pad=0.01, h_pad=0.02, hspace=0, wspace=0)
fig.set_edgecolor("black")
fig.suptitle(title, size=16)
for ax, vec in zip(axs.flat, images):
vmax = max(vec.max(), -vec.min())
im = ax.imshow(
vec.reshape(image_shape),
cmap=cmap,
interpolation="nearest",
vmin=-vmax,
vmax=vmax,
)
ax.axis("off")

fig.colorbar(im, ax=axs, orientation="horizontal", shrink=0.99, aspect=40, pad=0.01)


plt.show()

3. Visualisez les données

plot_gallery("Faces from dataset", faces_centered[:n_components])

Vous aimerez peut-être aussi