Teknik klasifikasi

Dalam perlombongan data, klasifikasi merupakan suatu teknik yang digunakan untuk membina model ramalan bagi meramal kelas sasaran bagi suatu set data. Bagi kes yang melibatkan dua kelas sasaran, ia dikenali sebagai klasifikasi binari atau klasifikasi dua kelas. Manakala klasifikasi yang melibatkan lebih daripada dua kelas sasaran dikenali sebagai klasifikasi berbilang kelas. Terdapat pelbagai teknik klasifikasi yang boleh digunakan bagi membina model ramalan, antaranya seperti berikut: 

### Naïve Bayes
Naïve Bayes merupakan teknik klasifikasi yang dibina dengan berpandukan nilai kebarangkalian yang dikira menggunakan teorem bayes. Persamaan yang digunakan bagi mengira kebarangkalian dalam Naïve Bayes adalah seperti berikut:

kebarangkalian, P(A|B)={P(B|A)P(A) \over P(B)}

Elemen utama teknik Naïve bayes adalah ia beranggapan bahawa semua fitur adalah tidak bersandar antara satu sama lain . Anggapan ini jelas bertentangan dengan realiti data dunia sebenar di mana lazimnya fitur-fitur adalah bersandaran antara satu sama lain. Namun begitu, pengelas Naïve Bayes masih mampu melaksanakan tugas pengelas dengan baik, di mana ia popular digunakan dalam bidang pengelasan dokumen.

Anggapan bahawa semua fitur adalah tidak bersandar membolehkan proses pengiraan kebarangkalian dilakukan dengan mudah dan pantas, serta melibatkan kos pengkomputeran yang minimum. Oleh itu pengelas Naïve Bayes sesuai digunakan untuk memproses data yang bersaiz besar. Satu lagi ciri khusus teknik ini adalah ia tidak terkesan dengan nilai hilang di mana dalam pengiraan kebarangkalian untuk membina suatu model, ia terus mengabaikan nilai yang hilang . 

### Regresi logistik (''Logistic Regressio''n)
Regresi logistik merupakan salah satu teknik pengelasan yang mudah dan ringkas untuk meramal kelas binari. Ia menggunakan fungsi logistik untuk menentukan suatu kelas. Antara kelebihan regresi logistik adalah ia berupaya memproses pemboleh ubah tak bersandar yang berjenis nominal dan juga numerikal. Walau bagaimanapun, teknik ini tidak sesuai digunakan dalam masalah pengelasan tidak linear kerana ia mengandaikan hubungan linear antara pemboleh ubah tidak bersandar dengan pemboleh ubah bersandar.

### k-Jiran terdekat (''k-Nearest Neighbor'')
k-Jiran Terdekat adalah berasaskan prinsip bahawa *instance* yang mempunyai ciri-ciri yang sama berada dalam jarak yang berhampiran antara satu sama lain. Dalam teknik ini, pengelasan ditentukan berdasarkan jarak terdekat *instance*. Secara umumnya, ia dilaksanakan melalui tiga langkah:

* Langkah pertama: Jarak di antara *instance* yang ingin diramal dengan *instance* latihan dikira.
* Langkah kedua: Sebanyak K *instance* (atau digelar sebagai jiran) yang mempunyai jarak paling hampir di kenal pasti.
* Langkah ketiga: Kelas ditentukan mendasarkan kelas K jiran terdekat berkenaan menggunakan undi majoriti.
 
k-Jiran Terdekat merupakan pengelas yang agak ringkas kerana secara umumnya ia hanya memerlukan penetapan dua parameter hiper sahaja iaitu fungsi jarak (*distance function*) dan  nilai k. 

* Fungsi jarak (*distance function*) - Antara fungsi jarak (*distance function*) yang boleh digunakan bagi mengira jarak di antara *instance* adalah Euclidean dan Manhattan. 
* Nilai K - Ditentukan mengikut kesesuaian. Nilai K yang terlalu kecil boleh mengakibatkan masalah terlebih padanan manakala nilai K yang terlalu besar mengurangkan ketepatan model. Bagi membantu pemilihan nilai K yang bersesuaian, ralat pengesahan dijadikan penanda aras. Nilai ralat pengesahan yang minima menandakan nilai K yang optimum. Selain itu, memandangkan undi majoriti digunakan untuk memilih kelas sasaran, kebiasaannya nilai K dipilih daripada nombor ganjil bagi mengelakkan isu undi seri. 
 
Kelemahan ketara teknik k-Jiran Terdekat adalah ia memerlukan kos pengkomputeran yang tinggi dan juga sangat sensitif terhadap fitur yang tidak relevan. 

### Mesin Sokongan Vektor (''Support Vector Machine'')

Konsep asas Mesin Sokongan Vektor adalah mencari hiper satah optimum yang dapat memisahkan set data kepada dua kelas . Bagi model Mesin Sokongan Vektor yang hanya melibatkan dua pemboleh ubah tak bersandar, hiper satah boleh digambarkan sebagai satu garis yang memisahkan antara dua kelas. Vektor daripada kedua-dua kelas yang berada paling hampir dengan hiper satah dikenali sebagai vektor sokongan. Jarak di antara sokongan vektor tersebut dengan hiper satah disebut sebagai margin. Semakin besar saiz margin, model pengelas yang semakin baik dapat dihasilkan.

Daripada sudut data, Mesin Sokongan Vektor hanya boleh memproses data berjenis numerik. Konsep asal Mesin Sokongan Vektor adalah untuk pengelasan binari, namun ia dapat dikembangkan untuk turut digunakan bagi kes pengelasan berbilang kelas.

### Pohon Keputusan (''Decision Tree'')

