Clustering K-Means dengan Elbow method

Metode Elbow (elbow method) adalah sebuah teknik yang digunakan untuk membantu menentukan jumlah optimal dari klaster (cluster) dalam suatu algoritma clustering. Tujuan utamanya adalah untuk menemukan titik di mana penambahan jumlah klaster tidak memberikan peningkatan yang signifikan dalam kualitas pengelompokan data.

Berikut adalah langkah-langkah umum dalam menggunakan metode Elbow:

1. **Menjalankan Algoritma Clustering:** Terapkan algoritma clustering (seperti K-means) pada dataset dengan menggunakan berbagai nilai klaster. Misalnya, jalankan algoritma dengan jumlah klaster dari 1 hingga \(k_{\text{max}}\), di mana \(k_{\text{max}}\) adalah jumlah klaster maksimal yang ingin diuji.

2. **Hitung Variabilitas dalam Klaster (Inertia):** Setiap kali algoritma clustering dijalankan dengan jumlah klaster tertentu, hitung nilai inersia (inertia) klaster. Inersia biasanya diukur sebagai jumlah kuadrat jarak antara setiap titik data dan pusat klaster yang terdekat. Nilai inersia menggambarkan seberapa padat (compact) klaster-klasternya.

3. **Plot Nilai Inersia:** Plot nilai inersia untuk setiap jumlah klaster yang diuji. Dalam plot ini, sumbu x mewakili jumlah klaster, dan sumbu y mewakili nilai inersia. Hasilnya sering kali menyerupai bentuk "siku" (elbow).

4. **Identifikasi Titik Elbow:** Titik elbow adalah titik di mana penurunan inersia (nilai di sumbu y) menjadi lebih landai atau mencapai titik balik yang signifikan. Ini menunjukkan bahwa penambahan klaster setelah titik ini tidak memberikan penurunan inersia yang signifikan.

5. **Pemilihan Jumlah Klaster Optimal:** Pilih jumlah klaster yang sesuai dengan titik elbow sebagai jumlah optimal klaster untuk model clustering.

Metode Elbow memberikan panduan intuitif untuk menentukan jumlah klaster yang optimal. Namun, penting untuk diingat bahwa dalam beberapa kasus, bentuk "elbow" mungkin tidak selalu jelas, dan interpretasi subjektif dari hasil tersebut mungkin diperlukan. Selain itu, keberhasilan metode ini juga dapat bergantung pada distribusi data dan karakteristik algoritma clustering yang digunakan. 

Berikut ini adalah contoh implementasi dalam bahasa pemrograman Python:


from sklearn import datasets

from sklearn.cluster import KMeans

from sklearn.preprocessing import StandardScaler

import matplotlib.pyplot as plt

 # Load the Iris dataset

iris = datasets.load_iris()

features = iris.data

 

# Standardize the features

scaler = StandardScaler()

features_standardized = scaler.fit_transform(features)

 # Find the optimal number of clusters using the Elbow Method

wcss = []

for i in range(1, 11):

    kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)

    kmeans.fit(features_standardized)

    wcss.append(kmeans.inertia_)

 

# Plot the WCSS values for different numbers of clusters

plt.plot(range(1, 11), wcss)

plt.title('Elbow Method')

plt.xlabel('Number of Clusters')

plt.ylabel('WCSS')

plt.show()

 # Perform K-Means clustering with the chosen number of clusters

kmeans = KMeans(n_clusters=3, init='k-means++', max_iter=300, n_init=10, random_state=0)

pred_y = kmeans.fit_predict(features_standardized)

 # Scatter plot the data points with cluster centers

plt.scatter(features_standardized[:, 0], features_standardized[:, 1], c=pred_y)

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red')

plt.show()

 

Output dari program diatas adalah:







Popular posts from this blog

Introduction to Use Case Diagram - Case study: Facebook

Kenapa tidak berkurban?

Sequential Search