Anda di halaman 1dari 4

INCREASING ACCURACY & SELECTING MODEL

(MENINGKATKAN KETELITIAN & PEMILIHAN MODEL)





INCREASING ACCURACY

Terdapat 2 metode yang dapat digunakan untuk meningkatkan ketelitian dalam proses
klasifikasi dan prediksi. Kedua metode tersebut adalah bagging dan boosting. Metode-metode
ini merupakan contoh dari ensemble method, yaitu metode yang menggunakan kombinasi
dari suatu model.

1. Metode Bagging
Pada dasarnya, metode bagging merupakan metode untuk meningkatkan ketelitian dalam
proses klasifikasi dan prediksi dengan cara membangkitkan kombinasi dari suatu model
dan hasil yang paling banyak terdapat dalam kombinasi model tersebut (majority vote)
merupakan hasil klasifikasi atau prediksi yang dipilih. Berikut ini adalah algoritma dari
metode bagging:

Input:
D, suatu himpunan yang terdiri dari sebanyak d training tuple
K, banyaknya kombinasi model
Suatu learning scheme, misalnya algoritma decision tree, backpropagation, dan
sebagainya.

Output:
Suatu model komposit M*

Langkah-langkah:
1) For i=1 to k do
2) Buat bootstrap sample Di dengan melakukan sampling pada D;
3) Gunakan Di untuk menurunkan sebuah model Mi;
4) Endfor

Kemudian penggunaan model komposit tersebut pada suatu tuple X adalah sebagai
berikut:
1) If classification then
2) Gunakan setiap model untuk mengklasifikasikan X dan hasil yang diambil
adalah hasil yang paling banyak keluar (majority vote);
3) If prediction then
4) Gunakan setiap model untuk memprediksi nilai X dan hasil yang diambil
adalah nilai prediksi rata-rata;

Dengan menggunakan metode bagging, tingkat ketelitian dapat meningkat karena adanya
model komposit M* tersebut menyebabkan turunnya nilai varian dari masing-masing
classifier.




2. Metode Boosting
Pada dasarnya, metode boosting juga dapat meningkatkan ketelitian dalam proses
klasifikasi dan prediksi dengan cara membangkitkan kombinasi dari suatu model, tetapi
hasil klasifikasi atau prediksi yang dipilih adalah model yang memiliki nilai bobot paling
besar. Jadi, setiap model yang dibangkitkan memiliki atribut berupa nilai bobot. Salah
satu algoritma boosting yang populer adalah Adaboost. Pada algoritma Adaboost ini,
pertama-tama nilai bobot untuk setiap tuple pada himpunan D diinisialisasi sebesar 1/d
(d=jumlah anggota himpunan D). Setelah suatu model Mi dibangkitkan, kemudian
dihitung tingkat kesalahannya (error rate), dengan cara menjumlahkan nilai bobot dari
setiap tuple yang misclassified (salah klasifikasi) pada Mi. Error rate ini dapat dihitung
menggunakan rumus:
rror(H) =
d
]
rr(X)
Dimana err(Xj) merupakan misclassified error dari tuple Xj. Bila tuple tersebut tergolong
misclassified, maka nilai err(Xj) adalah 1, sedangkan bila tidak nilainya 0. Bila error rate
Mi melebihi 0,5, model tersebut tidak digunakan, kemudian akan dibangkitkan lagi
training set Di yang baru, yang akan menurunkan model Mi yang baru pula. Setelah
suatu tuple pada putaran ke-i terklasifikasi dengan benar, maka nilai bobotnya dikalikan
dengan error(Mi)/(1-error(Mi)). Setelah didapatkan nilai bobot dari seluruh tuple yang
terklasifikasi dengan benar, lalu nilai bobot dari seluruh tuple (termasuk yang
misclassified) dinormalisasikan, dengan cara mengalikannya dengan jumlah nilai bobot
yang lama (sebelumnya), lalu dibagi dengan jumlah nilai bobot yang baru. Berikut ini
adalah langkah-langkah dari algoritma Adaboost:

Input:
D, suatu himpunan yang terdiri dari sebanyak d class-labeled training tuple
K, banyaknya classifier yang akan dibangkitkan
Suatu classification learning scheme

Output:
Suatu model komposit M*

Langkah-langkah:
1) Inisialisasi nilai bobot untuk setiap tuple pada himpunan D sebesar 1/d;
2) For i=1 to k do
3) Lakukan sampling pada himpunan D untuk mendapatkan Di;
4) Gunakan Di untuk menurunkan sebuah model Mi;
5) Hitung tingkat kesalahan (error rate) Mi;
6) If error(Mi)>0,5 then
7) Inisialisasi lagi nilai bobot sebesar 1/d;
8) Kembali ke langkah nomor 3 dan coba lagi;
9) Endif;
10) For (setiap tuple pada Di yang sudah terklasifikasi dengan benar) do
11) Kalikan nilai bobot pada tuple dengan (error(Mi)/(1-error(Mi)));
12) Normalisasi nilai bobot pada setiap tuple;
13) Endfor



Kemudian penggunaan model komposit tersebut untuk mengklasifikasikan suatu tuple X
adalah sebagai berikut:
1) Inisialisasi nilai bobot pada setiap class sebesar 0;
2) For i=1 to k do
3) Wi=log((1-error(Mi))/(error(Mi))); (Wi = nilai bobot dari classifier Mi)
4) C = Mi(X); (c merupakan class prediksi untuk X dari Mi)
5) Tambahkan nilai Wi pada nilai bobot untuk kelas c;
6) Endfor
7) Pilih class dengan nilai bobot terbesar sebagai hasilnya;



