Anda di halaman 1dari 5

DBSCAN pada R

1. Pada kali ini akan mengaplikasikan DBSCAN pada sebuah data set multishapes (data yang
berisi kluster dari berbagai macam bentuk) yang terdiri dari 1100 observasi dengan mengambil
dua variabel pertama.

2. Selanjutnya melihat gambaran plot yang terbentuk dari data multishape.


Berdasarkan plot terlihat bahwa kerapatan antar data membentuk beberapa bentuk seperti
lingkaran dan persegi panjang.
3. Selanjutnya mengaplikasikan DBSCAN pada data yang sama. Pada DBSCAN tidak perlu
menentukan jumlah kluster di awal. Pada DBSCAN memerlukan dua parameter input sebelum
melakukan proses clustering yaitu epsilon (eps) dan minimum points (minPts). Epsilon
merupakan jarak maksimal antara dua data dalam satu cluster yang diizinkan, dan minimum
points adalah banyaknya data minimal dalam jarak epsilon agar terbentuk suatu cluster.
Nilai dari k ditentukan oleh user yang nantinya akan digunakan sebagai minPts pada proses
clustering. Dalam menentukan epsilon, dapat digunakan k-distance graph. Metode ini melihat
jarak setiap data point dari k-th nearest neighbor (data point terdekat). Jarak-jarak yang telah
dihitung, diurutkan dari besar ke kecil, kemudian ditentukan threshold yang menjadi nilai
epsilon pada bagian "lembah" atau bagian dari kurva di mana kurva mengalami pembelokan.
Pada kali ini digunakan fungsi `kNNdistplot` dari package `dbscan`.
Dengan menggunakan data set (`df`), akan dilihat k-distance graph dengan k=5.
Dari plot yang diperoleh, didapat nilai epsilon yang optimal sebesar 0,15. Nilai 0.15 didapat
dari posisi “knee” yang terbentuk pada plot.
4. Kemudian pembuatan cluster menggunakan fungsi `dbscan()` dari package `fpc`, dengan
parameter ‘epsilon=0.15’ dan ‘MinPts=5’.

Dari hasil di atas diperoleh bahwa pada DBSCAN terbentuk 5 kluster beserta data yang masuk
ke dalam noise. Noise yang terdeteksi pada data terlihat menyebar, hal ini dikarenakan data
noise tidak berhasil ditangkap oleh eps yang ditentukan.
5. Untuk melihat lebih detil dari hasil DBSCAN digunakan perintah sebagai berikut.

Kolom pada tabel di atas merepresentasikan kluster (dengan kolom 0 merepresentasikan


noise). Baris border mengindikasikan jumlah border point, seed mengindikasikan jumlah core
point, total mengindikasikan penjumlahan dari core point dan border point pada kluster
tersebut.
Dapat dilihat bahwa kluster 1 memiliki jumlah anggota terbanyak yaitu sebanyak 410,
kemudian kluster 2 sebanyak 405, kluster 3 sebnayak 104, kluster 4 sebanyak 99, dan kluster
5 sebanyak 51.
6. Lalu melihat indeks kluster dari setiap data poin menggunakan perintah sebagai berikut.

Dari informasi di atas, dapat dilihat bahwa setiap data point (dari 1 hingga ke 1100) masuk ke
dalam kluster berapa (0 dianggap sebagai noise).

Referensi
http://www.sthda.com/english/wiki/wiki.php?id_contents=7940
https://algotech.netlify.app/blog/dbscan-clustering/

Anda mungkin juga menyukai