BAB II TINJAUAN PUSTAKA 2.1. Diabetes Melitus Diabetes adalah suatu penyakit, dimana tubuh penderitanya tidak secara otomatis mengendalikan tingkat gula (glukosa) dalam darahnya. Pada tubuh yang sehat, pankreas melepas hormon insulin yang bertugas mengangkut gula melalui darah ke otot-otot dan jaringan lain untuk memasok energi. Penderita diabetes tidak bisa memproduksi insulin dalam jumlah yang cukup, atau tubuh tidak mampu menggunakan insulin secara efektif, sehingga terjadilah kelebihan gula di dalam darah. Kelebihan gula yang kronis didalam darah (hiperglikemia) ini menjadi racun bagi tubuh. Menurut ADA (Americant Diabetes Assosiation ) 1998, (Soegondo et al, 2002), diabetes merupakan suatu kelompok penyakit metabolik dengan karakteristik hiperglikemia yang terjadi karena kelainan sekresi in sulin, kerja insulin atau kedua-duanya. Sedang sebelumnya WHO 1980 berkata bahwa diabetes merupakan suatu yang tidak dapat dituangkan dalam satu jawaban yang jelas dan singkat tetapi secara umum dapat dikatakan sebagai suatu kumpulan problema anatomik dan kimiawi yang merupakan akibat dari sejumlah faktor dimana didapat defesiensi insulin absolut atau relatif dan gangguan fungsi insulin Diabetes dapat digolongkan ke dalam dua tipe, yaitu tipe 1 dan tipe 2. Diabetes tipe 1 adalah bila tubuh perlu pasokan insulin dari luar. Diabetes tipe 1 ini biasanya ditemukan pada penderita yang mulai mengalami diabetes sejak anak-anak atau remaja. Diabetes tipe 2 terjadi jika insulin hasil produksi pankreas tidak cukup, sehingga terjadi gangguan pengiriman gula ke sel tubuh. Gejala diabetes tipe 1 muncul secara tiba-tiba pada saat usia anak-anak sebagai akibat dari kelainan genetika, sehingga tubuh tidak memproduksi insulin dengan baik. Sedangkan gejala diabetes tipe 2 muncul secara perlahan-lahan sampai menjadi gangguan yang jelas. Gejala -gejala umum pada kedua tipe diabetes hampir sama, antara lain: sering buang air kecil, terus menerus lapar dan 16 haus, cepat lelah, kehilangan tenaga, luka yang lama sembuh, penglihatan kabur. Dikarenakan munculnya gejala-gejala tersebut pada penderita diabetes tipe 2 adalah perlahan-lahan, maka sering terabaikan dan dianggap sebagai keletihan biasa. Orang yang mempunyai resiko tinggi menderita diabetes melitus adalah 1. Orang dengan riwayat keluarga dengan diabetes 2. Orang obeis ( > 20% berat badan ideal) 3. Umur di atas 40 tahun dengan faktor tersebut di atas 4. Orang dengan tekanan darah tinggi 5. Orang dengan dislipidemia (kolesterol HDL < 35 md/dl dan/atau trigliserida > 250 mg/dl) 6. Semua wanita hamil 24-28 minggu 7. Wanita yang melahirkan bayi > 4.000 gram. Diabetes melitus jika tidak dikelola dengan baik akan dapat mengakibatkan terjadinya berbagai penyulit menahun, seperti penyakit jantung koroner, penyulit pada mata, ginjal dan syaraf. Jika kadar glukosa darah dapat selalu dikendalikan dengan baik, diharapkan semua penyulit menahun tersebut dapat dicegah, paling sedikit dihambat. 2.2. Data Warehouse Basis data rumah sakit yang dihasilkan dari sistem informasi rumah sakit umumnya berisi data dalam jumlah besar. Penyaringan serta penyajian informasiinformasi yang relevan dalam basis data yang besar ini adalah pekerjaan yang rumit. Sehingga perlu teknik -teknik tertentu agar proses penyaringan informasi bisa dilakukan secara efesien dan efektif, antara lain dengan membangun data warehouse yang akan berfungsi sebagai pusat penyimpanan data yang terintegrasi sebagai hasil penyaringan data operasional, dan menerapkan data mining yang akan menelusuri pola -pola data untuk tujuan analisis. Data warehouse bukan prasyarat untuk data mining, tetapi dalam prakteknya tugas data mining dibuat lebih mudah dengan mengakses dari data warehouse. Data warehouse dapat dipandang sebagai tempat penampungan data untuk mendukung pembuatan keputusan strategis. Fungsi dari data warehouse adalah untuk menyimpan data historis yang terintegrasi untuk merefleksikan berbagai 17 sudut pandang organisasi. Data mining adalah salah satu aplikasi utama bagi data warehouse, dimana fungsi data warehouse adalah untuk menyediakan informasi pada end user untuk mendukung pembuatan keputusan, sedangkan tool data mining menyediakan kemampuan kepada end user untuk menyaring informasi yang tersembunyi. Data warehouse adalah kumpulan data yang subject oriented, integrated, nonvolatile dan time variant untuk membantu membuat keputusan manajemen (Inmon, 1996). Subject oriented berarti data warehouse diarahkan kepada subyek utama yang akan didefinisikan dalam data model. Subyek-subyek utama ini pada akhirnya akan diimplementasikan secara fisik sebagai sekumpulan tabel-tabel yang saling berelasi dalam data warehouse. Karakteristik yang kedua pada data warehouse adalah integrasi. Data warehouse bisa bersumber dari banyak aplikasi yang biasanya tidak konsisten baik dalam pemrograman, pembuatan tata nama, pembuatan atribut fisik maupun pembuatan atribut pengukuran. Pada data warehouse keragaman tersebut harus dikonversi dengan memodifikasinya agar didapat format atau struktur data yang sesuai. Karakteristik ketiga dari data warehouse adalah non -volatile. Data yang ada pada data warehouse adalah data historis yang umumnya hanya bisa dibaca, tetapi data tersebut tidak dapat di update. Karakteristik keempat pada data warehouse adalah time variant, dimana key struktur data warehouse selalu mengandung komponen waktu. Komponen waktu merupakan hal yang sangat penting pada data warehouse. Salah satu aspek yang sangat penting saat merancang data warehouse adalah yang berkaitan dengan granularity. Granularity menunjukkan tingkatan detil yang ditampung dalam unit data dalam data warehouse. Semakin detil tingkatan yang ditampung dalam unit data, semakin rendah tingkat granularity-nya. Sebaliknya semakin kurang detil, tingkat granularity-nya semakin tinggi. Granularity akan berdampak pada volume data yang menempati data warehouse, dan pada saat yang sama juga berdampak pada jenis kueri yang bisa dilakukan. Dengan volume data yang besar membutuhkan kapasitas penyimpanan yang juga besar. Masalah kedua yang juga penting saat merancang data warehouse adalah partitioning. Partitioning menunjukkan pembagian data ke dalam beberapa unit 18 yang secara fisik berbeda, yang masing-masing bisa ditangani sendiri-sendiri. Hal ini menjadi penting, karena jika data berada dalam unit yang besar, maka data tersebut akan sulit untuk dikelola. Sedangkan salah satu esensi dari pembentukan data warehouse adalah kemudahan dalam mengakses data. 2.2.1 Metodologi Perancangan Data Warehouse Ada banyak pilihan yang bisa dilakukan ketika merancang data warehouse. Tetapi pendekatan yang paling banyak digunakan adalah dengan menggunakan empat data store dan tiga data flow (Corey et al, 2001), seperti pada Gambar 1. Store 1 Source 1 (Transaction System) Store 4 Reporting application 1 Store 3 HPQS (DataMart) Flow 3 Store 1 Source 2 (Transaction System) Flow 1 Store 1 Source 3 (Transaction System) Store 1 Source 4 (Transaction System) Store 4 Reporting application 2 Store 2 Integration Layer (Data Warehouse) Flow 2 Flow 3 Store 3 HPQS (DataMart) Store 4 Reporting application 3 Gambar 1 Arsitektur data warehouse dengan menggunakan empat data store dan tiga data flow. Sumber: Corey et al, 2001 Data store 1 adalah source system yaitu berbagai sistem aplikasi yang akan menyediakan data bagi data warehouse. Source system ini bisa juga berasal dari 19 luar organisasi. Masing-masing sistem ini mempunyai basis data yang diperlukan oleh end user untuk mengaksesnya. Flow 1 adalah aliran data dari sumber data ke integration layer. Setelah mengetahui dari mana sumber data berasal, berikutnya perlu mengembangkan mekanisme untuk mendapatkan data tersebut, yaitu dengan melakukan penyaringan data. Tahapan ini disebut juga tahap ekstraksi data. Data yang berasal dari berbagai sumb er diintegrasikan dan/atau ditransformasikan sebelum diletakkan ke dalam data warehouse. Data store 2 – Integration Layer atau data warehouse adalah basis data yang dinormalisasikan yang berasal dari berbagai sumber yang diletakkan dalam satu tempat. Adapun alasan membangun integration layer antara lain adalah untuk menghindari pengulangan ekstraksi. Beberapa data mart memerlukan data dari sistem yang sama. Jika tidak ada data warehouse, maka setiap data mart harus mengakses setiap sumber. Dengan membangun data warehouse, setiap data mart hanya membaca dari satu sumber yaitu integration layer yang sudah berisi data yang terintegrasi. Flow 2 merupakan aliran dari dari integration layer ke High Performance Query Structure (HPQS). Pada flow ini data diekstrak dari integration layer dan disisipkan ke data mart. Pada tahapan ini hanya diperlukan Extract, Tranform dan Load (ETL) untuk mempopulasikan data ke data mart. Data store 3 – HPQS atau data mart adalah basis data dan struktur data yang dibentuk secara khusus untuk mendukung kueri yang diperlukan oleh end user. Basis data ini dikelola oleh engine relational database atau engine multidimensional database. Jika disimpan dalam relational database, maka perancangan basis data data mart umumnya menggunakan star schema Data Flow 3 merupakan aliran data dari HPQS ke aplikasi. Untuk mendapatkan data dari data mart diperlukan tool kueri. Tool ini umumnya memerlukan SQL untuk memanggil relational database. Data store 4 menyajikan report yang disimpan dalam basis data. 2.2.2. Star Schema 20 Star schema adalah jenis perancangan basis data yang digunakan untuk mendukung analytical processing. Star schema berisi dua jenis tabel yaitu tabel fakta dan tabel dimensi. Tabel fakta atau disebut juga major table berisi data kuantitatif atau data transaksi sesungguhnya yang ada pada organisasi dimana informasi yang ada didalamnya akan dianalisa. Informasi ini biasanya berupa pengukuran numerikal dan bisa terdiri dari banyak kolom dan jutaan baris. Tabel dimensi atau disebut juga minor table, berisi deskripsi data yang merefleksikan dimensi organisasi. Perancangan basis data dengan menggunakan star schema ini paling banyak digunakan untuk membangun struktur data pada data mart dalam lingkungan relasional (Corey et al, 2001). Dalam star schema akan dilakukan normalisasi yang minimal untuk tujuan mendapatkan unjuk kerja yang baik. Untuk merancang tabel fakta dan tabel dimensi terlebih dahulu harus mengetahui transaksi apa yang akan dimodelkan. Setiap record dalam tabel fakta berisi primary key yang dibentuk dari satu atau lebih foreign key; foreign key adalah kolom yang ada dalam satu tabel yang nilainya ditentukan oleh primary key pada tabel lain. Tabel fakta adalah tabel yang sudah dinormalisasikan. Setiap record berisi sejumlah atribut yang semua atributnya hanya mempunyai satu primary key, sehingga dikatakan sudah memenuhi bentuk normal pertama (1NF). Tidak ada grup yang berulang, seluruh atribut hanya bergantung penuh pada primary key (2NF). Tidak ada satupun atribut yang bergantung pada atribut non key (3NF). Contoh relasi antartabel dimensi dan tabel fakta bisa dilihat pada Gambar 2. Tabel dimensi mempunyai ciri yaitu : 1. Denormalized. Tabel dimensi dibentuk dengan menggabungkan beberapa tabel yang berasal dari berbagai sumber untuk dimasukkan dalam satu tabel denormalized. Tujuannya adalah untuk mengurangi jumlah join yang harus diproses pada kueri, sehingga hal ini akan meningkatkan kinerja basis data. 2. Lebar. Tabel dimensi umumnya lebih lebar dibandingkan dengan tabel dalam aplikasi basis data. Hal ini berarti tabel dimensi memiliki banyak kolom 3. Pendek. Tabel dimensi umumnya jumlah row-nya lebih sedikit jika dibandingkan tabel fakta 21 4. Menggunakan surrogate key, yaitu key yang dibuat sendiri dalam data warehouse. 5. Berisi hubungan ke baris-baris tertentu dalam tabel master. Tabel dimensi berisi referensi ke key yang ada pada tabel master untuk mendapatkan record yang diinginkan. 6. Berisi kolom tanggal atau flag tambahan Tabel Fakta Tabel Dimensi Key 1 Key 1 Tabel Dimensi Atribut Key 2 Attribut Attribute . . . .. . . . Attribut Attribute Key 2 Tabel Dimensi Key 3 Key 3 Kolom data Attribute Data Column Attribut .......... . . . .. . . . Data Column Attribute . . . .. . . . Attribute Gambar 2 Relas i antartabel dimensi dan tabel fakta sederhana 2.3. Data mining Data mining merupakan proses pencarian pola dan relasi-relasi yang tersembunyi dalam sejumlah data yang besar dengan tujuan untuk melakukan klasifikasi, estimasi, prediksi, association rule, clustering, deskripsi dan visualisasi. Berdasarkan aktifitasnya data mining dikelompokkan menjadi dua jenis, yaitu directed data mining dan undirected data mining . Directed data mining digunakan jika sudah diketahui secara pasti apa yang akan diprediksi, sehingga bisa secara langsung menambang data untuk diarahkan pada tujuan tertentu. Misalnya model prediktif yang digunakan untuk membuat prediksi tentang diagnosa penyakit yang belum diketahui. Model prediktif menggunakan pengalaman untuk menentukan bobot dan tingkat kepercayaan. Salah satu kunci 22 keberhasilan model prediktif adalah adanya data yang cukup dengan hasil yang sudah diketahui untuk mengarahkan/melatih model. Undirected data mining berkaitan dengan menelusuri pola-pola baru dalam data. Tidak seperti directed data mining, yang sudah mengetahui apa yang akan diprediksi. Pada undirected data mining, ingin diketahui bagaimana model mengusulkan jawaban. Dalam prakteknya data mining sering berisi kombinasi dari keduanya. Misalnya saat membangun predictive model, sering berguna untuk mencari pola dalam data menggunakan teknik undirected. Secara sederhana data mining bisa dikatakan sebagai proses menyaring atau “menambang” pengetahuan dari sejumlah data yang besar. Istilah lain untuk data mining adalah Knowledge Discovery in Database atau KDD. Walaupun sebenarnya data mining sendiri adalah bagian dari tahapan proses dalam KDD, seperti yang terlihat pada Gambar 3 (Han & Kamber, 2001). Evaluation and Presentation Pattern Data mining Selection and Transformation Cleaning and Integration Databases Flat files Gambar 3 Data mining sebagai salah satu tahapan dalam proses 23 Knowledge Discovery Sumber: Han & Kamber (2001) Tahapan dalam KDD adalah sebagai berikut: 1. Pembersihan data; untuk mengidentifikasi, merubah, membersihkan data yang tidak konsisten atau tidak akurat. 2. Integrasi data; dimana data dari berbagai sumber digabungkan 3. Pemilihan data; dimana data yang relevan untuk melakukan analisis dipilih dari basis data. 4. Transformasi data; dimana data ditransformasikan atau dikonsolidasi ke dalam bentuk yang sesuai untuk mining misalnya dengan melakukan operasi summary atau agregasi. 5. Data mining ; proses yang penting dimana metoda cerdas diterapkan untuk menyaring pola-pola dari data. 6. Evaluasi pola; mengidentifikasikan pola -pola yang benar-benar menarik yang menggambarkan pengetahuan didasarkan pada pengukuran tertentu. 7. Penyajian pengetahuan ; dimana teknik -teknik penyajian serta representasi pengetahuan digunakan untuk menyajikan pengetahuan yang dihasilkan dari mining ke user. Berdasarkan tahapan dalam KDD, arsitektur sistem data mining umumnya mempunyai komponen utama sebagai berikut : 1. Basis data, data warehouse, atau tempat penyimpanan informasi lainnya. Teknik data cleaning dan data integration umumnya diperlukan dalam pembentukan komponen-komponen tersebut. 2. Basis data atau data warehouse server. Basis data atau data warehouse server bertanggungjawab untuk mengambil data yang relevan. 3. Basis pengetahuan. Komponen ini merupakan domain pengetahuan yang digunakan untuk mengarahkan pencarian, atau mengevaluasi kemenarikan pola-pola yang dihasilkan. Pengetahu an tersebut bisa berisi konsep hirarki, yang digunakan untuk menyusun atribut atau nilai-nilai atribut ke dalam tingkatan abstraksi yang berbeda-beda. Pengetahuan seperti keyakinan user, yang bisa digunakan untuk menguji ketertarikan pola -pola didasarkan pada hal-hal yang tidak diharapkannya, dapat juga dimasukkan. 24 4. Data mining engine. Bagian ini adalah yang paling penting bagi sistem data mining dan idealnya berisi sekumpulan modul-modul fungsional untuk melakukan tugas seperti karakterisasi, asosiasi, klasifikasi, analisis cluster, evaluasi dan analisis deviasi. 5. Modul evaluasi pola. Komponen ini berinteraksi dengan modul-modul data mining sedemikian sehingga menfokuskan pencarian ke arah pola-pola yang menarik. Untuk meng -efisienkan data mining, sangat dianjurkan untuk menekankan evaluasi dari pola-pola yang menarik sedalam mungkin ke dalam proses mining sedemikian sehingga memfokuskan pencarian hanya pada pola pola yang menarik saja. 6. Antarmuka pengguna. Modul ini berkomunikasi antara user dan sistem data mining , memungkinkan user untuk berinteraksi dengan sistem dengan menulis kueri, menyediakan informasi untuk membantu memfokuskan pencarian, dan melakukan eksplorasi data mining didasarkan pada hasil antara data mining. Selain itu komponen ini memungkinkan user untuk menelusuri basis data dan skema data warehouse atau struktur data, mengevaluasi pola-pola yang dihasilkan dari proses mining , dan menyajikan pola-pola dalam bentuk yang berbeda-beda. 2.3.1. Klasifikasi dan Prediksi Klasifikasi dan prediksi adalah dua bentuk analisis data yang bisa digunakan untuk mengekstrak model dari data yang berisi kelas-kelas atau untuk memprediksi trend data yang akan datang. Klasifikasi memprediksi data dalam bentuk kategori, sedangkan prediksi memodelkan fungsi-fungsi dari nilai yang kontinyu. Misalnya model klasifikasi bisa dibuat untuk mengelompokkan aplikasi peminjaman pada bank apakah beresiko atau aman, sedangkan model prediksi bisa dibuat untuk memprediksi pengeluaran untuk membeli peralatan komputer dari pelanggan potensial berdasarkan pendapatan dan lokasi tinggalnya. Klasifikasi data dilakukan dengan dua tahapan. Pada tahap pertama, model dibentuk dengan menentukan kelas-kelas data. Model dibentuk dengan menganalisa database tuples yang dinyatakan dengan atribut. Setiap tuple p memiliki kelas tertentu, yang d inyatakan oleh salah satu atributnya yang disebut 25 class label atribute. Dalam konteks klasifikasi data tuples disebut juga sample. Data tuples ini membentuk training data set yang selanjutnya dianalisa untuk membangun model. Setiap tuple yang membentuk training set disebut training sample dan secara acak dipilih dari sample population. Karena label kelas dari setiap training sample telah diketahui, maka tahapan ini disebut juga supervised learning. Supervised learning ini kebalikan dari unsupervised learning, dimana pada unsupervised learning label kelas dari setiap training sample tidak diketahui. Pada tahap kedua, model digunakan untuk klasifikasi. Pertama, akurasi model prediksi (atau classifier) ditentukan menggunakan data test. Sample ini secara acak dipilih, independent dengan training sample. Akurasi dari model pada test set adalah prosentase dari sample test set yang diklasifikasikan oleh model dengan benar. Untuk setiap sample test, label kelas yang telah diketehui dibandingkan dengan model kelas prediksi yang telah dilatih untuk sample tersebut. Jika akurasi dari model bisa diterima, maka model bisa digunakan untuk mengklasifikasikan data tuples dimana label kelasnya tidak diketahui. Misalnya, classification rule yang telah dihasilkan dari analisis data dari pelanggan yang ada dapat digunakan untuk memprediksi credit rating dari pelanggan baru. Prediksi bisa dipandang sebagai pembentukan dan penggunaan model untuk menguji kelas dari sample yang tidak berlabel, atau untuk menguji nilai atau rentang nilai dari suatu atribut. Dalam pandangan ini, klasifikasi dan regresi adalah dua jenis masalah prediksi, dimana klasifikasi digunakan untuk memprediksi nilai-nilai diskrit atau nominal, sedangkan regresi digunakan untuk memprediksi nilai-nilai yang kontinyu. Untuk selanjutnya penggunaan istilah prediction untuk memprediksi kelas yang berlabel disebut classification, dan pengggunaan istilah prediksi untuk memprediksi nilai-nilai yang kontinyu sebagai prediction (Han & Kamber, 2001). 2.3.2 Metodologi Data mining Ada beberapa konsep yang penting pada data mining. Konsep pertama berkaitan dengan mencari pola di dalam data. Biasanya berupa kumpulan data yang sering muncul. Tetapi secara umum berupa suatu daftar atau pola data yang muncul lebih sering dari yang diharapkan saat dilakukan secara acak. Konsep 26 yang kedua adalah sampling, yang bertujuan untuk memperoleh keterangan mengenai populasi dengan mengamati hanya sebahagian saja dari populasi itu. Hal lain yang juga penting yang berhubungan dengan data mining adalah validasi model prediksi yang muncul dari algoritme data mining. Khususnya, jika menemukan pola dalam data, model yang dibangun untuk memprediksi pola tersebut harus juga bisa digunakan untuk memprediksi pola ditempat lain. Akhirnya jika menemukan pola, dan yakin bahwa model tersebut bisa diproduksi, maka seluruh turunan untuk mencari pola atau model tersebut adalah yang terbaik. Model digunakan untuk membuat prediksi tentang suatu record yang menggambarkan keadaan nyata yang baru, dan merefleksikan model terbatas hanya basis data histori dimana model tersebut dibuat, seperti yang ditunjukkan pada Gambar 4. Model adalah deskripsi dari data historis dimana model tersebut dibangun untuk bisa diterapkan ke data baru dengan tujuan membuat prediksi tentang nilainilai yang terputus atau untuk membuat pernyataan tentang nilai yang diharapkan. Pola adalah suatu kejadian atau kombinasi kejadian dalam suatu basis data yang terjadi atau muncul lebih sering dari yang diharapkan (Berson et al., 2001). Data Historis Pembuatan Model 143 Record Model Prediksi Gambar 4 Model proses pembuatan data mining Sumber: Berson et al., 2001. 27 2.3.3. Teknik Data mining Ada tiga hal pokok yang harus diperhatikan untuk keberhasilan penerapan data mining , yaitu; teknik data mining, data, dan model data. Teknik adalah pendekatan umum untuk memecahkan masalah, dan biasanya terdapat banyak cara yang bisa digunakan. Masing -masing cara mempunyai algoritmenya sendirisendiri. Istilah teknik digunakan untuk menunjukkan pendekatan konseptual untuk menyaring informasi dari data. Algoritme menunjukkan detil tahap demi tahap dari cara tertentu untuk mengimplementasikan suatu teknik. Data mining bisa berupa predictive atau descriptive. Perbedaan ini menunjukkan tujuan dari penggunaan data mining . Tujuan utama predictive data mining adalah mengotomatisasikan proses pembuatan keputusan dengan membuat model yang punya kemampuan untuk melakukan prediksi atau mengestimasi suatu nilai. Umumnya hasil dalam predictive data mining akan langsung ditindak lanjuti Sehingga tolok ukur yang paling penting pada model adalah akurasinya. Data mining sering juga bersifat descriptive. Tujuan utama descriptive data mining adalah untuk menggali pengertian yang mendalam dari apa yang terjadi di dalam data. Descriptive data mining sering menghasilkan action, tetapi bukan berupa urutan aksi yang bisa diotomatisasikan secara langsung dari hasil model (Berry & Linoff, 2000). Descriptive mining, yaitu proses untuk menemukan karakteristik penting dari data dalam suatu basis data. Clustering, Association , dan Sequential mining adalah beberapa contoh dari teknik descriptive mining. Predictive mining, yaitu proses untuk menemukan pola dari data untuk membuat prediksi. Classification, Reg ression dan Deviation adalah teknik dalam predictive mining. a. Association Rule Association rule merupakan salah satu teknik data mining yang paling banyak digunakan dalam penelusuran pola pada sistem pembelajaran unsupervised . Metodologi ini akan mengambil seluruh kemungkinan pola-pola yang diamati dalam basis data. Association rule menjelaskan kejadian -kejadian 28 yang sering muncul dalam suatu kelompok. Misalnya metodologi ini bisa digunakan untuk menganalisa produk-produk mana saja yang sering dibeli oleh seorang pelanggan secara bersamaan (analisa keranjang belanja). Hasil analisis tersebut bisa digunakan untuk menentukan peletakan produk di toko. Satu itemset adalah himpunan bagian A dari semua kemungkinan item I. Satu itemset yang mengandung i item disebut i-itemset. Prosentase transaksi yang mengandung itemset disebut support. Untuk suatu itemset yang akan diamati, support-nya harus lebih besar atau sama dengan nilai yang dinyatakan oleh user, sehingga itemset tersebut dikatakan sering muncul (frequent). Bentuk umum aturan asosiasi adalah A1,A2,…,An → B1,B2,…,Bm, yang berarti jika item Ai muncul, item Bj juga muncul dengan peluang tertentu. Misalkan X adalah itemset. transaksi T dikatakan mengandung X jika dan hanya jika X ⊆ T. Aturan X ⇒ Y menyatakan himpunan basis data transaksi dengan tingkat kepercayaan (confidence) C, jika C% dari transaksi dalam D yang mengandung X juga mengandung Y. Rule X ⇒ Y mempunyai support dalam transaksi set D jika S% dari transaksi dalam basis data berisi X ∪ Y. Tingkat kepercayaan menunjukkan kekuatan implikasi, dan support menunjukkan seringnya pola terjadi dalam rule. Sebagai contoh diberikan aturan : A, B ⇒ C dengan S = 0.01 dan C = 0.8. Hal ini berarti bahwa 80% dari semua pelanggan yang membeli A dan B juga membeli C, dan 1% dari semua pelanggan membeli ketiga item tersebut. Mining association rule dilakukan dalam dua tahap, yaitu 1. Mencari semua association rule yang mempunyai minimum support Smin dan minimum confidence Cmin. Itemset dikatakan sering muncul (frequent) jika Support(A) ≥ Smin. 2. Menggunakan itemset yang besar untuk menentukan association rule untuk basis data yang mempunyai tingkat kepercayaan C di atas nilai minimum yang telah ditentukan (C min.). b. Algoritme Appriori Algoritme apriori menghitung seringnya itemset muncul dalam basis data melalui beberapa iterasi. Setiap iterasi mempunyai dua tahapan; menentukan 29 kandidat dan memilih serta menghitung kandidat. Pada tahap pertama iterasi pertama, himpunan yang dihasilkan dari kandidat itemset berisi seluruh 1-itemset, yaitu seluruh item dalam basis data. Pada tahap kedua, algoritme ini menghitung support-nya mencari melalui keseluruhan basis data Pada akhirnya hanya iitemset dengan batas minimum tertentu saja yang dianggap sering muncul (frequent). Sehingga setelah iterasi pertama, seluruh i-itemset yang sering muncul akan diketahui. Pada iterasi kedua, algoritme appriori mengurangi sekelompok kandidat itemset yang dihasilkan dari iterasi pertama dengan menghapus kandidat itemset yang tidak sering muncul. Penghapusan ini berdasarkan pengamatan yaitu apakah itemset tersebut sering muncul atau tidak. 1. k = 1 2. C1 = I (semua item) 3. While Ck > 0 ( a ). Sk = Ck ( b ).Ck+1 = Semua himpunan dengan k=1 elemen yang terbentuk dengan menggabungkan dua itemset dalam sk ( c ). Ck+1 = Ck+1 ( d ). S = S + Sk ( e ). k ++ 4. return S Gambar 5. Algoritme Appriori Tabel 1. Transaksi Penjualan Barang A B C D E Pelanggan 1 1 0 1 1 0 Pelanggan 2 0 1 1 0 1 Pelanggan 3 1 1 1 0 1 Pelanggan 4 0 1 0 0 0 Misalkan pada tabel 1, akan dicari seluruh itemset dengan minimal support Smin = 50%. Sehingga itemset dianggap sering muncul jika ia terdapat pada paling 30 tidak di 50% transaksi. Dalam setiap iterasi, algoritme appriori membentuk kandidat set, menghitung jumlah kejadian dari setiap kandidat dan memilih itemset didasarkan pada minimum support yang telah ditentukan sebelumnya yaitu 50%. Pada tahap pertama iterasi pertama, semua item adalah kandidat. Algoritme appriori hanya menelusuri semua transaksi dalam basis data dan membuat daftar kandidat, yaitu ; C1 = A, B, C, D, E L1 = A, B, C, D, E Pada tahap berikutnya , algoritme appriori menghitung terjadinya setiap kandidat dan berdasarkan nilai minimum support S min, kemudian menentukan itemset yang sering muncul, setelah tahap ini kandidat berisi: L1 = A, B, C, E D dikeluarkan karena nilai S = 25%, hanya ada satu transaksi dari keseluruhan empat transaksi.. Untuk menelusuri himpunan 2-itemset, karena himpunan bagian (subset) dari 2itemset juga mempunyai minimum support yang sama, algoritme appriori menggunakan L1 * L1 untuk membuat kandidat. Operasi * didefinisikan sebagai berikut ; Lk * Lk = XUY dimana X,Y Ε Lk, (X∩Y=K-1 , Untuk k =1 ⇒ |L1| . |(L1)-1)/2| = 4 . 3/2 = 6 Pada iterasi kedua kandidat berisi : C2 = A,B, A,C, A,E, B,C, B,E, C,E . Pada tahap berikutnya , algoritme appriori menghitung terjadinya setiap kandidat dan berdasarkan nilai minimum support S min, kemudian menentukan itemset yang sering muncul, setelah tahap ini kandidat berisi: L2 = A,C, B,C , B,E, C,E Himpunan 3-itemset dihasilkan dari S2 menggunakan operasi yang sudah ditentukan sebelumnya L2 * L2. Langkah praktisnya, dari L2 dengan item yang pertama sama, yaitu B,C, B,E,dinyatakan pertama. Kemudian algoritme appriori akan mencek apakah 2-itemset C,E, yang berisi item kedua dari B,C, 31 B,E terdapat pada L2 atau tidak. Karena C,E ada dalam L2, maka B,C,E menjadi kandidat 3-itemset. Karena tidak ada kandidat 4 -itemset, maka algoritme ini berakhir. c. Membuat Association Rule berdasarkan Frequent Itemset Tahap kedua dalam penelusuran assosiation rule didasarkan pada seluruh iitemset yang sering muncul, yang didapat dari tahap pertama. Untuk rule yang mengandung X1, X2, X3 → X4, rule tersebut dianggap bermakna jika kedua itemset tersebut X1, X2, X3, X4 dan X1, X2, X3 adalah frequent. Sehingga tingkat kepercayaan C dari rule tersebut dihitung sebagai hasil bagi dari support itemset, yaitu : C = S(X1, X2, X3, X4) / S(X1, X2, X3). Strong association rule adalah rule dengan tingkat kepercayaan C diatas Smin. Misalkan dari tabel 1 akan dicek apakah association rule (B,C) → E adalah strong rule. Pertama harus dipilih hubungan support dari tabel L2 dan L3. S(B,C) = 2, S(B,C,E) = 2 C((B,C) → E ) = S(B,C,E)/S(B,C) = 2/2 = 1 (100%) Karena tingkat kepercayaan adalah maksimal, maka jika transaksi berisi item B dan C maka transaksi tersebut juga berisi item E. d. Classification-Based Association Saat ini, salah satu teknik data mining telah dikembangkan adalah dengan menerapkan konsep association rule mining dalam masalah klasifikasi. Ada beberapa metode yang bisa digunakan, antara lain association rule clustering system (ARCS) dan associative classification (Han & Kamber, 2001). Metode ARCS melakukan association rule mining didasarkan pada clustering kemudian menggunakan aturan yang dihasilkan untuk klasifikasi. ARCS, melakukan association rule mining dalam bentuk Aquant1 ∧ Aquant2 ⇒ Acat , dimana bentuk Aquant1 dan Aquant2 adalah data test yang atributnya punya rentang nilai, Acat menunjukkan label kelas untuk atribut kategori yang diberikan dari training data . Metode associative classification mining menghasilkan aturan dalam bentuk condset ⇒ y, dimana condset adalah sekumpulan item dan y adalah label kelas. 32 Aturan yang sesuai dengan minimum support tertentu disebut frequent. Rule mempunyai support s jika s% dari sample dalam data set yang mengandung condset dan memiliki kelas y. Aturan yang sesuai dengan minimum confidence disebut accurate. Aturan mempunyai confidence c jika c% dari sample dalam data set yang mengandung condset memiliki kelas y. Jika beberapa rule mempunyai condset yang sama, maka rule dengan confidence tertinggi d ipilih sebagai possible rule (PR). Metode associative classification mining menggunakan algoritme association rule, seperti algoritme Appriori untuk menghasilkan association rule, kemudian memilih sekelompok aturan yang mempunyai kualitas tinggi dan menggunakan aturan tersebut untuk memprediksi data. Associative classification masih kurang efisien karena seringkali menghasilkan aturan dalam jumlah yang besar (Yin & Han, 2003). Metode classification -based association lainnya adalah CPAR (Classification based on Predictive Association Rule). Algoritme ini mengambil ide dari FOIL (First Order Inductive Leaner) dalam menghasilkan aturan dan mengintegrasikannya dengan associative classification. e. Classification based on Predictive Association Rules (CPAR) Klasifikasi pada penelitian ini menggunakan association rule. Menurut Yin & Han (2003) algoritme yang efektif untuk digunakan dalam masalah klasifikasi adalah CPAR. Pada algoritme ini klasifikasi diimplementasikan dalam tiga tahap: rule generation, rule evaluation dan classification. Pada proses rule generation, CPAR membangun rule dengan menambahkan literal satu persatu. Pada setiap tahapan proses, CPAR menghitung Gain dari setiap literal. Setelah masing-masing sampel diproses untuk mendapatkan rule, sampel ini digunakan kembali di dalam perhitungan Gain tetapi dengan mengurangi bobot dengan decay factor. Bobot sampel dikurangi hingga mencapai nilai minimum yang dihitung oleh parameter w yaitu bobot seluruh sampel positif. Bobot seluruh contoh pada awal proses ditetapkan sama dengan 1. 33 Setelah proses rule generation, CPAR mengevaluasi setiap rule untuk menentukan kekuatan prediksinya. Untuk rule r = p1 ∧ p2 ... ∧ p n → c, CPAR mendefinisikan ekspektasi akurasi sebagai sebagai berikut : L.A = (nc+1) / (ntot+f) Dimana L.A adalah Laplace accuracy, f adalah jumlah kelas, ntot adalah jumlah total sampel yang memenuhi body dari aturan, nc adalah jumlah sampel yang memenuhi kelas c. Klasifikasi berupa sekumpulan aturan untuk setiap kelas, CPAR menggunakan s aturan terbaik setiap kelas, yang dipilih berdasarkan Laplace accuracy. Ide dasar CPAR berasal dari FOIL yang menggunakan algoritme greedy untuk mempelajari aturan yang membedakan contoh positif dengan contoh negatif. FOIL secara berulang mencari aturan terbaik dan memindahkan seluruh contoh positif yang dicakup oleh aturan sampai seluruh contoh positif dalam data set tercakup. Algoritme FOIL diperlihatkan pada Gambar 6 (Yin & Han ,2003). Masukan: Training set D = P ∪ N. (P dan N adalah himpunan contoh positif dan contoh negatif) Keluaran: Himpunan aturan untuk memprediksi label kelas dari contoh. Procedure FOIL rule set R ← Φ while |P| > 0 N’ ← N, P’ ← P rule r ← empty_rule while |N| > 0 and r.length < max_rule_length find the literal p that brings most Gain according to P’ and N’ append p to r remove from P’ all examples not satisfying r remove from N’ all examples not satisfying r end R ← R ∪ {r} Remove from p all examples satisfying r’s body end return R Gambar 6. Algoritme FOIL Definisi 34 • Literal p adalah pasangan nilai atribut, dalam bentuk (A i,v), dimana Ai adalah atribut dan v adalah nilai atribut Ai. Tuple t memenuhi literal p = (Ai,v) jika dan hanya jika ti = v, dimana t i adalah nilai atribut ke-i. • Aturan r, berbentuk “p 1∧p 2∧ ..... ∧p t ⇒ c,” Tuple t memenuhi body dari aturan r jika dan hanya jika tuple tersebut memenuhi setiap literal dalam rule. Jika t memenuhi body dari r, r memprediksi bahwa t adalah dari kelas c. Algoritme FOIL pertama kali membaca data masukan berupa himpunan contoh positif dan contoh negatif, menghasilkan keluaran berupa aturan -aturan yang berguna untuk memprediksi label kelas dari contoh positif atau contoh negatif. Pada awal proses himpunan aturan R ditetapkan kosong. Proses pembentukan aturan terus berulang selama jumlah contoh positif lebih besar dari 0, dan selama proses pembentukan aturan algoritme FOIL melakukan penyalinan contoh positif ke contoh positif sementara, contoh negatif ke contoh negatif sementara, membaca atribut contoh positif satu persatu dan menambahkan ke rule list jika nilai Gain sesui dengan yang ditetapkan. Pada saat memilih literal, FOIL Gain digunakan untuk mengukur informasi yang diperoleh dari penambahan literal tersebut ke current rule. Misalkan terdapat |P| contoh positif dan |N| contoh negatif memenuhi body dari aturan r. Setelah literal p ditambahkan ke r, terdapat |P*| contoh positif dan |N*| contoh negatif yang memenuhi body dari aturan r yang baru. FOIL Gain p didefinisikan sebagai berikut (Yin & Han, 2003). | P* | |P| Gain ( p ) = | P * | log − log | P * | + | N * | | P | +|N | dimana |P| dan |N| adalah jumlah contoh positif dan jumlah contoh negatif yang memenuhi body dari aturan r. |P*| dan |N*| adalah jumlah contoh positif dan jumlah contoh negatif yang memenuhi body dari aturan r yang baru, yang dihasilkan dengan menambahkan p ke r. Predictive Rule Mining (PRM) adalah suatu algoritme yang memodifikasi FOIL untuk mendapatkan akurasi dan efesiensi yang lebih baik. Pada PRM, 35 setelah contoh yang benar tercakup dalam aturan, selain mengeluarkannya, bobotnya dikurangi dengan faktor perkalian. Algoritme PRM diperlihatkan pada Gambar 7 (Yin & Han, 2003). Masukan: Training set D = P ∪ N. (P dan N adalah himpunan contoh positif dan contoh negatif) Keluaran: Himpunan aturan untuk memprediksi label kelas dari contoh. Procedure Predictive Rule Mining Set the weight of every example to 1 Rule set R ← φ Totalweight ← TotalWeight(P) A ← Compute PNArray from D While TotalWeight(P) > δ. totalWeight N’ ← N, P’← P, A’ ← A Rule r ← emptyrule While true Find best literal p according to A’ If Gain(p) < min_Gain then break Append p to r For each example t in P’ ∪ N’ not satifying r’s body Remove t from P’ or N’ Change A’ according to the removal of t End End R ← R ∪ {r} For each example t in P satisfying r’s body t.weight ← α.t.weight change A according to the weight decreased end end return R Gambar 7. Algoritme PRM Algoritme CPAR merupakan pengembangan dari algoritme PRM. Perbedaan diantara CPAR dan PRM adalah selain hanya memilih atribut yang mempunyai gain terbaik pada setiap iterasi, CPAR dapat memilih sejumlah atribut yang nilai gain-nya hampir sama. Pemilihan atribut tersebut dilakukan dengan menghitung dan menerapkan gain_similarity_ratio. Semua atribut dengan nilai gain lebih besar dari bestGain X gain_similarity_ratio akan dipilih dan diproses 36 lebih lanjut. Algoritme CPAR diperlihatkan pada Gambar 8 dan Gambar 9 (Coenan, 2004). Method : startCPAR Parameters : none Global access to : R, C generate an empty global attributes array A For each c in C generate global P and N example arrays generate global PN array determine minimum total weight threshold while (total weight P > minimum total weight threshold) A’ ? A, N’ ? N, P’ ? P, PN’ ? PN If no attributes exist with weightings that can produce a gain above minimum break cparGeneration end loop end loop Gambar 8. Metoda startCPAR Method : cparGeneration Parameters : parameters ante (antecedent) and Cons (consequent) for current rule. For each a in A If (a not in antecedent) calculated gain using information in PN array and add to attribute array End loop I = “available” column in A with best gain If (A[i][0] <= MIN_BEST_GAIN ) return loop through attribute array and find attribute a’ with best gain If (best gain <= MIN_BEST_GAIN) add antecedent ? c to rule list for all records in P reduce weighting by decay factor and adjust PN array accordingly return gainThreshold = bestGain×GAIN_SIMILARITY_RATIO for each a in A if a available and a.gain > gainThreshold tempP’ ? P’, tempN’ ? N’, tempA’ ? A’, tempNP’ ? NP’ add a’ to antecedent remove examples from N’ and P’ that do not contain antecedent and adjust NP array accordingly if (N’ == {}) add antecedent ? c to rule list for all records in P reduce weighting by decay factor and adjust NP array accordingly 37 else prmGeneration(antecedent,c) P’ ? tempP, N’ ? tempN’, A’ ? tempA’, NP’ ? tempNP’ End loop Gambar 9. Metoda cparGeneration Pada metoda startCPAR proses dimulai dengan membaca data berupa sekumpulan bilangan array dua dimensi yang setiap kolomnya diberi atribut A dan atribut terakhir menunjukkan kelas. Data masukan selanjutnya dikelompokkan menjadi contoh positif P dan contoh negative N sesuai dengan kelasnya. Bobot contoh positif |P| dan bobot contoh negative |N| setiap atribut dijumlahkan untuk membentuk PN array, berupa array dua dimensi berisi daftar semua atribut, bobot contoh positif, dan bobot contoh negative. Total weight threshold (TWT) dihitung dengan mengalikan jumlah bobot positif dengan konstanta yang selama percobaan ditetapkan sama dengan 0.05. Proses pembentukan aturan dilakukan berulang-ulang sampai jumlah bobot contoh positif lebih kecil dari TWT. Pada setiap proses dilakukan penyalinan P, N, A dan PN ke P’, N’, A’ dan PN’. Menghitung Gain dan menyisipkan aturan ke rule list. Pada percobaan yang dilakukan konstanta minimum gain adalah 0.7, dan decay factor 1/3. Membuat Rule Dalam CPAR Dalam PRM, setiap aturan di-generate dari dataset yang tersisa, memilih hanya literal yang terbaik dan mengabaikan seluruh literal lainnya. CPAR membuat rule s dengan menambahkan literal satu per satu, yang mirip dengan PRM. Pada CPAR setelah menemukan literal terbaik p, literal lainnya q yang Gain-nya mirip dengan p (misalnya hanya berbeda 1%) akan dicari. Selain terus membangun rule dengan menambahkan p ke r, q juga ditambahkan ke current rule r untuk membuat rule baru r’ 2.3.4. Membangun Model Prediksi Secara umum, proses dasar membangun model prediksi adalah sama, apapun teknik data mining yang akan digunakan. Keberhasilan dalam membangun model lebih banyak tergantung pada proses bukan pada teknik yang digunakan, dan 38 proses tersebut sangat tergantung pada data yang digunakan untuk menghasilkan model . Tantangan utama dalam membangun model prediksi adalah mengumpulkan data awal yang cukup. Dalam preclassified, hasilnya sudah diketahui, dan karenanya preclassified digunakan untuk melatih model, himpunan data tersebut disebut model set. Gambar 10 menggambarkan langkah-langkah dasar dalam membangun model prediksi (Berry & Linoff, 2000). Langkah-langkah tersebut adalah : 1. Model dilatih menggunakan preclassified data, dengan mengambil sebagian data dari dataset yang disebut training set. Pada tahap ini, algoritme data mining mencari pola-pola dari nilai yang diprediksi. 2. Model diperbaiki menggunakan himpunan bagian lain dari data yang disebut test set. Model perlu diperbaiki agar tidak hanya bisa bekerja pada training set. 3. Performance model diestimasi atau membandingkan performance beberapa model, dengan menggunakan himpunan data ketiga, yang didapat dari gabungan himpunan data pertama dan kedua, yang disebut evaluation set. 4. Model diterapkan ke score set. Score set bukan preclassified, dan bukan bagian dari model set. Hasil dari data tersebut tidak diketahui. Predictive score akan digunakan untuk membuat keputusan. Dataset adalah preclassified data yang digunakan untuk membangun model. Dataset perlu d ipecah ke dalam tiga komponan, training set, test set dan evaluation set. 39 Training set digunakan untuk membangun model Training Set Test set digunakan untuk memperbaiki model Model (Kasar) Model (Perbaikan) Test Set Evaluation set digunakan untuk menilai akurasi yang diharapkan dari model saat diterapkan ke data di luar model set Evaluation Set Model yang terbaik Score Set diterapkan ke score set untuk menghasilkan prediksi Model (terbaik) Prediksi Gambar 10 Langkah -langkah membangun model prediksi Sumber: Berry & Linoff, 2000 40