Riduzione dei Dati a 2D/3D e Visualizzazione con Matplotlib
La visualizzazione dei dati utilizzando i primi due o tre componenti principali consente di individuare pattern e cluster nascosti nello spazio ad alta dimensionalità. Proiettando i dati su questi componenti, è possibile osservare raggruppamenti che rivelano la struttura del dataset. Questo è particolarmente utile per dataset come Iris, dove la riduzione a 2D o 3D facilita la distinzione tra le classi e la comprensione visiva dei dati.
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()
Il grafico a dispersione 2D mostra come i campioni sono distribuiti lungo i primi due componenti principali, spesso evidenziando cluster corrispondenti a diverse classi. Il grafico 3D può offrire una separazione ancora maggiore se il terzo componente aggiunge una varianza significativa. Visualizzando i dati in questo modo, si ottengono informazioni su quanto bene il PCA cattura la struttura essenziale del dataset e se una ulteriore riduzione della dimensionalità possa essere appropriata per l'analisi.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Riduzione dei Dati a 2D/3D e Visualizzazione con Matplotlib
Scorri per mostrare il menu
La visualizzazione dei dati utilizzando i primi due o tre componenti principali consente di individuare pattern e cluster nascosti nello spazio ad alta dimensionalità. Proiettando i dati su questi componenti, è possibile osservare raggruppamenti che rivelano la struttura del dataset. Questo è particolarmente utile per dataset come Iris, dove la riduzione a 2D o 3D facilita la distinzione tra le classi e la comprensione visiva dei dati.
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()
Il grafico a dispersione 2D mostra come i campioni sono distribuiti lungo i primi due componenti principali, spesso evidenziando cluster corrispondenti a diverse classi. Il grafico 3D può offrire una separazione ancora maggiore se il terzo componente aggiunge una varianza significativa. Visualizzando i dati in questo modo, si ottengono informazioni su quanto bene il PCA cattura la struttura essenziale del dataset e se una ulteriore riduzione della dimensionalità possa essere appropriata per l'analisi.
Grazie per i tuoi commenti!