0% ont trouvé ce document utile (0 vote)
11 vues8 pages

Visualization

Le document traite de la visualisation des données, en expliquant son importance, ses objectifs et les différents types de visualisations disponibles, tels que les graphiques à barres, les histogrammes et les heatmaps. Il aborde également des techniques de réduction de dimensionnalité comme l'analyse en composantes principales (PCA) et le Kernel PCA, ainsi que des exemples pratiques de visualisation avec des bibliothèques Python. Enfin, il propose des exercices et des projets pour appliquer les concepts de visualisation des données.

Transféré par

tege.simboni1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues8 pages

Visualization

Le document traite de la visualisation des données, en expliquant son importance, ses objectifs et les différents types de visualisations disponibles, tels que les graphiques à barres, les histogrammes et les heatmaps. Il aborde également des techniques de réduction de dimensionnalité comme l'analyse en composantes principales (PCA) et le Kernel PCA, ainsi que des exemples pratiques de visualisation avec des bibliothèques Python. Enfin, il propose des exercices et des projets pour appliquer les concepts de visualisation des données.

Transféré par

tege.simboni1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 8

visualization

August 15, 2023

[ ]: import numpy as np
import seaborn as sns
import torch
import matplotlib.pyplot as plt

import pandas as pd
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.decomposition import PCA, KernelPCA
from sklearn.manifold import SpectralEmbedding
from sklearn.model_selection import train_test_split
from mpl_toolkits.mplot3d import Axes3D
import warnings
warnings.filterwarnings("ignore")

1 1. Data visualisation
• La visualisation des données, par graphique, animation ou infographie, est une représentation
des données.
• Ces affichages visuels d’informations communiquent des relations des données complexes et
des informations basées sur les données d’une maniere facile à comprendre.
• Les analystes de data scientistes l’utilisent pour découvrir et expliquer des modèles et des
tendances.

1.0.1 Objectifs
• génération d’idées.
• illustration d’idées.
• decouverte visuelle.
• dataviz quotidien.

1.1 Représentation des données


1.1.1 Importances
• donner un aperçu rapide d’un sujet.
• expliquer un processus complexe.
• afficher des résultats de recherche ou des données d’enquêtes.
• résumer un long article ou rapport.

1
• comparer et contraster plusieurs options.

1.1.2 Types de Dataviz


• tables.
• pie charts.
• bar charts.
• line charts.
• area charts.
• histograms.
• scatter.
• heatmaps.
• treemaps.
• etc.

1.1.3 Outils Dataviz


• D3.js
• Echarts
• Vega
• Deck.gl

1.1.4 Bonnes pratiques


• comprendre la question.
• choisir un visuel effectif.
• rester simple.

1.1.5 Cas d’utilisation


• marketing
• freelance
• éducation
• gouvernement
• association
• Librairies: https://mode.com/blog/python-data-visualization-libraries/

1.1.6 Bar plot


doit être utilisé lorsque vous affichez des segments d’informations. Il est utile pour comparer
différentes variables catégorielles ou discrètes, telles que les groupes d’âge, les classes, les écoles,
etc., tant qu’il n’y a pas trop de catégories à comparer. Il est également très utile pour les données
de séries chronologiques
[ ]: tips = sns.load_dataset('tips')

[ ]: tips

2
[ ]: sns.barplot(data=tips, x='day', y='total_bill')

[ ]: sns.barplot(data=tips, x='day', y='total_bill', hue='sex')

1.1.7 Histogram
est une représentation sous forme de barre de données qui varie sur une plage. Il trace la hauteur des
données appartenant à une plage le long de l’axe y et la plage le long de l’axe x. Les histogrammes
sont utilisés pour tracer des données sur une plage de valeurs. Ils utilisent une représentation en
barres pour afficher les données appartenant à chaque plage.
[ ]: iris = sns.load_dataset('iris')

[ ]: sns.displot(iris.sepal_width, bins=10, kde=True)

[ ]: sns.FacetGrid(iris, hue="species").map(sns.kdeplot, "petal_length").add_legend()

1.1.8 Scatter plot


