NIM : 1715015031
Kelas : TI A 17
Kecerdasan Buatan
Sejarah K-Mean
K-means merupakan salah satu algoritma clustering. Tujuan algoritma ini yaitu untuk
membagi data menjadi beberapa kelompok. Algoritma ini menerima masukan berupa data
tanpa label kelas. Hal ini berbeda dengan supervised learning yang menerima masukan berupa
vektor (x1 , y1) , (x2 , y2) , …, (xi , yi), di mana xi merupakan data dari suatu data pelatihan
dan yi merupakan label kelas untuk xi .
K-means ditemukan oleh beberapa orang yaitu Lloyd (1957, 1982), Forgey (1965) ,
Friedman and Rubin (1967) , and McQueen (1967) . Ide dari clustering pertama kali ditemukan
oleh Lloyd pada tahun 1957, namun hal tersebut baru dipublikasi pada tahun 1982. Pada tahun
1965, Forgey juga mempublikasi teknik yang sama sehingga terkadang dikenal sebagai Lloyd-
Forgy pada beberapa sumber.
Algoritma K-Mean
Algoritma untuk melakukan K-Means clustering adalah sebagai berikut :
Dari data yang Kides miliki terdapat 10 variabel pada data set yang ada . Ada beberapa
variabel yang tidak dibutuhkan sehingga harus dihapuskan.
Pada gambar diatas menunjukkan dataset untuk 38092 driver . Selanjutnya menentukan
variabel yang diklusterkan , disini Kides menggunakan variabel jarak pada sumbu X dan
variabel kecepatan pada sumbu Y .
-- Menentukan variabel yang akan di klusterkan ---
driver_x = driver.iloc[:, 1:3]
driver_x.head()
Kemudian Kides harus menstandarkan kembali ukuran variabel . Agar data dapat kembali
seperti jenis data diawal sebelum di array kan
--- Menstandarkan Ukuran Variabel ---
scaler = MinMaxScaler()
x_scaled = scaler.fit_transform(x_array)
x_scaled
Tentukan nilai K . Dalam hal tersebut, nilai K (n_clusters) atau nilai arbitrer bebas
ditentukan , tergantung kepada peneliti .Pada kasus ini , Kides akan mengkonfigurasi dan
menentukan nilai K sebesar 3 cluster. Selain itu Kides juga menetukan kluster dari data yang
telah di standarkan .
--- Menentukan dan mengkonfigurasi fungsi kmeans ---
kmeans = KMeans(n_clusters = 3, random_state=123)
--- Menentukan kluster dari data ---
kmeans.fit(x_scaled)
Selanjutnya Kides menampilkan hasil cluster dan Menambahkan kolom data frame driver .
--- Menampilkan Hasil Kluster ---
print(kmeans.labels_)
--- Menambahkan Kolom "kluster" Dalam Data Frame Driver ---
driver["kluster"] = kmeans.labels_
Kemudian memvisualisasikan hasil cluster
--- Memvisualkan hasil kluster ---
output = plt.scatter(x_scaled[:,0], x_scaled[:,1], s = 100, c = driver.kluster, marker = "o",
alpha = 1, )
centers = kmeans.cluster_centers_
plt.scatter(centers[:,0], centers[:,1], c='red', s=200, alpha=1 , marker="s");
plt.title("Hasil Klustering K-Means")
plt.colorbar (output)
plt.show()
Dari gambar diatas dapat kita lihat bahwa dari data pengemudi Go-Track telah ter cluster
menjadi 3.