SELECTING MODEL

Bila kita memiliki 2 model, yaitu M1 dan M2, baik dalam proses klasifikasi maupun prediksi,
dan kita telah melakukan 10-fold-cross-validation pada masing-masing model untuk
mendapatkan tingkat kesalahan rata-rata (mean error rate) dari kedua model tersebut,
bagaimana kita dapat menentukan model manakah yang terbaik? Namun, nilai mean error
rate ini hanyalah estimasi atau perkiraan kesalahan pada populasi data yang sebenarnya. Bisa
jadi meskipun nilai mean error rate M1 dan M2 terlihat berbeda, tetapi sebenarnya perbedaan
tersebut tidaklah signifikan secara statistik.

Estimating Confidence Intervals

Untuk mengetahui apakah terdapat perbedaan yang sebenarnya pada nilai mean error rate dari
kedua model tersebut, kita harus melakukan pengujian signifikansi statistik (test of statistical
significance). Di samping itu, kita harus mendapatkan batas keyakinan (confidence limit)
pada nilai mean error rate tersebut, sehingga kita dapat membuat pernyataan seperti berikut:
Suatu model dianggap lebih baik dari model lainnya dengan batas kesalahan +/- 4%.

Hal-hal yang harus dilakukan dalam pengujian statistik ini adalah sebagai berikut. Setelah
mendapatkan nilai mean error rate dari setiap model, dapat diketahui bahwa error rate yang
dihasilkan tersebut mengikuti distribusi t dengan derajat kebebasan k-1 (dalam hal ini k=10).
Oleh karena itu, kita dapat melakukan pengujian hipotesis menggunakan t-test atau Students
t-test. Hipotesis kita adalah bahwa kedua model tersebut sama, dalam artian perbedaan nilai
mean error rate antara kedua model tersebut adalah nol. Bila kita menolak hipotesis tersebut,
maka dapat dikatakan bahwa perbedaan antara kedua model tersebut adalah signifikan secara
statistik, maka kita dapat memilih model yang memiliki nilai mean error rate lebih rendah.

Dalam data mining, kita dapat melakukan single test pairwise comparison dari kedua model
tersebut untuk setiap putaran dalam 10-fold-cross-validation. Untuk putaran ke-i dalam 10-
fold-cross-validation, digunakan partisi yang sama untuk setiap model sehingga didapatkan
nilai error rate M1 dan M2, yang dinyatakan sebagai err(M1) dan err(M2). Lalu, nilai error
rate M1 dan M2 masing-masing dirata-rata sehingga didapatkan mean error rate, yang
dinyatakan sebagai rr (M1) dan rr (M2). Nilai varian perbedaan antara kedua model
tersebut dinyatakan sebagai var(M1-M2). Oleh karena itu, t-statistic untuk pairwise
comparison kedua model tersebut dapat dihitung menggunakan rumus sebagai berikut:
=
rr (H1) rr (H2)
or(H1 H2)

dimana:
or(H1 H2) =
1

|rr(H1) rr(H2) (
k
=1
rr (H1) rr (H2))]
2


Untuk mengetahui apakah M1 dan M2 memiliki perbedaan yang signifikan, kita menghitung
t dan memilih tingkat signifikansi (sig), misalnya 5%. Kemudian kita lihat pada tabel
distribusi t, nilai z = sig/2 (dalam kasus ini berarti 0,025), dimana z merupakan batas
kepercayaan. Bila nilai t > z atau t < -z, maka kita dapat menolak hipotesis yang menyatakan
M1 dan M2 adalah sama, dan dapat disimpulkan bahwa antara M1 dan M2 terdapat
perbedaan yang signifikan secara statistik. Sedangkan bila nilai t < z atau t > -z, dapat
disimpulkan bahwa antara M1 dan M2 tidak terdapat perbedaan yang signifikan secara
statistik.

Bila tidak menggunakan single test, kita dapat melakukan two set test, maka dilakukan t-test
nonpaired, dimana nilai varian antara rata-rata dari kedua model tersebut dapat dihitung
dengan rumus sebagai berikut:
or(H1 H2) =
_
or(H1)
1
+
or(H2
2


dimana k1 dan k2 merupakan jumlah sampel cross-validation.


ROC Curves

Kurva ROC adalah alat visual yang berguna untuk membandingkan dua model
klasifikasi. ROC kepanjangan dari Receiver Operating Characteristic. Kurva ROC
menunjukkan trade-off antara true positive rate (proporsi tuple positif yang teridentifikasi
dengan benar) dan false positive rate (proporsi tuple negatif yang teridentifikasi salah sebagai
positif) dalam suatu model. Dengan kurva ROC, kita dapat melihat trade off antara tingkat
dimana suatu model dapat mengenali tuple positif secara akurat dan tingkat dimana model
tersebut salah mengenali tuple negatif sebagai tuple positif. Kurva ROC terdiri atas sumbu
vertikal yang menyatakan true positive rate, dan sumbu horizontal yang menyatakan false
positive rate. Jika memiliki true positif (sebuah tupel positif yang benar diklasifikasikan)
maka pada kurva ROC akan bergerak ke atas dan plot titik. Sebaliknya, jika tupel milik kelas
tidak ketika memiliki false positif, maka kurva ROC bergerak ke kanan dan plot titik.
Proses ini diulang untuk setiap tupel tes (setiap kali bergerak ke atas kurva untuk true positif
atau terhadap hak untuk false positif). Untuk mengukur ketelitian dari suatu model, kita dapat
mengukur area di bawah kurva ROC.