K - Means Clustering Menggunakan Python (Google Colab)

 

Apa itu Algoritma K-Means Clustering?

K-Means Clustering adalah suatu metode penganalisaan data atau metode Data Mining yang melakukan proses pemodelan tanpa supervisi (unsupervised) dan merupakan salah satu metode yang melakukan pengelompokan data dengan sistem partisi.
Terdapat dua jenis data clustering yang sering dipergunakan dalam proses pengelompokan data yaitu Hierarchical dan Non-Hierarchical, dan K-Means merupakan salah satu metode data clustering non-hierarchical atau Partitional Clustering.

Bagaimana cara kerja K-Means Clustering?

Untuk memproses data algoritma K-means Clustering , data dimulai dengan kelompok pertama centroid yang dipilih secara acak, yang digunakan sebagai titik awal untuk setiap cluster, dan kemudian melakukan perhitungan berulang (berulang) untuk mengoptimalkan posisi centroid.
Proses ini berhenti atau telah selesai dalam mengoptimalkan cluster ketika:

1. Centroid telah stabil, yang artinya tidak ada perubahan dalam nilai-nilai mereka karena pengelompokan telah berhasil.

2. Jumlah iterasi yang ditentukan telah tercapai.

Selanjutnya kita harus mengimport package yang kita butuhkan.

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler

Jika telah berhasil, sekarang saatnya input data nilai yang telah kita miliki,

d = pd.read_csv('nilai.csv') 
d.head()


Dan akan didapatkan output seperti ini,



 

selanjutnya kita akan menghilangkan tabel Nama Mahasiswanya, caranya seperti ini

d = d.drop (['NAMA MAHASISWA'], axis=1)
d.head()
d_x = d.iloc [:,1:4]


Kemudian kita harus mengubah variabel yang sebelumnya berbentuk data frame menjadi array.

x_array = np.array (d_x)
print (x_array)
 

Karena ukuran data sangat jauh perbedaan rentangnya antara Longitute dan Latitude yang akan menyebabkan plot tidak muncul dengan sempurna maka kita harus melakukan standarisasi. 

scaler = MinMaxScaler()
x_scaled = scaler.fit_transform(x_array)
x_scaled
 
 

Dapat dilihat bahwa hasil dari scalling data membuat data yang kita miliki berada di antara 0–1. Sehingga tentunya akan lebih mudah untuk diklusterkan.

Setelah itu, kita akan menentukan jumlah klasternya, misalnya disini kita memilih 3 klaster. Jumlah klaster ini bebas tergantung peneliti.

kmeans = KMeans (n_clusters=3, random_state=123)
kmeans.fit (x_scaled)

Kita dapat mencari nilai pusat dari masing masing klaster, 

print(kmeans.cluster_centers_)
 

Kemudian tampilkan hasil kluster mu dan tambahkan kolom klusteran mu kedalam data frame.

print (kmeans.labels_)
d ["kluster"] = kmeans. labels_
d.head()


Kita dapat memvisualisasikan hasil kluster agar nampak hasil nya dengan jelas.

output = plt.scatter(x_scaled[:,0], x_scaled[:,1], s=100, c=d.kluster, marker='o',alpha = 1,)
centers = kmeans.cluster_centers_
plt.scatter(centers[:,0], centers[:,1], c = 'red', s =200, alpha = 1, marker = 's');
plt.colorbar (output)
plt.show
 




Komentar

Postingan populer dari blog ini

Sistem Informasi Kost Kampus untuk Mahasiswa UMSIDA (RESCOM)

Informasi KKN (Kuliah Kerja Nyata ) Universitas Muhammadiyah Sidoarjo (UMSIDA) tahun 2022

Rangkuman Praktikum Rekayasa Perangkat Lunak