Elbow method adalah metoda yang sering dipakai untuk menentukan jumlah cluster yang akan digunakan pada k-means clustering.
Seperti yang sudah dibahas sebelumnya, clustering adalah meminimumkan jarak antara data point dan centroid, serta memaksimumkan jarak antara centroid yang dihitung menggunakan within-cluster sum of squares atau WCSS.
Tujuannya adalah menghitung WCSS se-minimum dengan jumlah cluster yang kecil agar bisa dilakukan interpretasi data.
- WCSS = 0, berarti semua data point berada pada cluster yang berbeda, contoh 6 data points, jumlah cluster 6. Tidak terjadi clustering alias clustering tidak berguna.
- WCSS = 1, berarti semua data point berada dalam satu cluster, Sama seperti diatas, clustering tidak berguna.
Dengan menggunakan data set pada lesson sebelumnya, mari kita coba hitung jumlah cluster yang paling tepat.
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set() from sklearn.cluster import KMeans data = pd.read_csv('CountryClusters.csv') data_mapped = data.copy() data_mapped['Language']=data_mapped['Language'].map({'English':0,'French':1,'German':2}) x = data_mapped.iloc[:,1:4] wcss=[] for i in range(1,7): # Cluster solution with i clusters kmeans = KMeans(i) # Fit the data kmeans.fit(x) # Find WCSS for the current iteration wcss_iter = kmeans.inertia_ # Append the value to the WCSS list wcss.append(wcss_iter) number_clusters = range(1,7) plt.plot(number_clusters,wcss) plt.title('The Elbow Method') plt.xlabel('Number of clusters') plt.ylabel('Within-cluster Sum of Squares')
Array WCSS berisi nilai WCSS dengan indexnya adalah jumlah cluster. Jumlah cluster 0 nilai WCSS 42605.41356666667 dan seterusnya. Berikut isi array WCSS.
[42605.41356666667,
13208.95812,
290.10523333333333,
113.91233333333332,
39.00624999999998,
0.0]

Dari graphic diatas, dapat dilihat jumlah cluster 3 adalah jumlah cluster paling maksimum