K-Means Clustering sul Dataset del Vino
Il metodo K-Means Clustering applicato al dataset del vino.
K-Means Clustering sul Dataset del Vino
Un'Analisi con PCA e StandardScalerIl clustering è una tecnica di apprendimento non supervisionato utilizzata per raggruppare i dati in base a caratteristiche simili.
In questo articolo, esploreremo il metodo K-Means Clustering applicato al famoso dataset del vino.
Useremo StandardScaler per la normalizzazione dei dati e Principal Component Analysis (PCA) per la riduzione della dimensionalità. Alla fine, visualizzeremo i risultati utilizzando le prime due componenti principali.
Introduzione al Dataset del Vino
Il dataset del vino contiene informazioni chimiche di diversi campioni di vino e appartiene a tre diverse classi. Le caratteristiche includono:- Alcol
- Acido malico
- Cenere
- Alcalinità della cenere
- Magnesio
- Fenoli totali
- Flavonoidi
- Fenoli non flavonoidi
- Proantocianidine
- Intensità del colore
- Tonalità
- OD280/OD315 del vino diluito
- Prolina
Pre-elaborazione dei Dati
Per prima cosa, dobbiamo caricare e pre-elaborare i dati. La standardizzazione dei dati è un passo cruciale poiché le caratteristiche hanno scale diverse.
import pandas as pd
from sklearn.datasets import load_wine
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Caricamento del dataset del vino
wine = load_wine()
X = wine.data
y = wine.target
# Standardizzazione dei dati
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
Riduzione della Dimensionalità con PCA
Per visualizzare meglio i dati, riduciamo la dimensionalità usando PCA, mantenendo solo le prime due componenti principali.
# Applicazione della PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# Creazione di un DataFrame per le componenti principali
df_pca = pd.DataFrame(data=X_pca, columns=['PC1', 'PC2'])
df_pca['Cluster'] = y
Identificazione dei Cluster con K-Means
Applichiamo il K-Means clustering per identificare i 3 cluster principali. Il numero di cluster è impostato a 3 poiché sappiamo che ci sono tre classi nel dataset originale.
# Applicazione del K-Means clustering
kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(X_pca)
# Aggiunta dei cluster al DataFrame
df_pca['Cluster'] = clusters
Visualizzazione dei Risultati
Infine, visualizziamo i risultati dei cluster identificati utilizzando le prime due componenti principali.
# Visualizzazione dei cluster
plt.figure(figsize=(10, 7))
plt.scatter(df_pca['PC1'], df_pca['PC2'], c=df_pca['Cluster'], cmap='viridis', marker='o')
plt.xlabel('Prima Componente Principale')
plt.ylabel('Seconda Componente Principale')
plt.title('Cluster dei Campioni di Vino usando K-Means e PCA')
plt.colorbar(label='Cluster')
plt.show()