-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

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 StandardScaler
Il 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()