𝘒-𝘔𝘦𝘢𝘯𝘴 𝘊𝘭𝘶𝘴𝘵𝘦𝘳𝘪𝘯𝘨 𝘪𝘯 𝘗𝘩𝘺𝘵𝘰𝘯

ANALISIS CLUSTERING K-MEANS

Sebelum kita melangkah ke analisis clustering k-means terlebih dahulu kita harus mengetahui apa itu analisis clustering ?

Teknik analisa data yang bertujuan untuk mengelompokan individu atau objek ke dalam beberapa kelompok yang memiliki sifat berbeda antar kelompok sehingga individu atau objek yang terletak di dalam satu kelompok akan mempunyai sifat relatif homogen

Tujuan

  • Mengelompokkan objek-objek berdasarkan kesamaan karakteristik di antara objek-objek tersebut.
  • Objek bisa berupa produk (barang dan jasa), benda (tumbuhan atau lainnya), serta orang (responden, konsumen atau yang lain).

Ciri-ciri cluster yang baik:

  • Homogenitas (kesamaan) yang tinggi antar anggota dalam satu cluster (within-cluster).
  • Heterogenitas (perbedaan) yang tinggi antar cluster yang satu dengan cluster yang lainnya (between-cluster).

Metode analisis clustering itu sendiri terbagi menjadi 2 yaitu :

  1. Hirarki

memulai pengelompokan dengan dua atau lebih obyek yang mempunyai kesamaan paling dekat. Terdapat tingkatan (hirarki) yang jelas antar obyek, dari yang paling mirip hingga yang paling tidak mirip. Tools → dendogram

Metode hirarki itu sendiri terbagi lagi menjadi beberapa bagian yaitu :

  • Agglomerative
  • Divisive
  • Non Hirarki

dimulai dengan menentukan terlebih dahulu jumlah cluster yang diinginkan (dua,tiga, atau yang lain).  Setelah jumlah cluster ditentukan, maka proses cluster dilakukan dengan tanpa mengikuti proses hirarki . Metode ini biasa disebut “K-Means Cluster”.

Langkah langkah melakukan analisis K-Means Cluster

  1. Tentukan k sebagai jumlah cluster yang ingin dibentuk
  2. Bangkitkan k centroids (titik pusat cluster) awal secara random
  3. Hitung jarak setiap data ke masing-masing centroids
  4. Kelompokan setiap data ke centroids terdekat
  5. Tentukan posisi centroids baru dengan cara menghitung nilai rata-rata dari data-data yang terletak pada centroids yang sama
  6. Proses ini berlangsung secara iteratif sampai tidak ada lagi perubahan dalam pengelompokkan

Kelebihan dan kekurangan dari metode hirarki dan Non Hirarki

1. Hirarki

    Kelebihan

a. Menunjukkan keterhubungan

b. Memahami data lebih dalam

c.Tidak membutuhkan input variabel jumlah kluster

d. Banyak metode yang bisa digunakan

  Kekurangan

a. Dibutuhkan proses komputasi yang tinggi (dan waktu yang lebih lama) untuk menangani data dalam jumlah besar.

2. Non Hirarki

   Kelebihan

a. Waktu pemrosesan relatif cepat

b. Dapat digunakan untuk menganalisis sampel dengan ukuran besar

c. Algoritma mudah diterapkan

Kekurangan

a. Penentuan jumlah cluster:Perbedaan jumlah klaster dapat memberikan hasil yang berbeda.

b. Sensitif terhadap pencilan atau outlier. Solusi untuk masalah ini adalah dengan menghapus outlier dengan hati-hati dan berbagai pertimbangan.

Link syntax yang digunakan dalam menganallisis clustering K-Means

from sklearn.cluster import Kmeans
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from matplotlib import pyplot as plt
%matplotlib inline df = pd.read_csv(“income.csv”)
df.head()
plt.scatter(df.Age,df[‘Income($)’])
plt.xlabel(‘Age’)
plt.ylabel(‘Income($)’)
km = KMeans(n_clusters=3)
y_predicted = km.fit_predict(df[[‘Age’,’Income($)’]])
y_predicted
df[‘cluster’]=y_predicted
df.head()
km.cluster_centers_
df1 = df[df.cluster==0]
df2 = df[df.cluster==1]
df3=df[df.cluster==2]
plt.scatter(df1.Age,df1[‘Income($)’],color=‘green’)
plt.scatter(df2.Age,df2[‘Income($)’],color=‘red’)
plt.scatter(df3.Age,df3[‘Income($)’],color=‘black’)
plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],color=‘purple’,
marker=‘*’,label=‘centroid’)
plt.xlabel(‘Age’)
plt.ylabel(‘Income ($)’)
plt.legend()
scaler = MinMaxScaler()

 scaler.fit(df[[‘Income($)’]])
df[‘Income($)’] = scaler.transform(df[[‘Income($)’]]) 

scaler.fit(df[[‘Age’]])
df[‘Age’] = scaler.transform(df[[‘Age’]])
df.head()
plt.scatter(df.Age,df[‘Income($)’])
km = KMeans(n_clusters=3)
y_predicted = km.fit_predict(df[[‘Age’,’Income($)’]])
y_predicted
df[‘cluster’]=y_predicted
df.head()
km.cluster_centers_
df1 = df[df.cluster==0]
df2 = df[df.cluster==1]
df3 = df[df.cluster==2]
plt.scatter(df1.Age,df1[‘Income($)’],color=‘green’)
plt.scatter(df2.Age,df2[‘Income($)’],color=‘red’)
plt.scatter(df3.Age,df3[‘Income($)’],color=‘black’)
plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],color=‘purple’,
marker=‘*’,label=‘centroid’)
plt.legend()
sse = [ ]
k_rng = range(1,10)
for k in k_rng:   
km = KMeans(n_clusters=k)   
km.fit(df[[‘Age’,’Income($)’]])   
sse.append(km.inertia_)
plt.xlabel(‘K’)
plt.ylabel(‘Sum of squared error’)
plt.plot(k_rng,sse)

Leave a Reply