est utilisé lorsque nous devons tracer des variables à des coordonnées différentes. Les données sont
dispersées sur tout le graphique et ne se limitent pas à une plage. Deux variables ou plus sont
tracées dans un nuage de points, chaque variable étant représentée par une couleur différente.
[ ]: sns.scatterplot(x=iris.sepal_width, y=iris.sepal_length)

[ ]: sns.scatterplot(x=iris.sepal_width, y=iris.sepal_length, hue=iris.species)

1.1.9 Heatmap
est utilisé pour visualiser les changements de comportement ou les changements progressifs dans
les données. Il utilise différentes couleurs pour représenter différentes valeurs. Il indique comment
le phénomène varie selon que ces couleurs varient en teintes, intensité, etc.
[ ]: flights = sns.load_dataset('flights').pivot('month', 'year', 'passengers')
flights

[ ]: sns.heatmap(flights)

[ ]: sns.heatmap(flights, annot=True, cmap='Blues', fmt='d')

1.1.10 Line chart


est utilisé pour suivre les modifications sur des périodes courtes et longues. Lorsque des changements
plus petits existent, il est meilleur à utiliser que bar plot. Il peut également être utilisé pour
comparer les modifications sur la même période de temps pour plus d’un groupe.
[ ]: sns.lineplot(data=iris.drop(['species'], axis=1))