Pohon keputusan membuat pengelasan berdasarkan nilai fitur yang disusun dalam bentuk yang menyerupai sebatang pohon. Rajah Pohon Keputusan menunjukkan contoh model pengelas Pohon Keputusan. Struktur mirip pohon dibina bermula dengan nod akar. Seterusnya nod akar ini dipisahkan kepada cabang-cabang yang menghasilkan nod-nod dalaman. Proses pemisahan nod dalaman diteruskan sehingga ia tidak dapat dipisahkan lagi. Nod terakhir digelar sebagai nod daun. Nod akar dan nod dalaman merupakan perwakilan kepada fitur manakala nod daun adalah kelas sasaran. Pemilihan nod bagi proses pemisahan boleh dilaksanakan dalam beberapa cara, antaranya berdasarkan nilai entropi  dan *information gain.*

Kedalaman pohon dan saiz daun diset ke nilai tertentu berdasarkan model yang ingin dibangunkan. Semakin besar saiz pohon, masa pemprosesan dan kompleksiti model akan turut meningkat. Pohon bersaiz besar juga cenderung mengalami masalah terlebih padanan. Isu ini ditangani melalui proses yang dikenali sebagai pemangkasan. Ia merupakan proses di mana saiz pokok dikurangkan dengan menggantikan nod dalaman tertentu kepada nod daun. Kelebihan utama algoritma Pohon Keputusan adalah ia amat mudah untuk difahami kerana menggunakan perwakilan grafik yang sangat intuitif. Selain itu, teknik ini juga tidak membuat sebarang anggapan terhadap taburan data dan ia memproses nilai nominal dengan lebih baik.

### Hutan Rawak (''Random Forest'')

Hutan Rawak merupakan antara teknik pengelasan yang semakin popular dan menghasilkan model pengelas dengan ketepatan tinggi dalam pelbagai jenis set data. Ia mula-mula diperkenalkan oleh Breiman. Hutan Rawak merupakan teknik ensembel di mana ia terdiri daripada kesatuan beberapa Pohon Keputusan.

Merujuk Rajah Contoh Model Pengelasan Hutan Rawak, beberapa Pohon Keputusan dibina menggunakan subset fitur dan subset data latihan yang dipilih secara rawak. Kelas sasaran ditentukan berdasarkan setiap pohon yang dibina, iaitu menerusi undi majoriti atau undi keyakinan. Tiga parameter hiper yang perlu ditentukan sebelum model HR dibina adalah: 

* Bilangan pohon yang perlu dibina 
* Bilangan maksimum fitur dalam suatu pohon 
* Bilangan minimum sampel yang diperlukan untuk pemisahan nod. 

Proses pengelasan yang dibuat berdasarkan sebilangan pohon ini membolehkan model yang lebih tepat dapat dihasilkan berbanding teknik Pohon Keputusan. Hutan Rawak sering menghasilkan model pengelas yang baik. Serupa dengan teknik Pohon Keputusan, teknik Hutan Rawak juga dapat menangani isu terlebih padanan dengan menggunakan kaedah pemangkasan. Kelebihan lain Hutan Rawak adalah ia tidak memerlukan proses penskalaan fitur (*feature scaling*). Selain itu, Hutan Rawak juga mempunyai keupayaan untuk mengira kepentingan setiap fitur yang digunakan untuk membina model.

### Rangkaian Neural Buatan (''Artificial Neural Network)''

Rangkaian Neural Buatan merupakan teknik yang diinspirasikan daripada cara bagaimana rangkaian neural dalam otak manusia memproses maklumat. Rangkaian Neural Buatan terdiri daripada satu rangkaian neuron (juga dikenali sebagai nod) yang berhubung antara satu sama lain. Terdapat tiga jenis nod iaitu nod input, nod tersembunyi dan nod output. Nod input merupakan nod yang menerima maklumat untuk diproses, nod output menyimpan keputusan pemproses manakala nod tersembunyi merupakan nod penghubung antara nod input dengan nod output.
Merujuk kepada Gambar Rajah Blok Rangkaian Neural Buatan, tiga komponen penting dalam model Rangkaian Neural Buatan adalah:

* sinap atau sambungan rangkaian
* penambah
* fungsi pengaktifan (*activation function*) 

Setiap input *x<sub>i</sub>* diberikan satu nilai pemberat *w<sub>i</sub>*. Jumlah semua pemberat, *x<sub>i</sub>w<sub>i</sub>* kemudiannya dikira dan disalurkan ke fungsi pengaktifan *f*, untuk mengubah nilai pra-pengaktifan neuron ke output *y<sub>j</sub>*. Output *y<sub>j</sub>* kemudiannya digunakan sebagai input kepada nod dalam lapisan yang seterusnya. Terdapat beberapa pilihan fungsi pengaktifan yang boleh digunakan dalam Rangkaian Neural Buatan, antara yang popular adalah fungsi sigmoid, fungsi penghad tetap (*hard limiter*) dan fungsi lelurus sesecebis (piecewise linear function).

Pengelas RNB terdiri daripada beberapa jenis, antara yang paling ringkas adalah suapan ke depan (*feed forward*). Dalam teknik ini, hubungan antara nod input dengan nod output adalah dalam satu arah ke hadapan sahaja. Pelbagai kajian telah membuktikan model pengelas yang menggunakan Rangkaian Neural Buatan menunjukkan prestasi yang baik dalam pelbagai bidang. Walau bagaimanapun, bagi mencapai prestasi yang maksimum, model Rangkaian Neural Buatan memerlukan saiz sampel yang besar. Selain itu, kewujudan fitur yang tidak relevan dalam model Rangkaian Neural Buatan menyebabkan model kurang efisien dan tidak praktikal untuk digunakan. Prestasi model Rangkaian Neural Buatan juga lebih baik apabila memproses fitur berjenis selanjar dan pelbagai dimensi. 

## Rujukan