Réduction des Données en 2D/3D et Visualisation avec Matplotlib
La visualisation des données à l'aide des deux ou trois premiers composants principaux permet d'identifier des motifs et des regroupements qui restent cachés dans un espace de grande dimension. En projetant les données sur ces composants, il devient possible d'observer des groupements révélant la structure du jeu de données. Cette approche est particulièrement utile pour des jeux de données comme Iris, où la réduction en 2D ou 3D facilite la distinction entre les classes et la compréhension visuelle des données.
123456789101112131415161718192021222324252627282930313233343536# 2D scatter plot of the first two principal components import matplotlib.pyplot as plt import seaborn as sns from sklearn.decomposition import PCA from sklearn.datasets import load_iris from sklearn.preprocessing import StandardScaler # Load and scale the data data = load_iris() X = data.data X_scaled = StandardScaler().fit_transform(X) # Fit PCA and transform to 2D pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) plt.figure(figsize=(8,6)) sns.scatterplot(x=X_pca[:,0], y=X_pca[:,1], hue=data.target, palette='Set1', s=60) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.title('PCA - Iris Dataset (2D)') plt.legend(title='Species') plt.show() # 3D visualization from mpl_toolkits.mplot3d import Axes3D pca_3d = PCA(n_components=3) X_pca_3d = pca_3d.fit_transform(X_scaled) fig = plt.figure(figsize=(8,6)) ax = fig.add_subplot(111, projection='3d') scatter = ax.scatter(X_pca_3d[:,0], X_pca_3d[:,1], X_pca_3d[:,2], c=data.target, cmap='Set1', s=60) ax.set_xlabel('PC1') ax.set_ylabel('PC2') ax.set_zlabel('PC3') plt.title('PCA - Iris Dataset (3D)') plt.show()
Le nuage de points 2D illustre la répartition des échantillons selon les deux premiers composants principaux, révélant souvent des regroupements correspondant à différentes classes. Le graphique 3D peut offrir une séparation supplémentaire si le troisième composant apporte une variance significative. Cette visualisation permet d'évaluer dans quelle mesure la PCA capture la structure essentielle du jeu de données et si une réduction de dimensionnalité supplémentaire pourrait être pertinente pour l'analyse.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain what principal components are in simple terms?
How do I interpret the clusters in the PCA plots?
What should I do if the classes are not well separated in the PCA visualization?
Awesome!
Completion rate improved to 8.33
Réduction des Données en 2D/3D et Visualisation avec Matplotlib
Glissez pour afficher le menu
La visualisation des données à l'aide des deux ou trois premiers composants principaux permet d'identifier des motifs et des regroupements qui restent cachés dans un espace de grande dimension. En projetant les données sur ces composants, il devient possible d'observer des groupements révélant la structure du jeu de données. Cette approche est particulièrement utile pour des jeux de données comme Iris, où la réduction en 2D ou 3D facilite la distinction entre les classes et la compréhension visuelle des données.
123456789101112131415161718192021222324252627282930313233343536# 2D scatter plot of the first two principal components import matplotlib.pyplot as plt import seaborn as sns from sklearn.decomposition import PCA from sklearn.datasets import load_iris from sklearn.preprocessing import StandardScaler # Load and scale the data data = load_iris() X = data.data X_scaled = StandardScaler().fit_transform(X) # Fit PCA and transform to 2D pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) plt.figure(figsize=(8,6)) sns.scatterplot(x=X_pca[:,0], y=X_pca[:,1], hue=data.target, palette='Set1', s=60) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.title('PCA - Iris Dataset (2D)') plt.legend(title='Species') plt.show() # 3D visualization from mpl_toolkits.mplot3d import Axes3D pca_3d = PCA(n_components=3) X_pca_3d = pca_3d.fit_transform(X_scaled) fig = plt.figure(figsize=(8,6)) ax = fig.add_subplot(111, projection='3d') scatter = ax.scatter(X_pca_3d[:,0], X_pca_3d[:,1], X_pca_3d[:,2], c=data.target, cmap='Set1', s=60) ax.set_xlabel('PC1') ax.set_ylabel('PC2') ax.set_zlabel('PC3') plt.title('PCA - Iris Dataset (3D)') plt.show()
Le nuage de points 2D illustre la répartition des échantillons selon les deux premiers composants principaux, révélant souvent des regroupements correspondant à différentes classes. Le graphique 3D peut offrir une séparation supplémentaire si le troisième composant apporte une variance significative. Cette visualisation permet d'évaluer dans quelle mesure la PCA capture la structure essentielle du jeu de données et si une réduction de dimensionnalité supplémentaire pourrait être pertinente pour l'analyse.
Merci pour vos commentaires !