Cara Menghitung Algoritma K-Means - Part 1






Data Mining – Algoritma Kmeans – XL-Miner

Ini adalah rangkaian konsep dan tools yang saya gunakan untuk mencari solusi dari maslah TA yang saya angkat. Algoritma K-means ini bisa menggunakan aplikasi XL-Miner sebagai tools nya dan mempercepat proses pengelolaan data, tapi saya gunakan juga hitungan manual menggunakan Ms.Excel sebagai pembanding dengan begitu semakin besar kebenaran suatu data tersebut. Cara menghitung manual nya seperti ini teman-teman, memang sedikit ribet dan memerlukan perhitungan yang teliti kalo salah sedikit maka kacau hasilnya sampai akhir dikarenakan semua hitungan ini berkaitan satu sama lain, so becarefuk ^^.

1.      Integrasi data 

No
Nama Pelanggan
NoPol
Jenis Mobil
No Telpon
Frekuensi Belanja
Total Belanja
1
FIRMAN
D87TH


1
220
2
ASEP
B1840TYJ


1
380
3
YUGA
D1419IL


1
300
4
AHMAD
D8729TE


1
409
5
TATI
D773LLY


1
230
6
ZAKI
D1546WB


1
77
7
TANTO

Jazz

1
422
8
PK.HAJI
D8382DD


1
193
9
ADI
D8744LX


1
270
10
TUTI
D1276VG
Katana

1
520
11
DIKI
D1567ND
Lancer

1
2475
12
ADE PHARMINDO
D1587ND
Landrover

1
285
13
RAMDAN
D1478NX
Agya

1
931
14
EGI
SPLASH
Splas

1
6749
15
GINA
D8643TD
Ayla

1
203
16
EGI PICANTO
D8381DN
Picanto

1
490
17
IQBAL
D8764TN
Lancer

1
320
18
BAMBANG
D8772BC
Apv

1
505
19
CEPI

Vitara

1
168
20
RIFKI

Xenia

1
587
21
AGUS

Yaris

1
300
22
NUNI

Mazda

1
600
23
MARK
D126DU


1
424
24
ABI
B1417ELO
Avanza

1
664
25
ALI KONVEKSI
B2632IJ
Gmax

1
270
26
ASEP JAHIT
D8000SS
Gmax

1
308
27
IMAM
D8795SAS


1
1570
28
TITO

Yaris

1
140
29
ABANG MESIN

Kia

1
440
30
HENDARIN

Kijang

1
494
31
ELIAN - BMW
D1259GD
BMW

1
345
32
TARUNA - DIKNAS
D8245TF
Taruna

1
150
33
ADANG
D1192FE


1
464
34
PK HAJI GOR
D1391SZ
SS

1
1439
35
SANDI
B9979AX
Apv

1
2510

Keterangan : Pada kolom no telepon tidak ditampilkan untuk alasan kerahasiaan data pelanggan. Total belanja dalam satuan rupiah (contoh 220 : dua ratus dua puluh ribu rupiah).

2.      Pembersihan data 
Pada tahap ini dilakukan terhadap data-data yang tidak akan digunakan dalam proses data mining dan pembersihan terhadap konten data yang tidak sesuai isinya. Kolom nopol, jenis mobil, dan no telepon akan dihapus. Sedangkan untuk data yang bernilai NULL dan kosong akan dihapus. Proses pembersihan data dapat dilihat pada tabel berikut ini : 

No
Nama Pelanggan
NoPol
Jenis Mobil
No Telpon
Frekuensi Transaksi
Total Transaksi
1
FIRMAN
D87TH


1
220
2
ASEP
B1840TYJ


1
380
3
YUGA
D1419IL


1
300
4
AHMAD
D8729TE


1
409
5
TATI
D773LLY


1
230
6
ZAKI
D1546WB


1
77
7
TANTO

Jazz

1
422
8
PK.HAJI
D8382DD


1
193
9
ADI
D8744LX


1
270
10
TUTI
D1276VG
Katana

1
520
11
DIKI
D1567ND
Lancer

1
2475
12
ADE PHARMINDO
D1587ND
Landrover

1
285
13
RAMDAN
D1478NX
Agya

1
931
14
EGI
SPLASH
Splas

1
6749
15
GINA
D8643TD
Ayla

1
203
16
EGI PICANTO
D8381DN
Picanto

1
490
17
IQBAL
D8764TN
Lancer

1
320
18
BAMBANG
D8772BC
Apv

1
505
19
CEPI

Vitara

1
168
20
RIFKI

Xenia

1
587
21
AGUS

Yaris

1
300
22
NUNI

Mazda

1
600
23
MARK
D126DU


1
424
24
ABI
B1417ELO
Avanza

1
664
25
ALI KONVEKSI
B2632IJ
Gmax

1
270
26
ASEP JAHIT
D8000SS
Gmax

1
308
27
IMAM
D8795SAS


1
1570
28
TITO

Yaris

1
140
29
ABANG MESIN

Kia

1
440
30
HENDARIN

Kijang

