DATA MINING (Machine Learning) SUMARNI ADI,S.Kom.,M.Cs S1 Teknik Informatika SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA 2016
Konsep dasar Data mining merupakan proses menggali dan menganalisa sejumlah data yang sangat besar untuk memperoleh sesuatu yang benar, baru dan bermanfaat dan akhirnya dapat ditemukan suatu corak atau pola dalam data tersebut. (Han dan Kamber, 2006) Proses ini dilakukan berulang-ulang (iterasi) hingga didapat satu set pola yang memuaskan yang dapat berfungsi sesuai yang diharapkan.
Konsep dasar Secara garis besar data mining dapat dikelompokkan menjadi dua kategori utama, yaitu (Tan et al, 2005) : Descriptive Mining, yaitu proses untuk menemukan karakteristik penting dari data dalam suatu basis data. Teknik ini adalah adalah clustering, association, dan sequential mining. Predictive, yaitu proses untuk menemukan pola dari data dengan menggunakan beberapa variabel untuk membuat prediksi variabel lain dimasa depan. Teknik yang termasuk dalam predictive mining antara lain klasifikasi, regresi dan deviasi.
Konsep dasar Data mining adalah bagian integral dari penemuan pengetahuan dalam database atau dikenal dengan Knowledge Discovery in Databases (KDD) yang merupakan proses keseluruhan mengubah data mentah menjadi pola-pola data yang menarik yang merupakan informasi yang dibutuhkan oleh pengguna sebagai pengetahuan. langkah-langkah yang terjadi dalam proses KDD: Selection, tahap ini dilakukan pemahaman terhadap permasalahan yang akan dicari solusinya melalui penemuan pengetahuan, pengetahuan sebelumnya yang relevan, penentuan tujuan dan pemilihan data yang akan dianalisis. Preprocessing, tahap ini dilakukan proses preprocessing data termasuk kegiatan pembersihan data. Transformation, tahap ini dilakukan pengurangan dan / atau pengubahan tipe data menjadi standar, sehingga data siap untuk di presentasikan ke teknik-teknik data mining. Data mining, tahap ini dilakukan pemilihan tugas data mining yang sesuai dengan tujuan dan algoritma data mining untuk pencarian pola. Interpretation/Evaluation, Interpretasi disajikan dalam bentuk visualisasi berupa grafik, dll. Evaluasi Model dapat menghitung akurasi dengan teknik bootstrap (Untuk data yang Relatif kecil) atau Teknik K-Cross Validation (data yang banyak)
Ilustrasi KDD :
Tahap SelectionPreprocessingTransformation Selection untuk pemilihan fitur,kasus pemberian kredit pada bank XYZ Data Hasil Preprocessing dan Transformation Ada Perubahan ???
Klasifikasi dan prediksi Klasifikasi merupakan proses menemukan sebuah model atau fungsi yang mendeskripsikan dan membedakan data ke dalam kelas-kelas atau konsep-konsep contoh, sebuah bank ingin menganalisis data pengaju dana pinjaman apakah peminjam dana tersebut masuk ke dalam kategori beresiko dalam artian dana yang dipinjamkan akan sulit dikembalikan atau dalam kategori aman, mengkategorikan apakah sebuah sel tumor termasuk dalam kategori ganas atau jinak, dan lain-lain.
Klasifikasi dan Prediksi klasifikasi terdapat 2 tahapan, yaitu : tahap pertama model classifier akan dibentuk berdasarkan data set atau data training menggunakan algoritma klasifikasi, proses ini disebut dengan tahap pembelajaran (learning step). Model classifier selanjutnya digunakan untuk menentukan label class berdasarkan atribut Tahapan kedua, evaluasi terhadap model classifier untuk mendapatkan nilai akurasi. Jika nilai akurasi sesuai dengan yang diharapkan, maka classifier ini sudah bisa digunakan untuk mendapatkan hasil prediksi dengan menggunakan tupel data diluar data training
Algoritma klasifikasi dan prediksi Algoritma yg sering digunkan pada teknik ini diantaranya : naive bayes classifier (NBC), Decission tree, near neighbor, dll Contoh kita akan meyelesaikan kasus menggunkan algoritma NBC
Algoritma naive Bayes Classifier (NBC) NBC memiliki prosedur sebagai berikut : Setiap sample data direpresentasikan dengan n-dimensional feature vector, X=(X1,X2,…,Xn), dengan n dibuat dari sample n atribut, berturut-turut A1,A2,…,An. Diandaikan terdapat m class, C1,C2,…,Cm. Diberikan sebuah data sample, X (yang tidak diketahui class labelnya), kemudian classifier akan memprediksi X ke dalam class yang memiliki probabilitas posterior tertinggi, Naive bayes classifier akan menentukan sample X ke dalam class Ci jika dan hanya jika P(Ci | X) > P(Cj | X) untuk 1≤ j ≤ m, j ≠ i (1)
Prosedur NBC (Lanjutan) Class Ci adalah nilai terbesar, yang disebut dengan maksimum posteri hypothesis dengan teorema bayes: (2) P(X) adalah konstan untuk semua class. Jika probabilitas class prior tidak diketahui, secara umum diasumsikan bahwa class adalah sama, yaitu P(C1)=P(C2)=…=P(Cm), dan selanjutnya menghitung nilai P(X|Ci) dan menghitung nilai P(X|Ci)P(Ci). Probabilitas class prior diestimasi dengan , dimana si adalah jumlah training sample pada class Ci, dan s adalah jumlah training sample. Apabila dataset terdiri dari banyak atribut, akan mengakibatkan komputasi yang rumit untuk menghitung P(X|Ci). Untuk mengurangi komputasi, naive bayes mengasumsikan pada pembuatan class independen. Sehingga nilai pada atribut dikondisikan bersifat independen antara atribut yang satu dengan atribut yang lain, serta diantara atribut tidak terdapat relasi depedensi. (3)
Prosedur NBC (Lanjutan) Probabilitas P(X1 | Ci), P(X2 | Ci),…, P(Xn | Ci), dapat diestimasi dari training sample, dimana Jika Ak adalah kategorikal, maka P(xk | Ci) = (4) sik adalah jumlah dari training sample pada class Ci yang mempunyai nilai Xk untuk Ak dan si adalah jumlah training sample yang termasuk ke dalam class Ci. Jika Ak bernilai kontinyu, maka diasumsikan mempunyai sebuah gaussian distribusi adalah fungsi gaussian untuk atribut Ak dengan dan adalah mean dan standard deviasi untuk atribut Ak pada training sample class Ci. Untuk mengklasifikasikan sample X yang tidak diketahui, P(X | Ci) P(Ci) dievaluasi untuk setiap class Ci. Sample X ditetapkan untuk class Ci jika dan hanya jika P (Ci | X) > P (Cj | X) untuk 1 ≤ j ≤ m, j≠ i Dengan kata lain, ditetapkan sebagai class Ci untuk P (Ci | X) yang bernilai maksimum.
contoh Menentukan pelanggan All Electronics akan membeli komputer atau tidak. Tentukan pelanggan “X” akan membeli komputer atau tidak dg menggunakan algoritma NBC jika kriteria sbg berikut : X =(age=”<=30”; income=”medium”; student=”yes”; credit_rating=”fair”).
Contoh (Lanjutan) Data pelanggan :
Contoh (lanjutan) Hitung probabilitas class : Buys_Computer (gunakan persamaan 4) Dicari nilai P(Ci) untuk i = 1,2 (class-nya ada 2 yaitu “yes” dan “no”) : P(buys_computer=”yes”) = 9/14 = 0.643 (implementasi persamaan 4) P(buys_computer =”no”) = 5/14 = 0.357 (implementasi persamaan 4) Hitung Probabilitas setiap Variabel (atribut), dimana nilai P(Ci) untuk i = 1,2 (class-nya ada 2 yaitu “yes” dan “no”) : Probabilitas setiap Variabel yang class: Buys_Computer= “Yes” (gunakan persamaan 2): P(age=”<=30” | buys_computer=”yes”) = 2/9 = 0.222 (implementasi persamaan 2) P(income=”medium” | buys_computer=”yes”) = 4/9 = 0.444 (implementasi persamaan 2) P(student=”yes” | buys_computer=”yes”) = 6/9 = 0.667 (implementasi persamaan 2) P(credit_rating=”fair” | buys_computer=”yes”) = 6/9 = 0.667 (implementasi persamaan 2) Probabilitas setiap Variabel yang class: Buys_Computer= “No” (gunakan persamaan 2): P(age=”<=30” | buys_computer =”no”) = 3/5 = 0.600 (implementasi persamaan 2) P(income=”medium” | buys_computer =”no”) = 2/5 = 0.400 (implementasi persamaan 2) P(student=”yes” | buys_computer =”no”) = 1/5 = 0.200 (implementasi persamaan 2) P(credit_rating =”fair” | buys_computer =”no”) = 2/5 = 0.400 (implementasi persamaan 2)
Contoh (lanjutan) Berdasarkan nilai probabilitas variabel tersebut, maka : Hitung semua variabel yang bernilai class: buys_computer =“Yes” : P(X|buys_computer=”yes”) = 0.222 x 0.444 x 0.667 x 0.667 = 0.044 Hitung semua variabel yang bernilai class: buys_computer =“No” : P(X|buys_computer =”no”) = 0.600 x 0.400 x 0.200 x 0.400 = 0.019 Berdasarkan nilai probabilitas kelas dan probabilitas variabel, maka : Hitung probabilitas class yang bernilai buys_computer =“Yes” dan semua variabel P(X|buys_computer=”yes”) : P(X|buys_computer=”yes”)P(buys_computer=”yes”)= 0.044 x 0.643 = 0.028 Hitung probabilitas class yang bernilai buys_computer =“No” dan semua variabel P(X|buys_computer=”No”) : P(X|buys_computer =”no”)P(buys_computer =”no”)= 0.019 x 0.357 = 0.007 Menentukan class untuk pelanggan “X” gunakan persamaan 1 karena P(X|buys_computer=”yes”)P(buys_computer=”yes”) > P(X|buys_computer =”no”)P(buys_computer =”no”) maka sample X dapat diklasifikasikan ke dalam class buys_computer=”yes” (implementasi persamaan 1)
Gampang kan ???