3
1.1.11 Pie Chart
Si vous avez une dimension avec seulement quelques catégories à comparer, un pie chart peut vous
aider à afficher chaque valeur d’une catégorie dans l’ensemble. Le tableau doit se lire comme une
comparaison de chaque groupe les uns aux autres, formant une catégorie entière.
[ ]: ax = plt.subplots(1,1,figsize=(10,8))
iris['species'].value_counts().plot.pie(explode=[0.1,0.1,0.1],autopct='%1.
↪1f%%',shadow=True,figsize=(10,8))

plt.title("Iris species %")


plt.show()

1.1.12 Boxplot
est utilisé pour montrer les distributions des valeurs de données numériques, en particulier lorsque
vous souhaitez les comparer entre plusieurs groupes. Il est conçu pour fournir des informations de
haut niveau, offrant des informations générales sur la symétrie, le biais, la variance et les valeurs
aberrantes d’un groupe.
[ ]: sns.set_style("whitegrid")
sns.boxplot(x = 'day', y = 'total_bill', data = tips)

[ ]: iris

1.1.13 Pair plot

[ ]: sns.pairplot(iris, hue="species", height=3)

1.1.14 Dashboard
[ ]: titanic = sns.load_dataset('titanic')
titanic

1.2 2. Reduction des données


• dimensionalité: nombre des attributs, caracteristiques ou variables.
• la réduction de la dimensionnalité est le processus de réduction du nombre d’attributs dans
un ensemble de données tout en conservant autant que de la variation dans l’ensemble de
données d’origine.

1.2.1 Méthodes
Linéaires
• Analyse en composantes principales (PCA): il effectue une transformation linéaire pour
réduire la dimension des données.
– standardiser la plage de variables initiales continues.
– calculer la matrice de covariance pour identifier les corrélations.

4
– calculer les valeurs propres et les vecteurs propres de la matrice de covariance pour
identifier les composantes principales.
– créer un vecteur de caractéristiques pour décider quelles composantes principales à con-
server.
– refondre les données selon les axes des composantes principales.

Non linéaires
• Kernel PCA: extension de PCA qui permet la séparabilité des données non linéaires en
utilisant des kernels. L’idée de base est de projeter les données linéairement inséparables sur
un espace de dimension supérieure (espace latent) où elles deviennent linéairement séparables.
• Spectral Embedding: Laplacian Eigenmaps
– construire le graphe d’adjacence.
– choisir les poids.
– obtenir des cartes propres.
[ ]: scaler = StandardScaler()
data_iris = scaler.fit_transform(iris.drop(columns=['species']))

1.2.2 Analyse en composantes principales (PCA)

[ ]: # Visualize
pca = PCA(n_components=3)
x_iris_pca = pca.fit_transform(data_iris)
pca_variance = pca.explained_variance_

plt.figure(figsize=(8, 6))
plt.bar(range(len(pca_variance)), pca_variance, alpha=0.5, align='center',␣
↪label='individual variance')

plt.legend()
plt.ylabel('Variance ratio')
plt.xlabel('Principal components')
plt.show()

[ ]: pca_variance

1.2.3 3D plot
[ ]: fig = plt.figure(1, figsize=(8, 6))
ax = Axes3D(fig, elev=-150, azim=110)
le = LabelEncoder()
encoded = le.fit_transform(iris['species'])
iris['species'] = encoded
y_data = iris['species']

ax.scatter(x_iris_pca[:, 0], x_iris_pca[:, 1], x_iris_pca[:, 2], c=y_data,


cmap=plt.cm.Set1, edgecolor='k', s=40)

5
ax.set_title("Reduction de dimensionalite")
ax.set_xlabel("1st axis")
ax.w_xaxis.set_ticklabels([])
ax.set_ylabel("2nd axis")
ax.w_yaxis.set_ticklabels([])
ax.set_zlabel("3rd axis")
ax.w_zaxis.set_ticklabels([])

plt.show()

1.2.4 Spectral embedding

[ ]: embedding = SpectralEmbedding(n_components=3)
x_iris_spectral = embedding.fit_transform(data_iris)
x_iris_spectral.shape

[ ]: fig = plt.figure(1, figsize=(8, 6))


ax = Axes3D(fig, elev=-150, azim=110)
le = LabelEncoder()
encoded = le.fit_transform(iris['species'])
iris['species'] = encoded
y_data = iris['species']

ax.scatter(x_iris_spectral[:, 0], x_iris_spectral[:, 1], x_iris_spectral[:, 2],␣


↪c=y_data,

cmap=plt.cm.Set1, edgecolor='k', s=40)

ax.set_title("Reduction de dimensionalite")
ax.set_xlabel("1st axis")
ax.w_xaxis.set_ticklabels([])
ax.set_ylabel("2nd axis")
ax.w_yaxis.set_ticklabels([])
ax.set_zlabel("3rd axis")
ax.w_zaxis.set_ticklabels([])

plt.show()

1.2.5 Kernel PCA


[ ]: # kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'cosine', 'precomputed'}
kernelPCA = KernelPCA(n_components=3, kernel='rbf')
x_iris_kernel = kernelPCA.fit_transform(data_iris)

[ ]: fig = plt.figure(1, figsize=(8, 6))


ax = Axes3D(fig, elev=-150, azim=110)

6
le = LabelEncoder()
encoded = le.fit_transform(iris['species'])
iris['species'] = encoded
y_data = iris['species']

ax.scatter(x_iris_kernel[:, 0], x_iris_kernel[:, 1], x_iris_kernel[:, 2],␣


↪c=y_data,

cmap=plt.cm.Set1, edgecolor='k', s=40)

ax.set_title("Reduction de dimensionalite")
ax.set_xlabel("1st axis")
ax.w_xaxis.set_ticklabels([])
ax.set_ylabel("2nd axis")
ax.w_yaxis.set_ticklabels([])
ax.set_zlabel("3rd axis")
ax.w_zaxis.set_ticklabels([])

plt.show()

1.2.6 Exercice
[ ]: churn = pd.read_csv("churn_dataset.csv")

[ ]: churn

Question
• visualiser la distribution des données de la variable Eve.Mins

1.2.7 Projets
• se proposer d’au moins 10 questions d’aide à la prise de décision.
• indiquer (avec justification) les types de visualisation pour chauque question.
• visualiser les données avec les visualisations retenues.

1. Construire un tableau de bord interactif à partir d’un jeu de données: analyse
visuelle des messages d’un groupe Whatsapp.
2. Reduction de dimensionnalité: extraction des caracteristiques invariant aux transforma-
tions geometriques (rotation, translation, et mise en echelle) avec deep auto-encoder.
3. Imagerie médicale:
• conversion des images 2D en 3D.
• differentes visualisations selon le besoin.
• dataset: https://drive.google.com/drive/folders/1HqEgzS8BV2c7xYNrZdEAnrHk7osJJ–
2

7
• exemple: https://hugobottois.medium.com/medical-images-visualization-with-python-
b40c2eb085f7
[ ]:

Vous aimerez peut-être aussi