Hai khalayak ramai, pada kesempatan kali ini aku mau ngasik tutorial yang berkaitan dengan data mining. Apa sih itu data mining?? Data mining adalah suatu proses menemukan knowledge atau informasi dari data yang berjumlah besar, di mana knowledge nya itu menarik, tidak sepele, implisit, tidak diketahui sebelumnya, dan berguna. knowledge yang disajikan haruslah mudah dipahami, berlaku untuk data yang akan diprediksi dengan derajat kepastian tertentu, berguna, dan baru. Yak itulah sekilas tentang data mining. Pada tutorial ini aku mau me mining data dari data set yang disediakan oleh UCI yaitu data Statlog (Heart), ini link download datanya (klik gambar) Data ini berisi 13 atribut, yaitu Attribute Information: ------------------------ -- 1. age -- 2. sex -- 3. chest pain type (4 values) -- 4. resting blood pressure -- 5. serum cholestoral in mg/dl -- 6. fasting blood sugar > 120 mg/dl -- 7. resting electrocardiographic results (values 0,1,2) -- 8. maximum heart rate achieved -- 9. exercise induced angina -- 10. oldpeak = ST depression induced by exercise relative to rest -- 11. the slope of the peak exercise ST segment -- 12. number of major vessels (0-3) colored by flourosopy -- 13. thal: 3 = normal; 6 = fixed defect; 7 = reversable defect Dengan tipe atribut, yaitu Real: 1,4,5,8,10,12 Ordered:11, Binary: 2,6,9 Nominal:7,3,13
Serta Kelas label yang berisi Absence (1) or presence (2) of heart disease. Berdasarkan 13 atribut yang ada di atas kelas label ini akan menghasilkan kelompok data yang terdiri dari 2, yaitu ada atau tidak adanya penyakit jantung. Dilihat dari data set tersebut, maka digunakan metode data mining yang paling tepat, yaitu klasifikasi. Apa sih klasifikasi itu?? Dalam data mining klasifikasi termasuk dalam metode prediksi, yaitu metode yang menggunakan beberapa variabel untuk memprediksi nilai yang belum diketahui (unknown ) atau nilai selanjutnya (future) dari variabel lain. Dalam klasifikasi: Terdapat sejumlah record/data yang disebut (training set ), yaitu record yang terdiri dari sejumlah atribut dan salah satunya merupakan atribut kelas /label. Dengan training set itu kita dapat mencari model untuk atribut kelas sebagai fungsi nilai dari atribut lain. Tujuannya adalah dengan model itu kita dapat melabeli seakurat mungkin record/data yang belum diketahui kelasnya. Untuk mengetahui dan menentukan tingkat akurasi model maka digunakan yang namanya test set, yaitu beberapa data yang digunakan untuk menguji model yang telah dibuat. Jadi dalam klasifikasi biasanya dataset akan dibagi menjadi dua bagian yang pertama untuk pembangunan model (training set) dan yang kedua sebagai data untuk memvalidasi model (test set). Sehingga didapat 2 langkah besar untuk melakukan klasifikasi: 1. Pembangunan Model: dengan mendeskripsikan kelas yang sudah ditentukan sebelumnya. Tiap tuple/sample diasumsikan termasuk dalam salah satu kelas yang ditunjukkan oleh atribut kelas. Tuple atau record yang digunakan untuk pembangunan model disebut sebagai training set. Model yang dihasilkan bisa berupa: rule klasifikasi, decision trees, atau rumus matematika. 2. Penggunaan Model: untuk mengklasifikasikan objek yg selanjutnya atau yg belum diketahui kelasnya Perhitungan akurasi model Label test set yang sebenarnya akan dibandingkan dengan hasil pelabelan test set dari penggunaan model. Tingkat akurasi adalah persentase test set yang terklasifikasi dengan benar oleh model. Test set independen terhadap training set, jika tidak maka kondisi over-fitting akan terjadi.
Jika akurasi dapat diterima, maka model bisa digunakan untuk mengklasifikasikan data yang labelnya belum diketahui. Nah itulah klasifikasi. Sekarang data set yang kita dapat sudah ada atribut dan kelas labelnya, hanya saja kita tidak mendapat data yang hanya berisi atribut tanpa kelas label untuk menguji model dari klasifikasi yang kita dapat nanti. Jadi di sini aku membagi data set Statlog (Heart) menjadi dua yaitu data dari yang pertama sampai yang terakhir sebanyak 65% sebagai training set dan sisanya sampai yang paling akhir yaitu 35% sebagai test set. Untuk melakukan klasifikasi ini aku gunain aplikasi WEKA. Link ada di gambar Sedangkan teknik klasifikasinya aku pilih Naïve Bayes dan Decision Tree. Nanti kita akan membandingkan hasil dari penggunaan dua teknik tersebut. Oke langsung saja kita mulai langkah pengerjaannya. 1. Menyiapkan Data Data set yang disediakan di UCI belum berbentuk tabel, oleh sebab itu kita harus copy paste datanya ke excel, lalu membuatnya menjadi tabel dan memberikan nama kolomkolom sesuai atributnya. Pertama kita download dulu datanya, pada halaman web klik link data folder
Pilih heart.dat Maka akan muncul datanya
Copy paste data tersebut pada notepad++, lalu ubah spasi menjadi ; dan. menjadi,.
Klik replace all, lalu simpan file tersebut dalam format csv
Misalnya di sini aku bikin nama statlog_heart.csv, buka file csv ini dengan excel lalu beri nama kolom Umur Kelamin Tipe Nyeri Tekanan Darah Kolesterol Serum Gula Darah elektrokardiografi Detak Jantung Maximal Angina Oldpeak Kemiringan Segmen flourosopy Kondisi Penyakit Jantung Kelas label diberi nama kolom penyakit jantung ubah 1 menjadi tidak ada dan 2 menjadi ada seperti gambar di bawah ini
Simpan data tersebut tetap dalam format csv. Buka lagi file csv tersebut dengan notepad++ ubah kembali, menjadi. Dan ; menjadi, agar nantinya csv tersebut dapat dibuka dengan weka.
Simpan data dengan nama statlog_heart - Copy.csv 2. Menyiapkan Attribut Data Pada Weka Buka file statlog_heart - Copy.csv pada weka. Pertama buka weka lalu klik explorer Maka akan muncul tampilan seperti ini, klik open file, pilih tipe file csv, cari file statlog_heart - Copy.csv, klik open.
Defaultnya weka akan mengkategorikan tipe attribut yang angka dengan numeric. Tetapi dari tipe attribut data set kita tadi di atas ada tipe nominal dan binary, maka kita ubah dulu kolom dengan tipe attribut tersebut. Pada weka ada fungsi filter klik choose Pilih seperti gambar di atas lalu cari numerictobinary Klik 2x pada numerictobinary
Pada attributeindices masukkan nomor attribut yang akan dirubah yaitu 2,6,9 klik ok, lalu klik apply. Maka attribut 2,6,9 berubah jadi binary seperti ini Ulangi pilih filter, kali ini pilih numerictonominal
Pilih attribut 7, 3, 13 klik ok, klik apply. Maka berubahlah attributnya menjadi nominal seperti ini
Sedangkan pada attribut real dan ordered tetap saja dibiarkan numeric. Attribut real pada weka memang disebutnya numeric, sedangkan attribut ordinal weka ga support jadi tetap saja biarkan numeric karena kita perlu bobotnya, kalo diubah jadi nominal attribut ordinal ini urutannya nanti jadi hilang. 3. Melakukan klasifikasi Pada klasifikasi ini kita akan menggunakan teknik Naïve Bayes dan Decision Tree. Sebelum kita menggunakan kedua teknik itu, aku mau jelasin dulu apa sih Naïve Bayes dan Decision Tree itu?? Pertama Naïve Bayes, Klasifikasi Naive bayes adalah suatu klasifikasi dengan peluang sederhana berdasarkan aplikasi teorema Bayes dengan asumsi antar variabel penjelas saling bebas (independen). Jadi diasumsikan bahwa kehadiran atau ketiadaan suatu kejadian tertentu dari suatu kelompok tidak ada hubungannya dengan kehadiran atau ketiadaan dari kejadian lainnya. Klasifikasi Naive Bayes memiliki beberapa kelebihan dan kekurangan yaitu sebagai berikut : Kelebihan Naive Bayes : Menangani kuantitatif dan data diskrit Kokoh untuk titik noise yang diisolasi, misalkan titik yang dirata ratakan ketika mengestimasi peluang bersyarat data. Hanya memerlukan sejumlah kecil training set untuk mengestimasi parameter (rata rata dan variansi dari variabel) yang dibutuhkan untuk klasifikasi. Menangani missing value dengan mengabaikan instansi selama perhitungan estimasi peluang Cepat dan efisiensi ruang Kokoh terhadap atribut yang tidak relevan Kekurangan Naive Bayes : Tidak berlaku jika probabilitas kondisionalnya adalah nol, apabila nol maka probabilitas prediksi akan bernilai nol juga Mengasumsikan variabel bebas Selanjutnya Decision tree Decision tree adalah salah satu metode klasifikasi yang mudah untuk diinterpretasi oleh manusia. Decision tree adalah model prediksi menggunakan struktur pohon atau struktur
berhirarki. Konsep dari decision tree ialah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan decision tree yaitu kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih simpel sehingga pengambil keputusan akan lebih mudah menginterpretasikan solusi dari permasalahan. Kelebihan decision tree: Daerah pengambilan keputusan yang sebelumnya kompleks, diubah menjadi lebih simpel dan spesifik. Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena sample diuji hanya berdasarkan kriteria atau kelas tertentu. Fleksibel untuk memilih features dari internal nodes yang berbeda, feature yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Sehingga meningkatkan kualitas keputusan yang dihasilkan. Dalam analisis multivariat, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode decision tree dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan. Kekurangan decision tree: Terjadi overlap terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memory yang diperlukan. Pengakumulasian jumlah error dari setiap level dalam sebuah pohon keputusan yang besar. Kesulitan dalam mendesain decision tree yang optimal. Hasil kualitas keputusan yang didapatkan dari metode decision tree sangat tergantung pada bagaimana pohon tersebut didesain.
Itulah sekilas tentang Naïve Bayes dan Decision Tree serta kelebihan dan kekurangan masing-masing, kuy kembali ke weka. Sesuai kesepakatan tadi, dengan menggunakan kedua teknik ini kita akan menggunakan 65% dari data set sebagai training set dan sisanya 35% sebagai test set. Dimulai dari Naïve Bayes, pada weka klik tab classify, pada fungsi classifier pilih NaïveBayes setelah itu pilih percentage split 65%, artinya 65% dari datanya menjadi training set dan sisanya yang tentunya 35% menjadi test set.
Klik start Melalui hasil test set model yang didapat dari klasifikasi naive bayes bisa dilihat bahwa teknik ini dapat menebak lebih baik yang tidak ada penyakit jantung dibandingkan yang
ada penyakit jantung. Di mana yang tidak ada penyakit jantung dapat ditebak dengan benar sejumlah 40 dan salah sejumlah 5. Sedangkan yang ada penyakit jantung dapat ditebak dengan benar hanya sejumlah 38 dan salah sejumlah 11. Dengan tingkat keberhasilan sekitar 83% dan error sekitar 17%. Serta model yang didapat sebagai berikut
Pada model, data numeric pengelompokannya dibedakan berdasarkan rata-rata (mean), standar deviasi, jumlah, dan presisi, sedangkan data nominal dan binary dibedakan berdasarkan jumlah saja. Selanjutnya menggunakan decision tree, langkahnya sama seperti tadi menggunakan fungsi classifier, tapi kali ini pilih tree, karena yang mau kita pake decision tree, pilih J48 yang mengimplementasikan algoritma C4.5, yaitu algoritma yang dasarnya adalah pembentukan pohon keputusan (decision tree). Percentage split masih tetap sama 65% yaitu sebagai training set dan sisanya yang pasti 35% sebagai test set, lalu klik start
Maka didapat hasilnya seperti ini Hasil test set gunain model yang didapat dari klasifikasi decision tree dapat menebak dengan sangat baik tidak ada penyakit jantung dengan jumlah benar sebanyak 43 dan
salah sebanyak 2, tapi sangat buruk dalam menebak ada penyakit jantung dengan jumlah benar sebanyak 29 dan salah sebanyak 20. Dengan tingkat keberhasilan sekitar 77% dan error sekitar 23%. Serta model yang didapat sebagai berikut
Model di atas dapat dibaca misalnya row data yang kolom kondisi =6 dan kolom flourosopy isinya > 0 maka termasuk dalam kelompok (kelas) ada penyakit jantung, sedangkan dalam kondisi yang sama =6 dan flourosopy isinya <= 0 maka termasuk dalam kelompok (kelas) tidak ada penyakit jantung. Untuk lebih jelasnya kita bisa membuat pohon keputusan dengan klik kanan, lalu pilih visualize tree
Tapi karena ukuran tree nya besar yaitu 43 sehingga leaves nya banyak 25, maka weka mengenerate tree nya jadi mepet-mepet sehingga ga begitu jelas.
Oleh sebab itu kita maximize, lalu klik kanan, pilih fit to screen Jadinya seperti ini
Atau kalo mau lebih jelas lagi klik kanan pilih auto scale Nanti jadi nya seperti ini, karena tree nya cukup besar jadi harus geser-geser buat liat keseluruhan
4. Kesimpulan Jadi kesimpulannya berdasarkan klasifikasi yang sudah kita lakukan tadi, membuktikan bahwa data set UCI yaitu Statlog (Heart) pengklasifikasiannya lebih baik menggunakan teknik Naïve Bayes dibandingkan dengan Decision Tree yaitu dengan tingkat keberhasilan Naïve Bayes sekitar 83% sedangkan Decision Tree sekitar 77%.