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ë quajturlabels
.
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.