1
494
31
ELIAN - BMW
D1259GD
BMW

1
345
32
TARUNA - DIKNAS
D8245TF
Taruna

1
150
33
ADANG
D1192FE


1
464
34
PK HAJI GOR
D1391SZ
SS

1
1439
35
SANDI
B9979AX
Apv

1
2510

Keterangan :                           Kolom yang dihapus (abu)
                                    Baris yang dihapus (abu)
Berdasarkan pembersihan data yang dilakukan terdapat 3 kolom yang dihapus Nopol, Jenis Mobil, No Telepon. Berikut merupakan hasil pembersihan data dapat dilihat pada tabel berikut

No
Nama Pelanggan
Frekuensi Belanja
Total Belanja
1
FIRMAN
1
220
2
ASEP
1
380
3
YUGA
1
300
4
AHMAD
1
409
5
TATI
1
230
6
ZAKI
1
77
7
TANTO
1
422
8
PK.HAJI
1
193
9
ADI
1
270
10
TUTI
1
520
11
DIKI
1
2475
12
ADE PHARMINDO
1
285
13
RAMDAN
1
931
14
EGI
1
6749
15
GINA
1
203
16
EGI PICANTO
1
490
17
IQBAL
1
320
18
BAMBANG
1
505
19
CEPI
1
168
20
RIFKI
1
587
21
AGUS
1
300
22
NUNI
1
600
23
MARK
1
424
24
ABI
1
664
25
ALI KONVEKSI
1
270
26
ASEP JAHIT
1
308
27
IMAM
1
1570
28
TITO
1
140
29
ABANG MESIN
1
440
30
HENDARIN
1
494
31
ELIAN - BMW
1
345
32
TARUNA - DIKNAS
1
150
33
ADANG
1
464
34
PK HAJI GOR
1
1439
35
SANDI
1
2510

Ini merupakan data set yang sudah melalui beberapa tahap pemberihan data (saya bahas terpisah di artikel selanjutnya). Selanjutnya kita selesaikan perhitungan menggunakan teknik manual terlebih dahulu.
Pada tahap ini akan dilakukan pembentukan klasterisasi menggunakan algoritma K-Means pada dataset yang sudah terbentuk, data yang terdapat pada dataset diambil secara acak. Tahap ini dilakukan bertujuan untuk mengetahui alur dari algoritma K-Means dalam membentuk klasterisasi yang dapat memberikan pengetahuan mengenai kalster pelanggan. Berikut ini merukapan dataset yang digunakan untuk memebuat kalsterisasi pelanggan.

No
Nama Pelanggan
Frekuensi Transaksi
Total Transaksi
1
FIRMAN
1
220
2
ASEP
1
380
3
YUGA
1
300
4
AHMAD
1
409
5
TATI
1
230
6
ZAKI
1
77
7
TANTO
1
422
8
PK.HAJI
1
193
9
ADI
1
270
10
TUTI
1
520
11
DIKI
1
2475
12
ADE PHARMINDO
1
285
13
RAMDAN
1
931
14
EGI
1
6749
15
GINA
1
203
16
EGI PICANTO
1
490
17
IQBAL
1
320
18
BAMBANG
1
505
19
CEPI
1
168
20
RIFKI
1
587
21
AGUS
1
300
22
NUNI
1
600
23
MARK
1
424
24
ABI
1
664
25
ALI KONVEKSI
1
270
26
ASEP JAHIT
1
308
27
IMAM
1
1570
28
TITO
1
140
29
ABANG MESIN
1
440
30
HENDARIN
1
494
31
ELIAN - BMW
1
345
32
TARUNA - DIKNAS
1
150
33
ADANG
1
464
34
PK HAJI GOR
1
1439
35
SANDI
1
2510

1.      Penentuan pusat cluster awal
             Dalam menetukan "n" buah pusat cluster awal dilakukan pembangkitan bilangan acak yang mempresentasikan urutan data input. Pusat awal cluster didapatkan dari data sendiri bukan dengan menentukan titik baru, yaitu dengan menentukan secara acak pusat awal dari data.  Pada kasus ini terdapat 2 atribut untuk nilai pusat cluster (centroid) yaitu nilai acak dari rentang angka yang ada pada atribut frekuensi belanja dan nilai acak dari rentang angka yang ada pada atribut total belanja. Misal, Pusat Cluster (Centroid) C1 = (1, 2475) dimana angka 1 adalah nilai acak dari rentang nilai yang ada pada atribut frekuensi belanja dan angka 2475 adalah nilai acak dari rentang nilai yang ada pada atribut total belanja. Pusat Cluster (Centroid) C2 = (1, 931) dan pusat Cluster (Centroid) C3 = (1,  270).  Untuk pusat cluster pada dataset menggunakan Pusat cluster ke-1 diambil dari data ke-11, Pusat cluster ke-2 diambil dari data ke-13, Pusat cluster ke-3 diambil dati data ke-25.

