Modul Data Mining PDF
Modul Data Mining PDF
DAFTAR ISI
HALAMAN JUDUL........................................................................................................................... 0
BAB 1 ..................................................................................................................................................... 3
PENDAHULUAN .................................................................................................................................. 3
1.1 MATLAB (Matrix Laboratory) .................................................................................................... 4
1.2 Fuzzy C-Means (FCM) ................................................................................................................ 8
1.3 K-Means ....................................................................................................................................... 9
BAB 2 ................................................................................................................................................... 12
KONSEP/TEORI MATEMATIS........................................................................................................ 12
METODE CLUSTERING K-MENAS DAN FUZZY C-MEANS...................................................... 12
2.1. Fuzzy C-Means ..................................................................................................................... 12
2.2. K-Means Clustering ............................................................................................................. 14
BAB 3 ................................................................................................................................................... 15
SIMULASI DATA ............................................................................................................................... 15
3.1 Fuzzy C-Means .......................................................................................................................... 15
3.2 K-Means ..................................................................................................................................... 16
BAB 4 ................................................................................................................................................... 19
PENUTUP............................................................................................................................................ 19
4.1 Kesimpulan ................................................................................................................................ 19
DAFTAR PUSTAKA .......................................................................................................................... 20
2
BAB 1
PENDAHULUAN
Perkembangan teknologi informasi yang semakin canggih saat ini, telah menghasilkan
banyak tumpukan data. Pertambahan data yang semakin banyak akan menimbulkan pertanyaan
besar, yaitu “apa yang dapat dilakukan dari tumpukan data tersebut?”. Untuk menjawab
pertanyaan tersebut, dapat diterapkan sebuah teknologi basis data yang dikenal dengan data
mining. Data mining dapat diterapkan untuk menggali nilai tambah dari suatu kumpulan data
berupa pengetahuan yang selama ini tidak diketahui secara manual. Terdapat beberapa teknik
yang digunakan dalam data mining, salah satu teknik data mining adalah clustering. Terdapat
dua jenis metode clustering yang digunakan dalam pengelompokkan data, yaitu hierarchical
clustering dan non-hierarchical clustering. K-means clustering sebagai salah satu metode data
clustering non-hirarki mempartisi data yang ada ke dalam bentuk satu atau lebih cluster atau
kelompok, sehingga data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu
cluster yang sama dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke
dalam kelompok yang lain. Kelompok atau cluster yang didapat merupakan
pengetahuan/informasi yang bermanfaat bagi pengguna kebijakan dalam proses pengambilan
keputusan.
3
1.1 MATLAB (Matrix Laboratory)
MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi
numerik dan merupakan sebuah bahasa pemrograman matematika lanjutan yang di bentuk
dengan dasar pemikiran menggunakan sifat dan bentuk matrik.
Matlab adalah sebuah bahasa dengan kinerja tinggi (high-performance) untuk komputasi
masalah teknik. Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu
model yang sangat mudah untuk dipakai dimana masalah - masalah penyelesainnya
diekspresikan dalam notasi matematika yang familiar.
Penggunaan Matlab meliputi bidang - bidang:
Matematika dan Komputasi
Pembentukan Algorithm
Akusisi data
Matlab merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu array
sehingga tidak lagi kita pusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk
memecahkan banyak masalah teknis yang berkaitan dengan komputasi, khususnya yang
berhubungan dengan matrix dan formulasi vektor, yang mana masalah tersebut merupakan
momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti
Pascal, C dan Basic.
Nama MATLAB merupakan singkatan dari matrix laboratory. Matlab pada awalnya
ditulis untuk memudahkan akses perangkat lunak matrix yang telah dibentuk oleh LINPACK dan
EISPACK. Saat ini perangkat Matlab telah menggabung dengan LAPACK dan BLAS library,
yang merupakan satu kesatuan dari seni tersendiri dalam perangkat lunak untuk komputasi
matrix. Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk
memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan keilmuan.
Di industri, Matlab merupakan perangkat pilihan untuk penelitian dengan
produkifitasyang tinggi, pengembangan dan analiasanya. Fitur - fitur Matlab sudah banyak
dikembangkan, dan lebih kita kenal dengan nama toolbox. Sangat penting bagi seorang pengguna
Matlab untuk mengetahui toolbox mana yang mendukung untuk learn dan apply technology yang
4
sedang dipelajarinya. Toolbox - toolbox ini merupakan kumpulan dari fungsi - fungsi Matlab
(MFiles) yang telah dikembangkan ke suatu lingkungan kerja Matlab untuk memecahkan
masalah dalam kelas particular. Area - area yang sudah bisa dipecahkan dengan toolbox saat ini
meliputi pengolahan sinyal, system kontrol, neural networks, fuzzy logic, wavelets, dan lain -
lain.
Sistem MATLAB terdiri atas lima bagian utama :
1. Development Environment. Ini adalah kumpulan semua alat-alat dan fasiltas untuk membantu kita
dalam menggunakan fungsi dan file MATLAB. Bagian ini memuat desktop, Command window,
command history, editor and debugger, dan browser untuk melihat help, workspace, files.
2. The MATLAB Mathematical Function Library. Bagian ini adalah koleksi semua algoritma
komputasi, mulai dari fungsi sederhana seperti sum, sine, cosine sampai fungsi lebih rumit seperti,
invers matriks, nilai eigen, fungsi Bessel dan fast Fourier transform.
3. The MATLAB language. Ini adalah bahasa matriks/array level tinggi dengan control flow, fungsi,
struktur data, input/output, dan fitur objek programming lainnya.
4. Graphics. MATLAB mempunyai fasilitas untuk menampilkan vector dan matriks sebagai grafik.
Fasilitas ini mencakup visualisasi data dua / tiga dimensi, pemrosesan citra (image), animasi, dan
grafik animasi.
5. The MATLAB Application Program Interface (API). Paket ini memungkinkan kita menulis bahasa
C dan Fortran yang berinteraksi dengan MATLAB. Ia memuat fasilitas untuk pemanggilan kode-
kode dari MATLAB (dynamic linking), yang disebut MATLAB sebagai mesin penghitung, dan
untuk membaca dan menulis MAT-files.
Command Window
Kita dapat membuka MATLAB dengan mengklik icon MATLAB pada desktop
komputer atau dapat pula dengan memilih folder MATLAB pada program group. Selanjutnya
kita akan melihat tampilan yang disebut command window. Window ini memungkinkan kita
menulis perintah-perintah sederhana. Untuk menghapus perintah yang masih tersisa pada
command window, ketik clc kemudian tekan Enter. Namun perintah tersebut tetap aktif. Untuk
menonaktifkannya anda ketik clear. Untuk menjalankan komputasi sederhana, ketik perintahnya
kemudian tekan Enter.
5
Sebagai contoh :
>> s = 2 + 3
s=5
>> fun = sin(pi/4)
fun = 0.7071
Pada contoh kedua, fungsi trigonometri sinus dan bilangan p dinamai dalam
MATLAB dengan sin dan pi. Diingatkan bahwa hasil-hasil pada komputasi di atas tersimpan
dalam bentuk variabel, yang namanya dapat dipilih oleh user. Variabel-variabel ini dapat dipanggil
kembali dengan mengetik namanya kemudian tekan Enter.
Misalnya :
>> s
s=3
Penulisan variabel : Dimulai dengan letter, dapat diikuti dengan letter atau angka
atau underscore. MATLAB hanya dapat mengenal 31 karakter pertama dari nama variabel.
Mengubah format tampilan : Terdapat beberapa format tampilan bilangan pada
MATLAB. Format standard (default) adalah short ( empat digit setelah tanda decimal) . Untuk
menampilkan digit yang lebih banyak lakukan sebagai berikut :
klik File – pilih Preferences – klik Numerical Format – pilih
format yang diinginkan Kita juga dapat memilih format langsung dari command window.
Misalnya,
>> format long
>> fun
fun = 0.70710678118655
Untuk mengembalikan ke format standard, lakukan
>> format short
>> fun
fun = 0.7071
6
2. format short : fixed point with 5 digits.
3. format long : fixed point format with 15 digits.
4. format short e : floating point format with 5 digits.
5. format long e : floating point format with 15 digits.
6. format short g : best of fixed or floating point format with 5 digits.
7. format long g : best of fixed or floating point format with 15 digits.
8. format hex : hexadecimal format.
9. format + : the symbols +, - and blank are printed for
positive, negative and zero elements. Imaginary
parts are ignored.
10. format bank : fixed format for dollars and cents.
11. format rat : rational format.
Command windows juga digunakan untuk memanggil tool Matlab seperti editor,
debugger atau fungsi. Perintah dapat berupa fungsi-fungsi pengaturan file (seperti perintah
DOS/UNIX maupun fungsi-fungsi bawaan/toolbox MATLAB sendiri. Berikut ini beberapa
fungsi pengaturan file dalam MATLAB:
Dir/ls : digunakan untuk melihat isi dari sebuah direktori aktif.
Cd : digunakan untuk melakukan perpindahan dari direktori aktif.
Pwd : digunakan untuk melihat direktori yang sedang aktif
What : digunakan untuk melihat nama file m dalam direktori aktif
Who : digunakan untuk melihat variabel yang sedang aktif
Whos : digunakan untuk menampilkan nama setiap variabel
Delete : digunakan untuk menghapus file
Clear : digunakan untuk menghapus variabel
Clc : digunakan untuk membersihkan layar
Doc : digunakan untuk melihat dokumentasi The MathWorks, Inc. dalam format html secara
online.
Demo : digunakan unruk mecoba beberapa tampilan demo yang disediakan oleh Matlab
Help : digunakan untuk menampilkan fasilitas-fasilitas yang ada dalam Matlab
7
Clustering adalah suatu metode pengelompokan berdasarkan ukuran kedekatan
(kemiripan). Clustering beda dengan group, kalau group berarti kelompok yang sama,kondisinya
kalau tidak ya pasti bukan kelompoknya.Tetapi kalau cluster tidak harus sama akan tetapi
pengelompokannya berdasarkan pada kedekatan dari suatu karakteristik sample yang ada, salah
satunya dengan menggunakan rumus jarak ecluidean.Aplikasinya cluster ini sangat banyak, karena
hamper dalam mengidentifikasi permasalahan atau pengambilan keputusan selalu tidak sama
persis akan tetapi cenderung memiliki kemiripan saja. Ada beberapa algoritma clustering data.
Sekarang kita membahas tentang K-means dan Fuzzy C-Means.
8
didasarkan pada minimasi fungsi obyektif yang menggambarkan jarak dari titik data yang
diberikan kepusat cluster yang terbobot oleh derajat keanggotaan titik data tersebut. Output dari
Fuzzy C-Means merupakan deretan usat cluster dan beberapa derajat keanggotaan untuk tiap-tiap
titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy inference system.
Kelebihan dari metode fuzzy C-means adalah sederhana, mudah diimplementasikan, memiliki
kemampuan untuk mengelompokkan data yang besar, dan Running timenya linear O( linear
O(NCT).
1.3 K-Means
Algoritma K-means adalah metode clustering berbasis jarak yang membagi data kedalam
sejumlah cluster dan algoritma ini hanya bekerja pada atribut numerik. Pada dasarnya penggunaan
algoritma dalam melakukan proses clustering tergantung dari data yang ada dan konklusi yang
ingin dicapai. Algoritma k-means merupakan algoritma pengelompokan iteratif yang melakukan
partisi sel data ke dalam sejumlah K cluster yang sudah ditetapkan diawal. algoritma k-means
sederhana untuk diimplementasikan dan dijalankan, relative cepat, medah beradaptasi, umum
penggunaanya dalam praktek. K-means merupakan metode pengklasteran secara partitioning yang
memisahkan data ke dalam kelompok yang berbeda. Dengan partitioning secara iteratif, KMeans
mampu meminimalkan rata-rata jarak setiap data ke klasternya. Metode ini dikembangkan oleh
Mac Queen pada tahun 1967.
Algoritma K-Means berfungsi untuk mengelompokkan suatu obyek yang memiliki kesamaan
(proses pengelompokan biasa disebut clustering) dengan berdasar K cluster, dimana K adalah
bilangan integer positif. Langkah awal proses algoritma K-Mean yaitu menentukan pusat dari tiap
cluster yang hampir sejenis yang kemudian disebut centroid. Centroid bias ditentukan secara acak.
Lalu lakukan penghitungan jarak antara tiap cluster terhadap centroid yang ada, kemudian
kelompokkan tiap cluster berdasar jarak terdekat dari tiap obyek terhadap centroid. Kemudian
hitung kembali centroid, lakukan ini berulang-ulang sampai posisi centroid tidak berpindah lagi.
Dasar algoritma K-means adalah sebagai berikut :
a. Tentukan nilai k sebagai jumlah klaster yang ingin dibentuk.
b. Bangkitkan k centroid (titik pusat klaster) awal secara random.
c. Hitung jarak setiap data ke masing-masing centroid menggunakan rumus korelasi antar dua objek
d. Kelompokkan setiap data berdasarkan jarak terdekat antara data dengan centroidnya.
9
e. Tentukan posisi centroid baru k C ) dengan cara menghitung nilai rata-rata dari data-data yang ada
pada centroid yang sama. Dimana k n adalah jumlah dokumen dalam cluster k dan i d adalah
dokumen dalam cluster k.
f. Kembali ke langkah 3 jika posisi centroid baru dengan centroid lama tidak sama.
Matlab menyediakan fungsi khusus untuk melakukan clustering menggunakan k-means, yaitu
fungsi kmeans(). berikut sintaks pengunanya:
1. [m,C,sumd,D]=kmeans(X,k)
2. [m,C,sumd,D]=kmeans(…,’distance’,val)
sintaks pertama merupakan sintaks dasar, sedangkan sintax kedua digunakan untuk mlengkapi
sintaks pertama untuk parameter ’distance’. penjelasan parameter yang digunakan sebagai berikut:
Parameter Keterangan
X Matriks set data Nxr. N adalah jumlah data sedangkan r adalah jumlah fitur
k Nilai yang menyatakan jumlah cluster
m Matriks Nx1 yang menyatakan index cluster (ID cluster) yang diikuti setiap data
nilai di dalamnya mulai 1 sampai k. N adalah jumlah data.
C Matriks kxr yang menyatakan lokasi centroid setiap cluster. k adalah jumlah
cluster sedangkan r adalah jumlah fitur
Sumd Matriks 1xk yang menyatakan jumlah jarak semua data yang terhubung dalam
setiap cluster
D Matriks Nxk yang menyatakan jarak dari setiap data ke centroid cluster. N adalah
jumlah data, sedangkan k adalah jumlah cluster
val Nilai untuk parameter ’distance’. Pilihan nilainya
‘sqEuclidean’, untuk jarak Euclidean kuadrat, nilai default yang digunakan.
‘cityblock, untuk Manhattan(Block City)
‘Hamming’, untuk jarak hamming(persentase perbedaan bit), hanya cocok untuk
data biner.
Kelebihan K-Means
1. Selalu konvergen atau mampu melakukan klusterisasi
2. Tidak membutuhkan operasi matematis yang rumit, bisa dibilang operasinyasederhana
10
3. Beban komputasi relatif lebih ringan sehingga klusterisasi bisa dilakukandengan cepat walaupun
relatif tergantung pada banyak jumlah data dan jumlahkluster yang ingin dicapai-
Kekurangan K-Means
1. Jumlah kluster harus ditentukan
2. Nilai centroids yang diberikan di awal bisa mempengaruhi hasil klusterisasiapabila nilainya
berbeda (sensitif terhadap nilaicentroids awal)
3. Solusi kluster yang dihasilkan hanya bersifat local optima sehingga kita tidak tahu apakah itu
sudah merupakan konfigurasi optimal atau belum
4. Sangat sensitif pada pembangkitan titik pusat awal secara random.
5. Memungkinkan suatu gerombol tidak mempunyai anggota.
6. Hasil pengelompokan bersifat tidak unik (selalu berubah-ubah) terkadang bagus terkadang tidak.
7. Sangat sulit mencapai global optimum.
8. Algoritma k-means clustering walaupun proses pengerjaannya cepat tetapi keakuratannya tidak
dijamin.
9. Operasi matematis nya sangat sederhana
11
BAB 2
KONSEP/TEORI MATEMATIS
Matriks partisi pada fuzzy clustering harus memenuhi kondisi sebagai berikut:
μik = [0,1]; (1 ≤ 𝑖 ≤ 𝑐; 1 ≤ 𝑘 ≤ 𝑛
12
𝜂
∑ μik = 1; 1 ≤ i ≤ c
𝔦=1
0 < ∑ μik = 1; 1 ≤ i ≤ c
𝔦=1
Q j = ∑(μik )
𝔦=1
μik
μik =
Qj
∑nk=1((μik )m ∗ Xkj )
Vij =
∑nk=1(μik )m
v11 ⋯ v1𝑚
𝑉= [ ⋮ ⋱ ⋮ ]
v𝑐1 ⋯ v𝑐𝑚
e. Hitung fungsi objektif pada iterasi ke-t, Pt dengan menggunakan persamaan sebagai
berikut:
𝑛 c 𝑚
13
−1
[∑𝑝𝑗=1(𝑋𝑘𝑗 − 𝑉𝑖𝑗 )2 ]𝑝−1
μik = −1
∑𝑐𝑖=1 [∑𝑝𝑗=1(𝑋𝑘𝑗 − 𝑉𝑖𝑗 2
) ]
𝑝−1
dimana:
𝐷 (𝑖, 𝑗) = Jarak data ke 𝑖 ke pusat cluster 𝑗
𝑋𝑘𝑖 = Data ke 𝑖 pada atribut data ke 𝑘
𝑋𝑘𝑗 = Titik pusat ke 𝑗 pada atribut ke 𝑘
c. Data ditempatkan dalam cluster yang terdekat, dihitung dari tengah cluster.
d. Pusat cluster baru akan ditentukan bila semua data telah ditetapkan dalam cluster
terdekat.
e. Proses penentuan pusat cluster dan penempatan data dalam cluster diulangi sampai
nilai centroid tidak berubah lagi.
14
BAB 3
SIMULASI DATA
load fcmdata.dat
[centers,U] = fcm(fcmdata,2);
maxU = max(U);
index1 = find(U(1,:) == maxU);
index2 = find(U(2,:) == maxU);
plot(fcmdata(index1,1),fcmdata(index1,2),'ob')
hold on
plot(fcmdata(index2,1),fcmdata(index2,2),'or')
plot(centers(1,1),centers(1,2),'xb','MarkerSize',15,'LineWidth',3)
plot(centers(2,1),centers(2,2),'xr','MarkerSize',15,'LineWidth',3)
hold off
15
3.2 K-Means
clc;
clear all;
close all;
randnumb = 100;
M = zeros(randnumb,2);
label = zeros(randnumb,1);
for a=1:randnumb
M(a,1) = unidrnd(randnumb);
M(a,2) = unidrnd(randnumb);
end
c1 = [unidrnd(randnumb) unidrnd(randnumb)];
c2 = [unidrnd(randnumb) unidrnd(randnumb)];
c1_temp = -ones(1,2);
c2_temp = -ones(1,2);
iterasi = 0;
while((c1(1,1)~=c1_temp(1,1)) && (c1(1,2)~=c1_temp(1,2)) && (c2(1,1)~=c2_temp(1,1))
&& (c2(1,2)~=c2_temp(1,2)))
iterasi = iterasi+1;
jum_c1 = 0;
jum_c2 = 0;
for a=1:randnumb
x = M(a,1);
y = M(a,2);
c1x = c1(1,1);
c1y = c1(1,2);
c2x = c2(1,1);
c2y = c2(1,2);
16
jx_c1 = 0;
jy_c1 = 0;
jx_c2 = 0;
jy_c2 = 0;
for a=1:randnumb
if(label(a,1)==1)
jx_c1 = jx_c1 + M(a,1);
jy_c1 = jy_c1 + M(a,2);
else
jx_c2 = jx_c2 + M(a,1);
jy_c2 = jy_c2 + M(a,2);
end
end
rx_c1 = jx_c1/jum_c1;
ry_c1 = jy_c1/jum_c1;
rx_c2 = jx_c2/jum_c2;
ry_c2 = jy_c2/jum_c2;
c1_temp(1,1) = c1(1,1);
c1_temp(1,2) = c1(1,2);
c2_temp(1,1) = c2(1,1);
c2_temp(1,2) = c2(1,2);
c1(1,1) = round(rx_c1);
c1(1,2) = round(ry_c1);
c2(1,1) = round(rx_c2);
c2(1,2) = round(ry_c2);
disp('Iterasi ke');
disp(iterasi);
end
disp('Jumlah data biru');
disp(jum_c1);
disp('Jumlah data merah');
disp(jum_c2);
plot(c1(:,1),c1(:,2),'xb','MarkerSize',15,'LineWidth',3); hold on
plot(c2(:,1),c2(:,2),'xr','Markersize',15,'LineWidth',3); hold on
grid on
17
18
BAB 4
PENUTUP
4.1 Kesimpulan
1. K-Means dan Fuzzy C-Means (FCM) merupakan metode clustering data yang digolongkan
sebagai metode pengklasifikasian yang bersifat unsupervised (tanpa arahan).
2. Pengalokasian ulang data ke dalam masing-masing cluster, metode K-Means menggunakan
metode yang bersifat tegas (hard) sedangkan untuk metode FCM memanfaatkan teori fuzzy.
3. Pada metode FCM kemungkinan kegagalan konvergen lebih kecil dibandingkan metode K-
Means.
19
DAFTAR PUSTAKA
http://mtkmudahbanar.blogspot.com/2016/08/metode-clustering-k-means-dan-fuzzy-c.html
https://www.scribd.com/doc/126338813/Pengantar-Matlab
https://ilmukomputer.org/wp-content/uploads/2018/05/agus-k-means-clustering.pdf
http://etheses.uin-malang.ac.id/6372/1/06510032.pdf
20