Disusun oleh :
Ahmad Fachrur Rozy 04218065
Algoritma K-Means adalah Metode clustering berbasis jarak yang membagi data kedalam
sejumlah cluster, metode ini hanya bekerja pada atribut numerik saja
Dengan kata lain, metode K-Means Clustering bertujuan untuk meminimalisasikan objective
function yang diset dalam proses clustering dengan cara meminimalkan variasi antar data yang
ada di dalam suatu cluster dan memaksimalkan variasi dengan data yang ada di cluster lainnya
juga bertujuan untuk menemukan grup dalam data, dengan jumlah grup yang diwakili oleh
variabel K. Variabel K sendiri adalah jumlah cluster yang diinginkan. 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 .
Pada algoritma pembelajaran ini, komputer mengelompokkan sendiri data-data yang menjadi
masukannya tanpa mengetahui terlebih dulu target kelasnya. Pembelajaran ini termasuk
dalam unsupervised learning. Masukan yang diterima adalah data atau objek dan k buah
kelompok (cluster) yang diinginkan. Algoritma ini akan mengelompokkan data atau objek ke
dalam k buah kelompok tersebut. Pada setiap cluster terdapat titik pusat (centroid) yang
merepresentasikan cluster tersebut.
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.
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. Data clustering menggunakan
metode K-Means Clustering ini secara umum dilakukan dengan algoritma dasar sebagai berikut:
Beberapa permasalahan yang sering muncul pada saat menggunakan metode K-Means untuk
melakukan pengelompokan data adalah:
1. Ditemukannya beberapa model clustering yang berbeda
2. Pemilihan jumlah cluster yang paling tepat
3. Kegagalan untuk converge
4. Outliers
5. Bentuk cluster
Overlapping
Menurut Daniel dan Eko, Langkah-langkah algoritma K-Means adalah sebagai berikut:
1. Pilih secara acak k buah data sebagai pusat cluster.
2. Jarak antara data dan pusat cluster dihitung menggunakan Euclidean Distance. Untuk
menghitung jarak semua data ke setiap titik pusat cluster dapat menggunakan teori
jarak Euclidean yang dirumuskan sebagai berikut: dimana: D (i,j) = Jarak data ke i ke pusat
cluster j Xki = Data ke i pada atribut data ke k Xkj = Titik pusat ke j pada atribut ke k
3. Data ditempatkan dalam cluster yang terdekat, dihitung dari tengah cluster.
4. Pusat cluster baru akan ditentukan bila semua data telah ditetapkan dalam cluster terdekat.
5. Proses penentuan pusat cluster dan penempatan data dalam cluster diulangi sampai nilai
centroid tidak berubah lagi.
Proses pengelompokkan data ke dalam suatu cluster dapat dilakukan dengan cara menghitung jarak
terdekat dari suatu data ke sebuah titik centroid.
Ada beberapa kelebihan pada algoritma k-means, yaitu:
1. Mudah untuk diimplementasikan dan dijalankan.
2. Waktu yang dibutuhkan untuk menjalankan pembelajaran ini relatif cepat.
3. Mudah untuk diadaptasi.
4. Umum digunakan.
Algoritma k-means memiliki beberapa kelebihan, namun ada kekurangannya juga. Kekurangan
dari algoritma tersebut yaitu :
1. Sebelum algoritma dijalankan, k buah titik diinisialisasi secara random sehingga
pengelompokkan data yang dihasilkan dapat berbeda-beda. Jika nilai random untuk
inisialisasi kurang baik, maka pengelompokkan yang dihasilkan pun menjadi kurang optimal.
2. Dapat terjebak dalam masalah yang disebut curse of dimensionality. Hal ini dapat terjadi jika
data pelatihan memiliki dimensi yang sangat tinggi (Contoh jika data pelatihan terdiri dari 2
atribut maka dimensinya adalah 2 dimensi. Namun jika ada 20 atribut, maka akan ada 20
dimensi). Salah satu cara kerja algoritma ini adalah mencari jarak terdekat antara k buah titik
dengan titik lainnya. Jika mencari jarak antar titik pada 2 dimensi, masih mudah dilakukan.
Namun bagaimana mencari jarak antar titik jika terdapat 20 dimensi. Hal ini akan menjadi
sulit.
3. Jika hanya terdapat beberapa titik sampel data, maka cukup mudah untuk menghitung dan
mencari titik terdekat dengan k titik yang diinisialisasi secara random. Namun jika terdapat
banyak sekali titik data (misalnya satu milyar buah data), maka perhitungan dan pencarian
titik terdekat akan membutuhkan waktu yang lama. Proses tersebut dapat dipercepat, namun
dibutuhkan struktur data yang lebih rumit seperti kD-Tree atau hashing.
V. Google Collabs
Google colab merupakan salah satu produk yang berbasis cloud. Meskipun demikian, Google
Colab dapat kita gunakan secara gratis. Google colab dibuat khusus untuk programmer atau
peneliti yang kesulitan untuk mendapatkan akses dengan spek tinggi. Jika kalian perhatikan,
Google Colab adalah coding environment bahasa pemrograman Python dengan format
“notebook” (mirip dengan Jupyter notebook), atau dengan kata lain ibaratnya Google
meminjamkan kita komputer secara gratis untuk membuat program atau melakukan pengolahan
data dari Google. Dalam hal ini, Google Colab juga menyediakan environment yang sangat open
source untuk belajar python. Sangat disarankan bagi kalian pemula di bidang data, peneliti pemula
maupun sahabat data yang akan berkarir dalam dunia data menggunakan Google Colab dengan
belajar Python.
Google telah menyediakan berbagai fitur bagi penggunanya. Salah satunya adalah Google
Colab yang bisa digunakan dalam berbagai keperluan utamanya belajar Python. Adapun manfaat
Google Colab yaitu sesuai dengan namanya sendiri adalah Colaborate. Memang benar, Google
Colab dapat berkolaborasi dengan pengguna lainnya melalui berbagi coding secara online. Kita
bisa lebih mudah bereksperimen secara bersamaan, atau sekadar menggunakan fitur ini untuk
mempelajari codingan orang lain. Tentunya, sahabat data akan diuntungkan dengan format mirip
Jupyter Notebook karena lebih rapi. Google Colab juga terbilang sangat fleksibel. Kita dapat
dengan mudah menghubungkan Google Colab dengan jupyter notebook di komputer kita (local
runtime), menghubungkan dengan Google Drive, atau dengan Github.
Seperti Aplikasi Google pada umumnya, yang kita butuhkan adalah akun Google dan silakan
ke https://colab.research.google.com/. Untuk membuat notebook baru, cukup klik New Python 3
Notebook (atau Python 2 tergantung apa yang akan digunakan) lalu kita akan dibawa ke halaman
yang mirip dengan Jupyter Notebook. Nantinya, setiap notebook yang kita buat akan disimpan di
Google Drive kita. Jika sahabat data familiar dengan aplikasi Jupyter Notebook, tentunya cara
penggunaannya pun hampir serupa. Fitur colab tidak hanya dapat menjalankan perintah pada
notebook saja tapi bisa juga menjalankan berkas yang berisikan kode Python (*.py) yang sudah
kita buat sebelumnya, untuk memanfaatkan fitur ini kita perlu menginstal OCaml Fuse yang
digunakan untuk import berkas Python, caranya jalankan perintah dibawah ini pada cell.
VI. Python For Data Mining
Python adalah scripting language yang berorientasi objek. Bahasa pemrograman ini dapat
digunakan untuk pengembangan perangkat lunak dan bisa dijalankan melalui berbagai sistem
operasi. Saat ini, Python juga merupakan bahasa yang populer bagi bidang data science dan
analisis. Hal ini dikarenakan oleh dukungan bahasa Python terhadap library – library yang
didalamnya menyediakan fungsi analisis data dan fungsi machine learning, data preprocessing
tools, serta visualisasi data. Secara umum, Python memiliki ciri-ciri sebagai berikut:
1. Banyak mendukung library
2. Bahasa yang relatif mudah dipahami
3. Memiliki aturan layout source code yang memudahkan pengecekan code
4. Bahasa yang interpreted karena code dieksekusi satu per satu dan melakukan debugging lebih
mudah dibandingkan dengan bahasa yang di-compile
5. Bahasa yang portable karena hanya code satu kali untuk menjalankan di platform lain
6. Bahasa yang open-source.
Berikut ini adalah beberapa alasan Python menjadi bahasa yang populer, khususnya dalam ranah
analisis data dan data science :
1. Ketersediaan akan open-source library, frameworks, tools untuk data mining, contohnya
adalah SciKit Learn, TensorFlow, Keras.
2. Relatif lebih mudah dipahami. Penulisan code di Python relatif lebih singkat dibandingkan
bahasa pemrograman yang
3. Multifungsi, tidak hanya untuk data processing, namun juga bisa untuk tugas lain seperti
membuat website dan tampilan GUI (Graphical User Interface).
Dalam membuat sebuah proyek data mining dengan Python, dapat menggunakan Anaconda,
dimana Anaconda telah menyediakan berbagai kelengkapan Python yang lebih dikhususkan untuk
kebutuhan analisis data. IDE (Integrated Development Enviroment) yang dapat digunakan antara
lain Jupyter Notebook dengan extension .ipynb yang sudah merupakan bawaan dari Anaconda
Navigator atau dengan text editor seperti Sublime, Notepad, Notepad++ dengan extension .py.
Berikut adalah contoh proses yang dilakukan oleh Python untuk proyek data mining sederhana:
1. Data mentah, dapat diimpor ke Python dengan menggunakan library Library ini mempunyai
fungsi untuk mengimpor data dengan format csv ke Python.
2. Eksplorasi data dan data preprocessing dapat dilakukan dengan lebih mudah, karena Python
telah memiliki fungsi untuk melihat persebaran data dan melakukan manipulasi data
untuk handle data yang tidak sesuai. Dalam kasus ini library yang berfungsi adalah sklearn
(Sci – kit learn) dan NumPy. Untuk visualisasi data, salah satu library yang terkenal adalah
Matplotlib, dimana dapat membuat visualisasi dari persebaran data termasuk plot dan chart.
3. Pembuatan model data mining dapat dilakukan dengan cepat dengan tersedianya fitur –
fitur machine learning yang cukup lengkap dari Sci – kit learn. Setelah memilih metode yang
diinginkan, dapat langsung menggunakan fungsi didalam library yang Contoh metode yang
tersedia adalah neural network, decision tree, SVM, random forest, regression tree, logistic
regression. Tidak hanya Sci – kit learn, ada beberapa library lain yang dapat digunakan seperti
Keras, TensorFlow. Pembagian data testing dan training juga dapat dilakukan
dengan library mengikuti metode yang tersedia. Contohnya adalah cross – validation.
4. Evaluasi model yang telah dibuat, seperti menghitung akurasi, spesifisitas, sensitivitas, presisi,
error rate dapat ditampilkan dengan mudah dengan menggunakan fungsi classification_score
yang tersedia pada Sci – kit learn. Hanya dengan satu baris, seluruh komponen evaluasi akan
ditampilkan. Tidak hanya itu, fungsi pada Sci-kit learn juga dapat menampilkan confusion
matrix yang berisi nilai prediksi dan aktual yang dilakukan dari data testing.
5. Merepresentasikan hasil dari model dapat divisualisasikan dalam bentuk plot ataupun hasil
dalam bentuk web. Ketika permintaan penampilan hasil dalam bentuk web, maka hasil dari
model dapat disinkronkan karena Python juga mendukung untuk pembuatan web. Selain itu,
untuk menampilkan model, dapat menggunakan library – library lain, contohnya adalah
graphviz untuk menampilkan decision tree.
Golden rule (threshold) yang digunakan adalah : 60% atau barang yang dibeli paling sedikit 3.
Untuk mempermudah, nama-nama item di Tabel 1, disingkat dengan diambil huruf awalnya saja, sebagai
contoh :
M = Mango
O = Onion
Dan sebagainya.
Langkah ke-1 : Hitung banyaknya transaksi untuk setiap item. Hati-hati, untuk item O (Onion) dibeli
sebanyak 4 biji, namun pembelian O hanya ada 3 transaksi.
Langkah ke-2 : Berdasarkan golden rule yang telah disebutkan di atas, saring data pada Tabel 3, hanya
memilih item yang memiliki transaksi minimal sebanyak 3 transaksi. Item yang banyaknya transaksi kurang
dari 3, dibuang. Hasilnya dapat dilihat di Tabel di bawah.
Langkah ke-3 : Buat pasangan item dimulai dari item pertama, yaitu MO, MK, ME, MY. Kemudian
dilanjutkan dengan item kedua. Misalnya OK, OE, OY. Perhatikan, OM tidak dibuat karena OM = MO
(pasangan yang dibuat dari item pertama).
Langkah ke-4 : Hitung berapa kali suatu pasangan item dibeli bersamaan. Contohnya pasangan MO dibeli
secara bersamaan dalam itemset {M, O, N, K, E, Y}. Pasangan MK dibeli bersamaan sebanyak 3 kali yaitu
di dalam {M,O,N,K,E,Y}, {M,A,K,E}, dan {M,U,C, K, Y}. Hasilnya dapat dilihat pada Tabel 6.
Langkah ke-5 : Gunakan golden rule, hapus semua pasangan item yang banyaknya transaksi kurang dari
tiga. Hasilnya adalah pada Tabel 7.
Langkah ke-6 : Buat pasangan tiga item dengan aturan menggunakan pasangan item pada Tabel ke 7 yang
memiliki huruf awal yang sama yaitu :
• OK dan OE, menjadi OKE
• KE dan KY, menjadi KEY
Kemudian hitung ada beberapa banyaknya transaksi dari pasangan tiga item berdasarkan Tabel ke 3.
Hasilnya dapat dilihat pada Tabel di bawah.
Dalam langkah ini, misalkan ada tiga pasangan item ABC, ABD, ACD, ACE, BCD dan akan dibuatkan
pasangan 4 item, carilah 2 huruf awal yang sama. Contoh :
Langkah ke-7 : Gunakan lagi golden rule, dengan membuang pasangan tiga item yang banyaknya transaksi
kurang dari 3. Hasilnya tinggal OKE karena KEY hanya dibeli bersamaan dua kali.
Untuk mengetahui tingkat keyakinan (confidence), frequent itemset (yaitu {O, K, E}) dapat digunakan
untuk mencari aturan-aturan asosiasi antar item di dalam frequent itemset tersebut. Caranya adalah :
1. Itemset dibuatkan himpunan bagiannya. Hasilnya seperti pada contoh di bawah :
• {O}
• {K}
• {E}
• {O, K}
• {K, E}
• {O, E}
2. Cari asosiasi pada semua himpunan bagian yang telah dibuat, misal : {O} => {K, E} artinya : jika O
dibeli, bagaimana kemungkinan K dan E akan dibeli pada transaksi yang sama. O dibeli pada 3 transaksi
dan di dalam 3 transaksi tersebut, K dan E juga dibeli. Maka keyakinannya adalah :