2.      Perhitungan jarak data dengan pusat cluster
       Hitung jarak setiap data yang ada terhadap setiap pusat cluster. Perhitungan jarak setiap data dengan setiap pusat cluster menggunakan metode Euclidean dengan rumus 2.6. Adapun proses perhitungan jarak setiap data dengan pusat cluster sebagai berikut :
a.      Ambil nilai data
Misal, data pelanggan ke-1

No
Nama Pelanggan
Frekuensi
Total
Belanja
Belanja
1
FIRMAN
1
220


Artinya jarak data pelanggan pertama dengan centroid C3 sebesar 50. Dari hasil perhitungan data pelanggan ke-1 dengan setiap pusat cluster maka dapat dilihat bahwa pelanggan ke-1 memiliki jarak terdekat dari pusat cluster C3, sehingga data pelanggan ke-1 merupakan anggota dari kelompok 3. Hasil Euclidian distance iterasi ke-1 dari dataset bisa dilihat pada tabel berikut.

No
Nama Pelanggan
Frekuensi
Total
C1
C2
C3
Jarak Terpendek
Belanja
Belanja
1
FIRMAN
1
220
2255
711
50
50
2
ASEP
1
380
2095
551
110
110
3
YUGA
1
300
2175
631
30
30
4
AHMAD
1
409
2066
522
139
139
5
TATI
1
230
2245
701
40
40
6
ZAKI
1
77
2398
854
193
193
7
TANTO
1
422
2053
509
152
152
8
PK.HAJI
1
193
2282
738
77
77
9
ADI
1
270
2205
661
0
0
10
TUTI
1
520
1955
411
250
250
11
DIKI
1
2475
0
1544
2205
0
12
ADE PHARMINDO
1
285
2190
646
15
15
13
RAMDAN
1
931
1544
0
661
0
14
EGI SPLASH
1
6749
4274
5818
6479
4274
15
GINA
1
203
2272
728
67
67
16
EGI PICANTO
1
490
1985
441
220
220
17
IQBAL
1
320
2155
611
50
50
18
BAMBANG
1
505
1970
426
235
235
19
CEPI
1
168
2307
763
102
102
20
RIFKI
1
587
1888
344
317
317
21
AGUS
1
300
2175
631
30
30
22
NUNI
1
600
1875
331
330
330
23
MARK
1
424
2051
507
154
154
24
ABI
1
664
1811
267
394
267
25
ALI KONVEKSI
1
270
2205
661
0
0
26
ASEP JAHIT
1
308
2167
623
38
38
27
IMAM
1
1570
905
639
1300
639
28
TITO
1
140
2335
791
130
130
29
ABANG MESIN
1
440
2035
491
170
170
30
HENDARIN
1
494
1981
437
224
224
31
ELIAN - BMW
1
345
2130
586
75
75
32
TARUNA - DIKNAS
1
150
2325
781
120
120
33
ADANG
1
464
2011
467
194
194
34
PK HAJI GOR
1
1439
1036
508
1169
508
35
SANDI
1
2510
35
1579
2240
35

3.      Pengelompokan data
Suatu data akan menjadi anggota dari suatu kelompok yang memiliki jarak terkecil dari pusat kelompoknya. Algoritma pengelompokan data sebagai berikut.
a.       Ambil nilai masing-masing data sengan setiap pusat cluster,
 d11 = 2255
 d12 = 711
 d13 = 50
b.      Cari nilai jarak terkecil
Misal nilai jarak data ke-1
                        d13 < d12 < d11
c.       Kelompokan data dengan pusat cluster yang memiliki jarak terkecil.
Misal data ke-1 memiliki jarak terkecil dengan pusat cluster C3 maka data ke-1 masuk kedalam kelompok 3. Kelompok dataset hasil iterasi ke-1 dapat dilihat pada tabel berikut.


No
Nama Pelanggan
C1
C2
C3
1
FIRMAN


1
2
ASEP


1
3
YUGA


1
4
AHMAD


1
5
TATI


1
6
ZAKI


1
7
TANTO


1
8
PK.HAJI


1
9
ADI


1
10
TUTI


1
11
DIKI
1


12
ADE PHARMINDO


1
13
RAMDAN

1

14
EGI SPLASH
1


15
GINA


1
16
EGI PICANTO


1
17
IQBAL


1
18
BAMBANG


1
19
CEPI


1
20
RIFKI


1
21
AGUS


1
22
NUNI


1
23
MARK


1
24
ABI

1

25
ALI KONVEKSI


1
26
ASEP JAHIT


1
27
IMAM

1

28
TITO


1
29
ABANG MESIN


1
30
HENDARIN


1
31
ELIAN - BMW


1
32
TARUNA - DIKNAS


1
33
ADANG


1
34
PK HAJI GOR

1

35
SANDI
1



Keterangan : Angka 1 adalah jarak terdekat yang terletak pada Cn.

ini baru iterasi ke-1 dan masih berlanjut sampai didapat hasil iterasi terakhir sama dengan hasil iterasi sebelumnya. so kita lanjut di pembahasan iterasi selanjutnya -- see you! ^^

Comments