BAB III Analisis Dasar Teori Bab ini membahas hasil analisis dari dasar teori, diantaranya yaitu analisis data streams, analisis concept drift, analisis mining data streams, dan analisis SEA.
III.1 Analisis Data Streams Data streams merupakan data yang terus menerus bertambah. Sebagai contoh pada suatu waktu t, data berisi seperti pada Tabel III.1. Kemudian pada suatu waktu t+1 maka data telah bertambah sebanyak 2 seperti pada Tabel III.2. Tabel III.1. Data IPK Mahasiswa dengan Waktu t
Nama A B C D
Semester 3 3 2 6
IPK 2 2,5 3 1,5
Tabel III.2. Data IPK Mahasiswa dengan Waktu t+1
Nama A B C D E F
Semester 3 3 2 6 1 1
IPK 2 2,5 3 1,5 2 2,8
Dari ilustrasi diatas, maka data streams dapat disimulasikan dari data statis dengan cara membagi suatu data dalam blok-blok data. Kemudian blok-blok data tersebut diolah sesuai dengan waktunya. Sebagai contoh pada Tabel III.2, data dibagi menjadi 3 blok data dimana 1 blok data = 2 tuple. Sehingga blok 1 berisi mahasiswa dengan nama A dan B, blok 2 berisi mahasiswa dengan nama C dan D, serta blok 3 berisi mahasiswa dengan nama E dan F. Kemudian dari 3 blok data tersebut akan menjadi input pada sistem sesuai dengan suatu satuan waktu tertentu. Sebagai contoh blok 1 di-input pada sistem pada waktu X, selanjutnya pada waktu t+1 blok 2 di-input pada sistem, dan pada waktu t+2 blok 3 di-input pada sistem.
22
III.2 Analisis Concept Drift Pada bab-bab sebelumnya dikatakan bahwa konsep yang ingin dipelajari sering kali bergantung pada hidden context, yang dimaksud dengan hidden context disini adalah konteks yang tidak termasuk dalam data namun mempengaruhi konsep. Sebagai contoh jika terdapat data seperti Tabel III.3, dengan konsepnya adalah credit rating dengan atributnya yaitu name, age, dan income. Konsep pada data tersebut ternyata hanya valid untuk tahun 2006 dikarenakan pada tahun 2007 konsep mengalami perubahan sesuai dengan kondisi di tahun 2007 tersebut, sebagai contoh pada Tabel III.4 terjadi concept drift karena akan mengakibatkan aturan yang telah dibuat oleh sebuah model di tahun 2006 mengalami perubahan. Tabel III.3. Data Credit Rating Tahun 2006
Name Sandy Jones Bill Lee Courtney Fox Susan Lake Claire Phips Andre Beau
Age <= 30 <= 30 31...40 > 40 > 40 31...40
Income Low Low High Med Med High
Credit Rating Fair Excellent Excellent Fair Fair Excellent
Tabel III.4. Data Credit Rating Tahun 2007
Name John Mayer Kirk Hammett Avril Lavigne Paul Gilbert Bill Gates James Hetfield
Age <= 30 31..40 <= 30 31..40 > 40 > 40
Income Low Low Med High High Med
Credit Rating Fair Fair Fair Excellent Excellent Fair
III.3 Analisis Mining Data Streams Yang membedakan mining data streams dari data mining konvensional adalah karakteristik data yang menjadi masukan sistem. Pada sistem mining data streams, sistem menerima data masukan yang bersifat dinamis yaitu merupakan aliran informasi non-stop dengan volume dan frekuensi kedatangan yang tidak tetap, sehingga sistem harus mampu melakukan pemrosesan yang terus-menerus. Sedangkan pada sistem data mining konvensional, data masukan cenderung bersifat statis, dalam arti volume data tetap dan tidak bertambah. Sehingga pada data mining konvensional pemrosesan untuk pembelajarannya hanya dilakukan sekali. Hal ini berbeda sekali
23
dengan sistem mining data streams dimana pembelajarannya dapat terjadi secara terus-menerus, yang mengakibatkan pembaharuan dari model secara terus-menerus. Dengan sifat data yang dinamis tersebut, maka terdapat beberapa tantangan pada sistem mining data streams yaitu: 1. Adanya kebutuhan sumber daya (kemampuan pemrosesan, memori, tempat penyimpanan) sistem yang besar 2. Adanya kebutuhan untuk mendapatkan respons secara cepat dari sistem jika terdapat data baru 3. Adanya kebutuhan untuk dapat menjawab suatu solusi dengan baik kapan saja walaupun data masih terus-menerus bertambah 4. Adanya kebutuhan untuk menangani permasalahan concept drift pada mining data streams. Concept drift ini merupakan permasalahan utama dari mining data streams karena sistem mining data streams dituntut agar dapat mengolah data yang terus menerus diperbaharui, sedangkan berdasarkan waktu pola-pola data tersebut dapat mengubah konsep yang ada pada model Untuk permasalahan concept drift penanganannya dapat dilakukan dengan pendekatan seperti yang telah dijelaskan pada Bagian II-2. Pendekatan tersebut membutuhkan memori yang besar yang digunakan untuk menyimpan instans-instans yang dipercaya maupun concept description dari kasus-kasus terdahulu. Jika memori tersebut semakin besar, maka waktu pemrosesan juga akan menjadi semakin lama karena banyaknya informasi yang diolah. Sehingga terdapat trade-off antara akurasi sistem dengan waktu pemrosesan sistem.
III.4 Analisis SEA Tujuan dari analisis SEA ini adalah untuk memperoleh algoritma rinci dari SEA dan dampak parameter masukan dari SEA terhadap performansi dari SEA.
III.4.1 Penerapan SEA pada Mining Data Streams Ensemble pada SEA dibangun dari data streams, sehingga selama data terus-menerus ada maka ensemble akan disesuaikan dengan keadaan terakhir dari data. Maksudnya disesuaikan disini adalah bahwa akan dilakukannya pergantian base classifier jika base classifier yang ada pada ensemble sudah tidak sesuai lagi dengan perkembangan 24
data yang ada. Sehingga dapat dikatakan bahwa ensemble dari SEA ini selalu bersifat up-to-date atau terkini. Base classifier dalam ensemble merupakan sebuah teknik klasifikasi pada data yang bersifat tetap, sebagai contoh decision tree, bayesian, backpropagation, dsb. Cara yang dilakukan SEA untuk menangani data streams adalah dengan selalu melakukan pembelajaran pada data yang baru. Pembelajaran ini tidak akan pernah berhenti selama data baru terus-menerus ada. Dalam mempelajari data, SEA melakukannya dalam blok-blok, dimana satu blok terdiri dari beberapa tuple. Sehingga satu blok akan menjadi satu classifier pada SEA, serta blok tersebut juga akan digunakan untuk proses perhitungan kualitas pada SEA. Banyaknya tuple tersebut merupakan parameter masukan dari algoritma SEA ini. Cara yang dilakukan SEA untuk menangani concept drift adalah dengan mengganti base classifier dengan classifier yang baru pada ensemble jika base classifier tersebut tidak bertugas dengan baik pada data yang baru, hal ini disebut sebagai classifier replacement method pada SEA. Sehingga untuk menghitung banyaknya concept drift yang terjadi dapat dihitung dari digantinya suatu base classifier pada ensemble. Classifier replacement method pada SEA hanya mengganti base classifier dari ensemble dengan classifier yang telah dibentuk tepat pada iterasi yang sebelumnya. Hal ini mengakibatkan banyaknya classifier yang telah dibentuk namun tidak digunakan pada ensemble. Berbeda dengan algoritma lain dimana classifier dibentuk saat ensemble sudah tidak lagi layak digunakan, algoritma jenis ini memanfaatkan data historis yang lebih baik dibandingkan SEA, namun bereaksi lebih lambat jika terdapat perubahan yang besar pada model. Hal ini merupakan trade-off yang tidak dapat dihindarkan.
III.4.2 Cara Kerja SEA Inti dari SEA adalah adanya suatu pengukuran kualitas yang jalan terus-menerus untuk memantau kualitas dari tiap base classifier yang membentuk ensemble. Sehingga perhitungan kualitas dari tiap base classifier pada ensemble akan terusmenerus diperbaharui seiring dengan adanya data baru. Perhitungan kualitas dari tiap base classifier ini memanfaatkan perhitungan kualitas yang lama dan yang baru yaitu 25
dengan cara menjumlahkannya. Pada pseusocode SEA, perhitungan kualitas ini disebut sebagai evaluate. Algoritma untuk evaluate dapat dirinci sebagai berikut: 1. Jika base classifier T yang benar dalam memprediksi data baru D lakukan langkah 2, namun jika salah lakukan langkah 5 2. Jika ensemble E benar dalam memprediksi data baru D lakukan langkah 3, namun jika salah lakukan langkah 4 3. Kualitas dari T ditingkatkan menjadi 1 - |P1 - P2| 4. Kualitas dari T ditingkatkan menjadi 1 - |P1 - PC| 5. Kualitas dari T diturunkan menjadi 1 - |PC - PT| Yang dimaksud dengan benar disini adalah bahwa T atau E dapat memenuhi persyaratan tertentu untuk dibilang bahwa prediksinya sudah dianggap benar untuk suatu blok data. Persyaratannya yaitu jika T atau E dapat memprediksi tiap tuple pada blok data dengan jumlah prediksi yang benar sebanyak minimal PC (dalam persen). Untuk penjelasan dari P1, P2, PC, PT adalah sebagai berikut: 1. P1 = Persentase dari top vote-getter P1 merupakan persentase voting tertinggi dari ensemble E dalam memprediksi data baru D. Berikut merupakan contoh hasil prediksi dari ensemble yang berukuran tetap 2 base classifier. Tuple 1: C1=Kelas 1, C2=Kelas 1 (Top-vote:2/2, 2nd highest vote: 0/2) Tuple 2: C1=Kelas 1, C2=Kelas 2 (Top-vote:1/2, 2nd highest vote: 1/2) Tuple 3: C1=Kelas 1, C2=Kelas 1 (Top-vote:2/2, 2nd highest vote: 0/2) Tuple 4: C1=Kelas 1, C2=Kelas 1 (Top-vote:2/2, 2nd highest vote: 0/2) Tuple 5: C1=Kelas 1, C2=Kelas 2 (Top-vote:1/2, 2nd highest vote: 1/2) Maka P1 = ((2/2+1/2+2/2+2/2+1/2)/5)*100%=80% 2. P2 = Persentase dari second-highest vote-getter P2 merupakan persentase voting kedua tertinggi dari ensemble E dalam memprediksi data baru D. Dari contoh sebelumnya, dapat dihitung P2=((0/2+1/2+0/2+0/2+1/2)/5)*100%=20% 3. PC = Persentase dari kelas yang benar PC merupakan persentase kelas yang benar yang diharapkan, untuk dapat memprediksi suatu data baru D. Jadi PC merupakan parameter masukan dari algoritma SEA ini. Sebagai contoh jika kita menetapkan PC=75%, maka untuk 26
dikatakan bahwa sebuah base classifier T itu benar adalah jika base classifier T minimal dapat memprediksi data baru D dengan tingkat kebenaran 75%. 4. PT = Persentase dari prediksi dari base classifier baru T PT merupakan persentase kelas yang benar, yang diprediksi oleh suatu base classifier T pada suatu data baru. Sebagai contoh pada data baru terdapat jumlah tuple sebanyak 5, maka jika 4 tuple diprediksikan dengan benar oleh base classifier T dan 1 tuple diprediksikan salah oleh base classifier T maka PT=4/5*100%=80% Untuk lebih memperjelas pseudocode dari SEA, maka pseudocode tersebut akan dijelaskan satu-persatu sebagai berikut: 1. while more data points are available Pada bagian ini data baru terus-menerus ditunggu, dan jika data baru tersebut telah ada maka algoritma dari SEA baru dilanjutkan. 2. read d points, creating training set D Pengertian untuk points disini adalah tuple, sehingga d points adalah membaca sebanyak d tuple. Jadi untuk statement ini yang dikerjakan adalah membaca data baru tersebut dalam blok (1 blok = d points), kemudian blok tersebut akan menjadi training set dari classifier. 3. build classifier Ci using D Bangun classifier dari training set yang telah dibuat pada langkah 2. 4. evaluate classifier Ci-1 on D Evaluasi classifier yang telah dibuat pada iterasi sebelumnya jika ada dan bukan merupakan bagian dari ensemble. Evaluasi ini mengikuti langkahlangkah dari penjelasan evaluate yang telah dirinci sebelumnya. 5. evaluate all classifier in ensemble E on D Evaluasi tiap classifier yang ada pada ensemble. Evaluasi ini mengikuti langkah-langkah dari penjelasan evaluate yang telah dirinci sebelumnya. 6. if E not full Melakukan pengujian apakah ensemble sudah penuh atau belum 7. insert Ci-1 Jika ensemble belum penuh, maka masukan classifier yang telah dibuat pada iterasi sebelumnya jika ada pada ensemble. Dalam kata lain disini classifier tersebut menjadi bagian dari ensemble. 27
8. else if Quality(Ci-1) > Quality(Ej) for some j Jika ensemble penuh, maka lakukan pengujian apakah terdapat classifier pada ensemble yang memiliki nilai kualitas yang lebih buruk dari classifier yang telah dibuat pada iterasi sebelumnya. 9. replace Ej with Ci-1 Jika terdapat classifier pada ensemble yang memiliki nilai kualitas yang lebih buruk dari classifier yang telah dibuat pada iterasi sebelumnya, maka classifier pada ensemble tersebut diganti dengan classifier yang baru.
III.4.3 Input dan Output dari SEA Dari hasil analisis pada bagian III.2.1 dapat disimpulkan bahwa input dari SEA ini adalah sebagai berikut: 1. Data streaming 2. Ukuran tetap ensemble 3. Jumlah tuple yang ditangani oleh sebuah base classifier 4. Faktor kebenaran (PC) Output dari SEA merupakan sebuah model yang selalu terkini dengan data yang baru. Model tersebut kemudian dapat digunakan untuk memprediksikan data dengan label kelas yang belum diketahui.
III.4.4 Algoritma Rinci SEA Berikut ini akan diperinci pseudocode dari SEA, pseudocode ini dirinci dalam bahasa algoritmik. Algoritma utama SEA adalah sebagai berikut: Kamus i : integer {Counter classifier yg dibentuk} j : integer {Counter classifier pada ensemble} n : integer {Counter tuple data yang telah dibaca} nTuples : integer {Banyaknya tuple data yang dibaca per blok}
28
UkrE : integer {Banyaknya base classifier pada ensemble} Pc : real {Faktor correctness yang harus dicapai saat memprediksi suatu blok data, contoh 80% = 0.8} DB : data {Asumsi DB merupakan suatu tabel data dalam basis data} D : data {Asumsi D merupakan suatu tabel data dalam basis datae} C_i-1 : classifier {Asumsi C_i-1 merupakan suatu pointer array dimana pointer tersebut menunjuk kesuatu model classifier tertentu dan C_i-1 merupakan classifier yang dibentuk pada iterasi yang sebelumnya} KualitasC_i-1 : real {KualitasC merupakan nilai kualitas C_i-1} C_i : classifier {Asumsi C_i merupakan suatu pointer array dimana pointer tersebut menunjuk kesuatu model classifier tertentu dan C_i merupakan classifier dibentuk pada iterasi sedang terjadi} E : array [1..UkuranEnsemble] of classifier {Classifier yang terdapat dalam ensemble} KualitasE : array [1..UkuranEnsemble] of real {KualitasE merupakan nilai kualitas dari elemen-elemen pada E} IdxKMin : integer {Indeks dari elemen E yang memiliki nilai kualitas yang lebih buruk daripada KualitasC_i-1, jika terdapat beberapa kemungkinan maka diambil nilai yang terburuk} Algoritma input(nTuples) {Terima masukan dari user banyaknya tuple dalam 1 blok} input(UkrE) {Terima masukan dari user ukuran dari ensemble} input(Pc) {Terima masukan dari user faktor correctnessnya} C_i-1 ← nil {Inisialisasi awal C_i-1}} C_i ← nil {Inisialisasi awal C_i} j traversal [1..UkrE] {Inisialisasi awal nilai kualitas dari E} ··KualitasE[j] ← 0 i ← 0 n ← 1 {Asumsi indeks elemen pertama data adalah 1} while true do {Lakukan pengulangan secara terus menerus} ··if BacaData(DB,n,nTuples) = true then {Cek data baru} ····BuatTrainingSet(DB,D,n,nTuples) {Bangun training set dari DB} ····BuatClassifier(C_i,D) {Bangun classifier dari training set tsb} ····if C_i-1 <> nil then {Cek apakah C_i-1 kosong} ······Evaluasi(C_i-1,E,D,KualitasC_i-1,Pc,nTuples,UkrE) {Evaluasi C_i-1} ······j traversal [1..UkrE] {Evaluasi tiap elemen E} ········Evaluasi(E[j],E,D,KualitasE,Pc,nTuples,UkrE) {Cek apakah E penuh} ······if CekEPenuh(E,UkrE) = false then ········TambahE(E,C_i-1,UkrE) {Tambah C_i-1 pada E} ······else ········IdxKMin ← 0 {Inisialisasi IdxKMin } ········j traversal [1..UkrE] {Cek kualitas pada E} ··········if KualitasC_i-1 > KualitasE[j] then ············if IdxKMin = 0 then ··············IdxKualitasMin ← j ············else
29
··············if KualitasE[j] < KualitasE[IdxKMin] then ················IdxKMin ← j ········if IdxKMin <> 0 then ··········GantiE(E,IdxKMin,C_i-1,UkrE) {Ganti E[IdxKMin] dgn C_i-1} ····i ← i+1 ····n ← n+nTuples ····C_i-1 ← C_i ····KualitasC_i-1 ← 0
Berikut ini merupakan deklarasi prosedur-prosedur dan fungsi-fungsi yang digunakan pada algoritma SEA. function BacaData(DB:data, n:integer, nTuples:integer) → boolean {true jika data dari indeks ‘n’ sampai indeks ‘n’ + ‘nTuples’ ada, false jika sebaliknya} procedure BuatTrainingSet(DB:data, D:data, n:integer, nTuples:integer) {Membangun training set ‘D’ dari ‘DB’} {I.S. : ‘DB’ tersedia dengan baik} {F.S. : ‘D’ diinisialisasi kosong, kemudian ‘DB’ dibaca sebanyak ‘nTuples’ dari indeks ‘n’} procedure BuatClassifier(C_i:classifier, D:data) {Bangun classifier ‘C_i’ dari training set ‘D’} {I.S. : ‘D’ tersedia dengan baik} {F.S. : ‘C_i’ diinisialisasi kosong, kemudian classifier ‘C_i’ dibangun diatas ‘D’} procedure Evaluasi(C:classifier, E:array of classifier, D:data, Kualitas:real, Pc:real, nTuples: integer, UkrE: integer) {Hitung kualitas dari ‘C’ terhadap training set ‘D’, ‘Kualitas’ merupakan nilai rata-rata dari nilai kualitas C} {I.S. : ‘D’ tersedia dengan baik} {F.S. : ‘Kualitas’ terhitung dengan baik } function CekEPenuh(E:array of classifier, UkrE: integer) → boolean {true jika E penuh, false jika sebaliknya} procedure TambahE(E:array of classifier, C:classifier, UkrE: integer) {Menambah classifier ‘C’ sebagai elemen pada ensemble ‘E’} {I.S. : ‘C’ tersedia dengan baik} {F.S. : Classifier ‘C’ merupakan elemen dari ensemble ‘E’ } procedure GantiE(E:array of classifier, IdxKMin:integer, C:classifier) {Menghapus classifier pada ensemble ‘E’ dengan indeks ke ‘IdxKMin’, kemudian pada indeks tersebut dimasukan classifier ‘C’ } {I.S. : ‘C’ tersedia dengan baik, ‘IdxKMin’ bernilai > 0 dan < Ukuran Ensemble} {F.S. : Classifier ‘C’ mengganti elemen dari ensemble ‘E’ dengan indeks ke ‘IdxKMin’ }
30
Berikut ini merupakan penjabaran dari deklarasi fungsi dan prosedur yang digunakan pada SEA. Diasumsikan untuk pengaksesan tabel dari basis data disamakan seperti sifat pada array, dan untuk prosedur ‘BuatClassifier’, ‘PredictC’, dan ‘PredictE’ tidak akan dirinci pada bab ini karena classifier yang dapat digunakan pada SEA tidak terpaku akan suatu classifier tertentu. function BacaData(DB:data, n:integer, nTuples:integer) → boolean Kamus i : integer Algoritma i ← 0 while ((DB[n+i] <> EOF) and (i < nTuples)) do ··i ← i+1 if i=nTuples then ··→ true else ··→ false procedure BuatTrainingSet(DB:data, D:data, n:integer, nTuples:integer) Kamus i : integer Algoritma i ← 0 while ((DB[n+i] <> EOF) and (i < nTuples)) do ··D[i+1] ← DB[n+i] ··i ← i+1 procedure Evaluasi(C:classifier, E:array of classifier, D:data, Kualitas:real, Pc:real, nTuples: integer, UkrE: integer) Kamus i : integer jmlh_bnr : integer kelas1, kelas2 : integer P1, P2, Pt : real Algoritma jmlh_bnr ← 0 i traversal [1..nTuples] ··if PredictC(C,D[i]) = true then jmlh_bnr ← jmlh_bnr+1 {PredictC diasumsikan merupakan fungsi yang mengembalikan nilai true jika classifier mampu memprediksi suatu tuple tertentu, dan false jika sebaliknya} Pt ← jmlh_bnr/nTuples if Pt > Pc then ··jmlh_bnr ← 0 ··P1 ← 0 ··P2 ← 0 ··i traversal [1..nTuples] ····if PredictE(E,D[i],kelas1,kelas2) = true then {PredictE diasumsikan merupakan fungsi yang mengembalikan nilai true jika ensemble mampu memprediksi suatu tuple tertentu, dan false jika sebaliknya. Banyaknya voting terbanyak ditampung pada kelas1 dan banyaknya voting terbanyak kedua ditampung pada kelas2} ······jmlh_bnr ← jmlh_bnr+1 ····P1 ← P1+kelas1 ····P2 ← P2+kelas2 ··P1 ← P1/nTuples ··P2 ← P2/nTuples
31
··if (jmlh_bnr/nTuples) > Pc then ····Kualitas ← Kualitas + (1 – Abs(P1-P2)) {Abs diasumsikan merupakan fungsi yang mengembalikan nilai mutlak} ··else ····Kualitas ← Kualitas + (1 – Abs(P1-Pc)) else ··Kualitas ← Kualitas + (1 – Abs(Pc-Pt)) function CekEPenuh(E:array of classifier, UkrE: integer) → boolean Kamus i : integer Algoritma i traversal [1..UkrE] ··if E[i] = nil then ····→ false → true procedure TambahE(E:array of classifier, C:classifier, UkrE: integer) Kamus i : integer cek : boolean Algoritma cek ← false i ← 1 while ((cek = false) and (i <= UkrE)) do ··if E[i] = nil then ····E[i] ← C ··i ← i+1 procedure GantiE(E:array of classifier, IdxKMin:integer, C:classifier) Kamus Algoritma E[IdxKMin] ← C
III.4.5 Analisis Parameter Masukan Streaming Ensemble Algorithm (SEA) Terdapat beberapa hal yang perlu dianalisis dari parameter masukan SEA yaitu: 1. Ukuran tetap ensemble 2. Jumlah tuple yang akan ditangani sebuah base classifier 3. Faktor kebenaran (PC) Ukuran tetap ensemble sangat mempengaruhi hasil dari SEA, sehingga semakin banyak base classifier pada ensemble tersebut maka kebutuhan memori akan semakin besar dan waktu pemrosesan pun akan semakin lama, namun akan menyimpan historis concept description yang lebih banyak. Percobaan yang nantinya akan dilakukan adalah sebagai berikut:
32
1. Variabel yang diubah-ubah: Ukuran tetap ensemble 2. Variabel yang nilainya tetap: a. Jumlah data pelatihan dan isinya b. Jumlah tuple yang akan ditangani sebuah base classifier c. Faktor kebenaran (PC) 3. Hal yang diteliti: a. Akurasi data yang tidak dilibatkan dalam pelatihan b. Akurasi data yang dilibatkan dalam pelatihan c. Lamanya proses pelatihan Jumlah tuple yang akan ditangani sebuah base classifier akan mempengaruhi keahlian sebuah classifier, sehingga semakin banyak jumlah tuple dalam satu blok maka classifier tersebut harus menguasai bahan pembelajaran yang lebih banyak. Analoginya adalah sebagai berikut, jika terdapat seseorang bernama A dan B dengan kemampuan otak yang sama maka jika A mempelajari Fisika dan Biologi sedangkan B hanya mempelajari Fisika. Maka dikatakan bahwa yang paling menguasai Fisika adalah B karena B mendedikasikan belajarnya hanya untuk Fisika, namun jika ditanya yang memiliki jenis pengetahuan yang lebih banyak adalah A karena A telah mempelajari Fisika dan Biologi. Sehingga dapat disimpulkan bahwa semakin banyak tuple dalam satu blok maka classifier pun tingkat penguasaan bahannya (tingkat akurasi) akan menurun, namun jenis pengetahuannya akan bertambah. Percobaan yang nantinya akan dilakukan adalah sebagai berikut: 1. Variabel yang diubah-ubah: Jumlah tuple yang akan ditangani sebuah base classifier 2. Variabel yang nilainya tetap: a. Jumlah data pelatihan dan isinya b. Ukuran tetap ensemble c. Faktor kebenaran (PC) 3. Hal yang diteliti: a. Akurasi data yang tidak dilibatkan dalam pelatihan b. Akurasi data yang dilibatkan dalam pelatihan c. Lamanya proses pelatihan
33
Faktor kebenaran (PC) merupakan faktor yang memperketat proses penyeleksian classifier yang layak menjadi bagian dari ensemble. Sehingga sudah jelas bahwa semakin besar PC maka akan mempersulit classifier untuk lulus dari seleksi. Percobaan yang nantinya akan dilakukan adalah sebagai berikut: 1. Variabel yang diubah-ubah: Faktor kebenaran (PC) 2. Variabel yang nilainya tetap: a. Jumlah data pelatihan dan isinya b. Ukuran tetap ensemble c. Jumlah tuple yang akan ditangani sebuah base classifier 3. Hal yang diteliti: a. Akurasi data yang tidak dilibatkan dalam pelatihan b. Akurasi data yang dilibatkan dalam pelatihan c. Lamanya proses pelatihan
III.5 Kesimpulan Hasil Analisis Dapat disimpulkan beberapa hal mengenai SEA, yaitu: 1. Dalam mengatasi permasalahan data streams, SEA selalu melakukan pembelajaran pada data yang baru 2. Dalam mengatasi permasalahan concept drift, SEA melakukannya dengan dengan cara menggantikan base classifier yang sudah tidak sesuai konsepnya dengan classifier yang lebih tepat 3. Adanya fungsi perhitungan kualitas classifier yang selalu berjalan tiap sebuah blok data diproses. Hal ini untuk memantau kelayakan dari tiap base classifier terhadap data yang baru
III.6 Analisis Studi Kasus Studi kasus yang dipilih adalah dari [KOH96]. Data set tersebut adalah mengenai apakah pendapatan dari penduduk melebihi $50.000 per tahun berdasarkan 14 fitur demografisnya. Missing value pada data tersebut telah dihilangkan. Berikut ini merupakan keterangan dari data set tersebut: 1. Jumlah data pelatihan: 32.561 2. Jumlah data pelatihan jika missing value dihilangkan: 30.162 3. Jumlah data test: 16.281
34
4. Jumlah data test jika missing value dihilangkan: 15.060 5. Jumlah atribut: 15 Untuk keterangan dari atribut dari data set tersebut adalah sebagai berikut: 1. Nama atribut: Age Tipe data: Continuous / Numeric 2. Nama atribut: Workclass Tipe data: Categorical / Nominal Kategori: Private, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Without-pay, Never-worked 3. Nama atribut: FnlWgt Tipe data: Continuous / Numeric 4. Nama atribut: Education Tipe data: Categorical / Nominal Kategori: Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool 5. Nama atribut: Education_num Tipe data: Continuous / Numeric 6. Nama atribut: Marital_status Tipe data: Categorical / Nominal Kategori: Married-civ-spouse,
Divorced,
Never-married,
Separated,
Widowed, Married-spouse-absent, Married-AF-spouse 7. Nama atribut: Occupation Tipe data: Categorical / Nominal Kategori: Tech-support, Craft-repair, Other-service, Sales, Exec-managerial, Prof-specialty, clerical,
Handlers-cleaners,
Farming-fishing,
Machine-op-inspct,
Transport-moving,
Adm-
Priv-house-serv,
Protective-serv, Armed-Forces 8. Nama atribut: Relationship Tipe data: Categorical / Nominal Kategori: Wife,
Own-child,
Husband,
Unmarried
35
Not-in-family,
Other-relative,
9. Nama atribut: Race Tipe data: Categorical / Nominal Kategori: White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black 10. Nama atribut: Sex Tipe data: Categorical / Nominal Kategori: Female, Male 11. Nama atribut: Capital_gain Tipe data: Continuous / Numeric 12. Nama atribut: Capital_loss Tipe data: Continuous / Numeric 13. Nama atribut: Hours_per_week Tipe data: Continuous / Numeric 14. Nama atribut: Native_country Tipe data: Categorical / Nominal Kategori: United-States,
Cambodia,
England,
Puerto-Rico,
Canada,
Germany, Outlying-US(Guam-USVI-etc), India, Japan, Greece, South, China, Cuba, Iran, Honduras, Philippines, Italy, Poland, Jamaica, Vietnam, Mexico, Portugal, Ireland, France, DominicanRepublic, Laos, Ecuador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua, Scotland, Thailand, Yugoslavia, ElSalvador, Trinadad&Tobago, Peru, Hong, Holand-Netherlands 15. Nama atribut: Income Tipe data: Kelas Kategori: >50K, ≤50K
36