TUGAS AKHIR CI1599 KLASTERISASI PADA SUBRUANG DENGAN ALGORITMA PEMBOBOTAN ENTROPI PADA K-MEANS PADA SPARSE DATA BERDIMENSI TINGGI AHMAD DENI DWI PRANOTO NRP 5103 100 015 Dosen Pembimbing I Rully Soelaiman, S.Kom., M.Kom. Dosen Pembimbing II Mediana Aryuni, S.Kom., M.Kom. JURUSAN TEKNIK INFORMATIKA Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2009
HALAMAN JUDUL TUGAS AKHIR CI1599 KLASTERISASI PADA SUBRUANG DENGAN ALGORITMA PEMBOBOTAN ENTROPI PADA K-MEANS PADA SPARSE DATA BERDIMENSI TINGGI AHMAD DENI DWI PRANOTO NRP 5103 100 015 Dosen Pembimbing I Rully Soelaiman, S.Kom., M.Kom. Dosen Pembimbing II Mediana Aryuni, S.Kom., M.Kom. JURUSAN TEKNIK INFORMATIKA Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2009
FINAL PROJECT - CI1599 AN ENTROPY WEIGHTING K-MEANS ALGORITHM FOR SUBSPACE CLUSTERING OF HIGH-DIMENSIONAL SPARSE DATA AHMAD DENI DWI PRANOTO NRP 5103 100 015 First Advisor Rully Soelaiman, S.Kom., M.Kom. Second Advisor Mediana Aryuni, S.Kom., M.Kom. DEPARTMENT OF INFORMATICS Faculty of Information Technology Institut Teknologi Sepuluh Nopember Surabaya 2009
KLASTERISASI PADA SUBRUANG DENGAN ALGORITMA PEMBOBOTAN ENTROPI PADA K-MEANS PADA SPARSE DATA BERDIMENSI TINGGI HALAMAN PENGESAHAN TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer pada Bidang Studi Sistem Bisnis Cerdas Program Studi S-1 Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Oleh: AHMAD DENI DWI PRANOTO Nrp. 5103 100 015 Disetujui oleh Tim Pembimbing Tugas Akhir: 1. Rully Soelaiman, S.Kom., M.Kom...( Pembimbing 1) 2. Mediana Aryuni, S.Kom., M.Kom...( Pembimbing 2) SURABAYA, JULI 2009 HALAMAN PENGESAHAN
KLASTERISASI PADA SUBRUANG DENGAN ALGORITMA PEMBOBOTAN ENTROPI PADA K-MEANS PADA SPARSE DATA BERDIMENSI TINGGI Nama Mahasiswa : Ahmad Deni Dwi Pranoto NRP : 5103 100 015 Jurusan : Teknik Informatika FTIF-ITS Dosen Pembimbing I : Rully Soelaiman, S.Kom., M.Kom. Dosen Pembimbing II : Mediana Aryuni, S. Kom., M.Kom. ABSTRAKSI Pembentukan klaster pada data berdimensi tinggi seringkali berada dalam subruang daripada diseluruh ruang. Sebagai contoh adalah klasterisasi pada data text, klaster-klaster dari dokumen dari topik yang berbeda dikategorikan dalam subset term atau kata kunci. Kata kunci untuk suatu klaster mungkin tidak akan muncul dalam dokumen klaster yang lain, hal ini merupakan permasalahan data sparsity yang dihadapi pada klasterisasi subruang dalam data berdimensi tinggi. Algoritma baru ini mengembangkan proses k-means untuk menghitung bobot masing-masing dimensi dalam klaster dan menggunakan bobot tersebut untuk mengidentifikasi subset dari dimensi yang penting yang mengkategorikan klaster yang berbeda. Hal ini didapatkan dengan memberikan nilai bobot entropi pada obyektif fungsi yang meminimalisasi proses klasterisasi pada k-means. Langkah penyelesaian ditambahkan terhadap k-means untuk menghitung secara otomatis bobot semua dimensi dalam klaster. Uji coba dalam bentuk sintetis data dan real data menunjukan bahwa algoritma baru dapat memberikan hasil klasterisasi yang lebih bagus jika dibandingkan dengan PROCLUS. Algoritma baru ini juga berskala terhadap datasetdataset yang besar. Kata Kunci : penggalian data,variabel pembobot, Klasterisasi Pada Subruang, data berdimensi tinggi i
AN ENTROPY WEIGHTING K-MEANS ALGORITHM FOR SUBSPACE CLUSTERING OF HIGH-DIMENSIONAL SPARSE DATA Student s Name : Ahmad Deni Dwi Pranoto Student s Number : 5103 100 015 Major of Department : Informatics FTIF-ITS First Advisor : Rully Soelaiman, S.Kom., M.Kom. Second Advisor : Mediana Aryuni, S. Kom., M.Kom. ABSTRACT Clustering in high-dimensional data often exist in subspaces rather than in the entrire space. For example, in text clustering, cluster of documents of different topics are categorized by different subset of terms or keywords. The keywords for one cluster may not occur in the documents other clusters, this is data sparsity problem faced in clustering highdimensional data. This new Algorithm extend the k-means process clustering to calculate a weight for each dimension in each cluster dan use the weight values to identify the subset of important dimensions that categorize different cluster. This is achieved by including the weight entropy in the objective function that is minimized in the k-means clustering process. An additional step is added to the k-means clustering porcess to automatically compute the weight of all dimension in each cluster. The experiments on both synthetic data and real data have shown that the new algorithm can generate better clustering results than PROCLUS. The new algorithm is also scalable to large data sets. Key words : data mining, variabel weighting, Subspace Clustering, highdimensional data iii
KATA PENGANTAR Bismillahirrahmanirrahim, Syukur Alhamdulillah tak lupa penulis ucapkan kepada Allah Yang Maha Besar atas segala kasih sayang dan karunianya yang telah diberikan sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul : KLASTERISASI PADA SUBRUANG DENGAN ALGORITMA PEMBOBOTAN ENTROPI PADA K- MEANS PADA SPARSE DATA BERDIMENSI TINGGI Penulis juga turut berterima kasih yang sebanyak-banyaknya atas segala bantuan dari berbagai pihak selama pengerjaan Tugas Akhir ini, khususnya kepada: 1. Ibu dan Bapak yang selalu memberi semangat dan mengirimkan doa dari rumah, beserta Mas Habib, mbak Yeni dan Dik Lia yang selalu mendukung 2. Bapak Rully Soelaiman, S.Kom, M.Kom, selaku pembimbing 1 atas segala bimbingan, motivasi serta kesempatan yang telah diberikan sehingga Tugas Akhir ini dapat terselesaikan dengan baik dan tepat pada waktunya 3. Ibu Mediana Aryuni, S.Kom, M.Kom, yang pernah memberikan pengarahan kepada penulis. 4. Segenap Dosen serta Karyawan Teknik Informatika ITS Surabaya 5. Keluarga keduaku TC 2003, serta keluarga besar HMTC. 6. Teman LAB IBS, NCC, AJK dan RPL yang telah membantu kelancaran penyelesaian Tugas Akhir Ini 7. Mas, mbak serta adek yang lucu-lucu yang selalu memberi motivasi, inspirasi, dan bantuan baik doa maupun materil 8. Serta pihak lainnya yang mungkin tidak dapat tersebutkan disini v
Penulis juga memohon maaf yang sebesar-besarnya apabila dalam pengerjaan Tugas Akhir ini masih terdapat banyak kekurangan dan kesalahan, oleh karena itu penulis sangat berharap agar segala pertanyaan, kritik dan saran tentang Tugas Akhir ini dapat dikirimkan melalui email ke aa_deni_dp@yahoo.co.id atau ahmad_deni@webmail.cs.its.ac.id. Akhir kata, penulis hanya bisa berharap semoga Tugas Akhir ini dapat memberikan manfaat untuk kita semua, terutama untuk diri penulis sendiri, bangsa serta almamater. Surabaya, Juli 2009 Penulis vi
DAFTAR ISI KATA PENGANTAR... v DAFTAR ISI... vii DAFTAR GAMBAR... ix DAFTAR TABEL... xiii BAB 1 PENDAHULUAN... 1 1.1 LATAR BELAKANG... 1 1.2 TUJUAN PEMBUATAN TUGAS AKHIR... 2 1.3 PERUMUSAN MASALAH... 2 1.4 BATASAN MASALAH... 2 1.5 METODOLOGI PERANCANGAN... 3 1.6 SISTEMATIKA PENULISAN... 4 BAB 2 TINJAUAN PUSTAKA... 7 2.1 DASAR PENGGALIAN DATA... 7 2.2 DASAR PEMBENTUKAN KLASTER... 11 2.3 KLASTERISASI PADA SUBRUANG... 13 2.3.1 Feature Transformation... 15 2.3.2 Feature Selection... 15 2.4 METODE PEMBENTUKAN KLASTER PADA SUBRUANG... 16 2.4.1 Hard subspace Clustering... 17 2.4.2 Soft Subspace Clustering... 18 BAB 3 ALGORITMA PEMBENTUKAN KLASTER PEMBOBOTAN ENTROPI K-MEANS... 19 3.1 PEMBOBOTAN ENTROPI K-MEANS... 19 3.2 ALGORITMA EWKM... 20 3.3 PARSIAL SOLUSI ALGORITMA EWKM... 24 3.3.1 Update Partisi Matrik... 24 3.3.2 Update Pusat Klaster... 27 3.3.3 Update Bobot dimensi... 29 BAB 4 DESAIN DAN IMPLEMENTASI PERANGKAT LUNAK.. 33 vii
4.1 DESAIN PERANGKAT LUNAK... 33 4.1.1 Perancangan Data... 33 4.1.2 Diagram Alir Aplikasi... 35 4.2 IMPLEMENTASI PERANGKAT LUNAK... 41 4.2.1 Lingkungan Implementasi Perangkat Lunak... 41 4.2.2 Kelompok Kelas yang Dibutuhkan... 41 BAB 5 UJI COBA PERANGKAT LUNAK... 75 5.1 LINGKUNGAN UJI COBA... 75 5.2 PENGUJIAN DATA SINTETIS... 76 5.2.1 Data yang Digunakan... 76 5.2.2 Hasil Pengujian... 76 5.3 PENGUJIAN DATA ASLI... 82 5.3.1 Data yang Digunakan... 82 5.3.2 Hasil Pengujian... 83 BAB 6 PENUTUP... 87 6.1 KESIMPULAN... 87 6.2 SARAN... 87 DAFTAR PUSTAKA... 89 LAMPIRAN... 91 BIODATA PENULIS... 109 viii
DAFTAR GAMBAR Gambar 2-1. Tahapan Data Mining... 7 Gambar 2-2. Klaster pada Data R2... 12 Gambar 2-3. Dimensionality pada data set... 14 Gambar 2-4. klasterisasi dengan subset... 17 Gambar 3-1. fungsi baru K-Means dengan pembobotan entropi... 20 Gambar 3-2. algoritma entropy weighting k-means... 23 Gambar 3-3. Proses identifikasi obyek dalam klaster... 25 Gambar 3-4. pseudo code update partisi matrik... 27 Gambar 3-5. Proses update pusat klaster... 28 Gambar 3-6. pseudo code update pusat klaster... 29 Gambar 3-7. Proses update bobot dimensi... 30 Gambar 3-8. pseudo code update bobot dimensi... 32 Gambar 4-1. Dataset Input... 34 Gambar 4-2. Diagram Global Alir Aplikasi... 36 Gambar 4-3. Diagram Alir Algoritma Pembobotan Entropi k-means... 37 Gambar 4-4. Diagram Alir Parsial solusi Partisi Matriks... 38 Gambar 4-5. Diagram Alir Parsial solusi Pusat Klaster... 39 Gambar 4-6. Diagram Alir Parsial solusi Bobot Dimensi... 40 Gambar 4-7. Inisialisasi variabel kelas InformationData... 43 Gambar 4-8. Metode setdatainformation... 43 Gambar 4-9. Metode getvaluedatainformation... 43 Gambar 4-10. Metode getdatainformation... 43 Gambar 4-11. Metode getnumberdata... 43 Gambar 4-12. Metode getnumberdimension... 43 Gambar 4-13. Metode setclassname... 44 Gambar 4-14. Metode getclassname... 44 Gambar 4-15. Metode getnumberclass... 44 Gambar 4-16. Metode setvectorname... 45 Gambar 4-17. Metode getvectorname... 45 Gambar 4-18. Inisialisasi Kelas PartitionMatriks... 45 Gambar 4-19. Metode setinitialpartitionmatrix... 46 Gambar 4-20. Metode updatepartitionmatrix... 46 Gambar 4-21. Metode getvaluepartitionmatrix... 47 Gambar 4-22. Metode getinitialpartitionmatriks... 47 Gambar 4-23. Metode getpartitionmatriks... 47 ix
Gambar 4-24. Metode setinitialclustercenter... 48 Gambar 4-25. Metode updateclustercenter... 49 Gambar 4-26. Metode getvalueclustercenter... 49 Gambar 4-27. Metode getclustercenter... 49 Gambar 4-28. Inisialisasi Kelas DimensionWeight... 50 Gambar 4-29. Metode setinitialdimensionweight... 50 Gambar 4-30. Metode updatedimensionweight... 51 Gambar 4-31. Metode getdimensionweight... 51 Gambar 4-32. Metode getdispobj2clust... 52 Gambar 4-33. Metode getdisponupdpm... 52 Gambar 4-34. Metode getdisponupddw... 53 Gambar 4-35. Metode getaccuration... 53 Gambar 4-36.Lanjutan Metode getaccuration... 54 Gambar 4-37. Format Data Input dengan Tanda Koma... 54 Gambar 4-38. Inisialisasi... 55 Gambar 4-39. Metode openfile... 55 Gambar 4-40. Metode readfile... 56 Gambar 4-41. Lanjutan Metode readfile... 57 Gambar 4-42. Metode getminmax... 58 Gambar 4-43. Data Hasil Normalisasi... 59 Gambar 4-44. Metode getminmaxnorm... 59 Gambar 4-45. Metode getminmaxnorm... 60 Gambar 4-46. Diagram alir synthetic data... 62 Gambar 4-47. Metode getgeneraterndnumdim... 63 Gambar 4-48. Metode getgeneraterelvdimension... 64 Gambar 4-49. Lanjutan Metode getgeneraterelvdimension... 65 Gambar 4-50. Lanjutan Metode getgeneraterelvdimension... 66 Gambar 4-51. Metode getgenerateindex... 67 Gambar 4-52. Metode getgeneratevariance... 68 Gambar 4-53. Metode getgeneratemeans... 69 Gambar 4-54. Lanjutan Metode getgeneratemeans... 70 Gambar 4-55. Metode getgeneratenumpointcluster... 71 Gambar 4-56. Metode getgeneratedatapoint... 71 Gambar 4-57. Lanjutan Metode getgeneratedatapoint... 72 Gambar 4-58. Lanjutan Metode getgeneratedatapoint... 73 Gambar 5-1. Aasil Akurasi (data 16 dimensi)... 78 Gambar 5-2. Hasil Akurasi (data 20 dimensi)... 80 Gambar 5-3. Hasil Akurasi (data 24 dimensi)... 80 Gambar 5-4. Uji Akurasi pada Peningkatan Attribut... 81 x
Gambar 5-5. Uji Akurasi pada 210 data... 83 Gambar 5-6. Uji Waktu pada 210 data... 84 Gambar 5-7. Uji Akurasi pada 2100 data... 85 Gambar 5-8. Uji Waktu pada 2100 data... 85 Gambar 5-9. Uji Rata-rata Akurasi pada Data Segmentasi... 86 xi
DAFTAR TABEL Tabel 3-1. Parsial Solusi Partisi Matrik... 25 Tabel 3-2. lanjutan Parsial Solusi Partisi Matrik... 26 Tabel 3-3. Parsial Solusi Update Pusat Klaster... 28 Tabel 3-4. Lanjutan Parsial Solusi Update Pusat Klaster... 29 Tabel 3-5. Parsial Solusi Update Pusat Klaster... 31 Tabel 4-1. Lingkungan Perangkat Keras.... 41 Tabel 4-2. Lingkungan Perangkat Lunak... 41 Tabel 4-3. Parameter untuk generate sintetic data... 61 Tabel 5-1. Lingkungan Perangkat Keras Uji Coba... 75 Tabel 5-2. Lingkungan Perangkat Lunak Uji Coba... 75 Tabel 5-3. Spesifikasi Input Parameter Data Sintetis... 76 Tabel 5-4. Confusion Matrik EWKM untuk Uji Akurasi Data Sintetis... 77 Tabel 5-5. Spesifikasi Parameter Input Algoritma... 78 Tabel 5-6. Spesifikasi Parameter Input (Data 20 dimensi)... 79 Tabel 5-7. Spesifikasi Parameter Input (Data 24 dimensi)... 79 Tabel 5-8. Spesifikasi Data Segmentasi Citra dan parameter uji... 82 Tabel 5-9. Spesifikasi Data Segmentasi Citra... 83