Rezultati i Silhouette është një metrikë e përdorur për të vlerësuar se sa të mira janë rezultatet e grupimit në grupimin e të dhënave. Ky rezultat llogaritet duke matur ngjashmërinë e secilës pikë të dhënash me grupimin që i përket dhe sa i ndryshëm është nga grupimet e tjera. Rezultati Silhouette përdoret zakonisht për të vlerësuar performancën e algoritmeve të grupimit si K-Means.

Kur llogaritet rezultati i Silhouette, ndiqen hapat e mëposhtëm:

1. Për çdo pikë të dhënash, llogaritet distanca mesatare (a_i) me pikat e tjera të të dhënave brenda të njëjtit grup. Kjo vlerë përfaqëson nivelin e ngjashmërisë së pikës së të dhënave me të tjerët në grupin e saj.

2. Për çdo pikë të dhënash, llogaritet distanca mesatare (b_i) me të gjitha grupimet e tjera që nuk i përket. Kjo vlerë tregon se sa e ndryshme është pika e të dhënave nga pikat e të dhënave në grupimet e tjera.

3. Rezultati i Silhouette llogaritet duke përdorur formulën:

Rezultati i siluetës = (b_i — a_i) / max(a_i, b_i)

4. Duke marrë mesataren e rezultateve të Silhouette të llogaritura për çdo pikë të dhënash, merret një rezultat i përgjithshëm i Silhouette, i cili mat suksesin e rezultateve të grupimit.

Karakteristikat kryesore të rezultatit të Silhouette përfshijnë:

Ai varion nga -1 në +1:

  • Vlerat pozitive tregojnë se pikat e të dhënave i përkasin grupimeve të sakta, duke treguar rezultate të mira të grupimit.
  • Rezultati zero sugjeron mbivendosje të grupimeve ose pikave të të dhënave po aq afër grupimeve të shumta.
  • Vlerat negative tregojnë se pikat e të dhënave u janë caktuar grupimeve të pasakta, duke treguar rezultate të dobëta të grupimit.

Një rezultat më i lartë i Silhouette tregon rezultate më të mira të grupimit.

Prandaj, rezultati i Silhouette është një kriter i rëndësishëm që përdoret për të vlerësuar cilësimet dhe rezultatet e algoritmeve të grupimit të të dhënave. Një rezultat i lartë i Silhouette tregon rezultate më të qëndrueshme dhe më të mira të grupimit, ndërsa një rezultat i ulët mund të tregojë se pikat e të dhënave u janë caktuar grupimeve të pasakta ose që algoritmi i grupimit nuk është i përshtatshëm për të dhënat.

Llogaritja e rezultatit të siluetit

Këtu do të shohim procesin e grumbullimit të të dhënave duke përdorur bibliotekën scikit-learn në gjuhën e programimit Python dhe duke vlerësuar rezultatet me rezultatin Silhouette.

import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
# Generate sample data
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=1.0, random_state=42)
# Perform KMeans clustering
n_clusters = 4
kmeans = KMeans(n_clusters=n_clusters, random_state=42)
labels = kmeans.fit_predict(X)
# Calculate silhouette score
silhouette_avg = silhouette_score(X, labels)
print("Silhouette Score:", silhouette_avg)

Këtu është një shpjegim hap pas hapi i këtij kodi:

1. Së pari, ne importojmë bibliotekat NumPy dhe scikit-learn.

import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score

2. Ne krijojmë një grup të dhënash mostër.

X, _ = make_blobs(n_samples=300, centers=4, cluster_std=1.0, random_state=42)
  • Funksioni make_blobs krijon një grup të dhënash të rreme me mostër (n_mostra) dhe pikë qendrore. Këtu, krijohet një grup të dhënash me 300 mostra dhe 4 pika qendrore.
  • Parametri cluster_std kontrollon se sa janë shtrirë pikat e krijuara të grupimit.
  • Parametri random_state siguron përsëritshmërinë e procesit të gjenerimit të numrave të rastësishëm.

3. Grumbullimi i të dhënave kryhet duke përdorur algoritmin e grupimit K-Means.

n_clusters = 4
kmeans = KMeans(n_clusters=n_clusters, random_state=42)
labels = kmeans.fit_predict(X)
  • n_clusters përdoret si një variabël që specifikon se sa grupe do të krijohen.
  • Klasa KMeans përdoret për të zbatuar algoritmin e grupimit K-Means. random_state kontrollon inicializimin e rastësishëm të algoritmit.
  • Metoda fit_predict ju lejon të grumbulloni të dhënat dhe të parashikoni se cili grup i përket secilës pikë të të dhënave. Rezultatet ruhen në një grup të quajtur labels.

4. Rezultati i Silhouette llogaritet dhe printohet.

silhouette_avg = silhouette_score(X, labels)
print("Silhouette Score:", silhouette_avg)
  • Rezultati i Silhouette është një metrikë e përdorur për të vlerësuar se sa mirë janë rezultatet e grupimit K-Means. Ky rezultat mat se sa mirë është grupuar një grup të dhënash duke matur ngjashmërinë brenda grupit dhe diskriminimin jashtë grupit.
  • Funksioni silhouette_score llogarit rezultatin e Silhouette duke përdorur grupin e etiketave që përmbajnë grupin e të dhënave dhe të cilit grup i përket secila pikë e të dhënave.
  • Rezultati printohet në ekran me tekstin "Rezultati i siluetit:".

konkluzioni

Si rezultat, ky mostër kodi krijon një grup të dhënash sintetike, grupon këtë grup të dhënash me algoritmin e grupimit K-Means, duke parashikuar se cilit grup i përket secila pikë e të dhënave dhe më pas llogarit dhe printon rezultatin e Silhouette për të vlerësuar këtë grupim. Rezultati i Silhouette është një metrikë që përdoret për të matur cilësinë e rezultateve të grupimit dhe një rezultat më i lartë tregon një rezultat më të mirë të grupimit.