Thursday, 21 January 2021

Artificial Neural Network Artificial (ANN)

 

1.   Pengertian Artificial Neural Network Artificial (ANN)

Artificial Neural Network Artificial (ANN) atau Jaringan Syaraf Tiruan merupakan sebuah teknik atau pendekatan pengolahan informasi yang terinspirasi oleh cara kerja sistem saraf biologis, khususnya pada sel otak manusia dalam memproses informasi. Elemen kunci dari teknik ini adalah struktur sistem pengolahan informasi yang bersifat unik dan beragam untuk tiap aplikasi. Neural Network terdiri dari sejumlah besar elemen pemrosesan informasi (neuron) yang saling terhubung dan bekerja bersama-sama untuk menyelesaikan sebuah masalah tertentu, yang pada umumnya dalah masalah klasifikasi ataupun prediksi.

Cara kerja Neural Network dapat dianalogikan sebagaiman halnya manusia belajar dengan mengunakan contoh atau yang disebut sebagai supervised learning. Sebuah Neural Network dikonfigurasi untuk aplikasi tertentu, seperti pengenalan pola atau klasifikasi data, dan kemudian disempurnakan melalui proses pembelajaran. Proses belajar yang terjadi dalam sistem biologis melibatkan penyesuaian koneksi sinaptik yang ada antara neuron, dalam halnya pada Neural Network penyesuaian koneksi sinaptik antar neuron dilakukan dengan menyesuaikan nilai bobot yang ada pada tiap konektivitas baik dari input, neuron maupun output.

Neural Network memproses informasi berdasarkan cara kerja otak manusia. Dalam hal ini Neural Network terdiri dari sejumlah besar elemen pemrosesan yang saling terhubung dan bekerja secara paralel untuk memecahkan suatu masalah tertentu. Di sisi lain, komputer konvensional menggunakan pendekatan kognitif untuk memecahkan masalah; dimana cara pemecahan masalah haruslah sudah diketahui sebelumnya untuk kemudian dibuat menjadi beberapa instruksi kecil yang terstruktur. Instruksi ini kemudian dikonversi menjadi program komputer dan kemudian ke dalam kode mesin yang dapat dijalankan oleh komputer.

Neural Network, dengan kemampuannya dapat digunakan untuk memperoleh pengetahuan dari data yang rumit atau tidak tepat, serta juga dapat digunakan untuk mengekstrak pola dan mendeteksi tren yang terlalu kompleks untuk diperhatikan baik oleh manusia atau teknik komputer lainnya. Sebuah Neural Network yang telah terlatih dapat dianggap sebagai “ahli” dalam kategori pemrosesan informasi yang telah diberikan untuk dianalisa. Ahli ini kemudian dapat digunakan untuk menyediakan proyeksi terkait kemungkinan kondisi di masa mendatang serta menjawab pertanyaan “bagaimana jika?”

Neural Network dan algoritma komputer konvensional tidaklah saling bersaing tetapi saling melengkapi. Beberapa tugas atau masalah lebih cocok diselesaikan dengan pendekatan algoritmik seperti halnya operasi aritmatika, di sisi lain ada tugas-tugas yang lebih cocok untuk jaringan saraf, misalnya prediksi pergerakan data time-series. Bahkan, sejumlah besar tugas lainnya memerlukan sistem yang menggunakan kombinasi dari keddua pendekatan tersebut, dimana biasanya komputer konvensional digunakan untuk mengawasi Neural Network agar dapat memberikan kinerja maksimum.

Cabang ilmu kecerdasan buatan cukup luas, dan erat kaitannya dengan disiplin ilmu yang lainnya. Hal ini bisa dilihat dari berbagai aplikasi yang merupakan hasil kombinasi dari berbagai ilmu. Seperti halnya yang ada pada peralatan medis yang berbentuk aplikasi. Sudah berkembang bahwa aplikasi yang dibuat merupakan hasil perpaduan dari ilmu kecerdasan buatan dan juga ilmu kedokteran atau lebih khusus lagi yaitu ilmu biologi.

Neural Network merupakan kategori ilmu Soft Computing. Neural Network sebenarnya mengadopsi dari kemampuan otak manusia yang mampu memberikan stimulasi/rangsangan, melakukan proses, dan memberikan output. Output diperoleh dari variasi stimulasi dan proses yang terjadi di dalam otak manusia. Kemampuan manusia dalam memproses informasi merupakan hasil kompleksitas proses di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui algoritma apa yang digunakan. Kekuatan komputasi yang luar biasa dari otak manusia ini merupakan sebuah keunggulan di dalam kajian ilmu pengetahuan.

Fungsi dari Neural Network diantaranya adalah:

1.    Pengklasifikasian pola

2.    Memetakan pola yang didapat dari input ke dalam pola baru pada output

3.    Penyimpan pola yang akan dipanggil kembali

4.    Memetakan pola-pola yang sejenis

5.    Pengoptimasi permasalahan

6.    Prediksi

 

2. Sejarah Neural Network

Perkembangan ilmu Neural Network sudah ada sejak tahun 1943 ketika Warren McCulloch dan Walter Pitts memperkenalkan perhitungan model neural network yang pertama kalinya. Mereka melakukan kombinasi beberapa processing unit sederhana bersama-sama yang mampu memberikan peningkatan secara keseluruhan pada kekuatan komputasi.


Gambar 2.1 McCulloch & Pitts, penemu pertama Neural Network

Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt pada tahun 1950, dimana dia berhasil menemukan sebuah two-layer network, yang disebut sebagai perceptron. Perceptron memungkinkan untuk pekerjaan klasifikasi pembelajaran tertentu dengan penambahan bobot pada setiap koneksi antar-network.


                                                           Gambar 2.2 Perceptron          

Keberhasilan perceptron dalam pengklasifikasian pola tertentu ini tidak sepenuhnya sempurna, masih ditemukan juga beberapa keterbatasan didalamnya. Perceptron tidak mampu untuk menyelesaikan permasalahan XOR (exclusive-OR). Penilaian terhadap keterbatasan neural network ini membuat penelitian di bidang ini sempat mati selama kurang lebih 15 tahun. Namun demikian, perceptron berhasil menjadi sebuah dasar untuk penelitian-penelitian selanjutnya di bidang neural network. Pengkajian terhadap neural network mulai berkembang lagi selanjutnya di awal tahun 1980-an. Para peneliti banyak menemukan bidang interest baru pada domain ilmu neural network. Penelitian terakhir diantaranya adalah mesin Boltzmann, jaringan Hopfield, model pembelajaran kompetitif, multilayer network,  dan teori model resonansi adaptif.

Untuk saat ini, Neural Network sudah dapat diterapkan pada beberapa task, diantaranya classification, recognition, approximation, prediction, clusterization, memory simulation dan banyak task-task berbeda yang lainnya, dimana jumlahnya semakin bertambah seiring berjalannya waktu.

3.Konsep Neural Network

 

1.  Proses Kerja Jaringan Syaraf Pada Otak Manusia

Ide dasar Neural Network dimulai dari otak manusia, dimana otak memuat  sekitar 1011 neuron. Neuron ini berfungsi memproses setiap informasi yang masuk. Satu neuron memiliki 1 akson, dan minimal 1 dendrit. Setiap sel syaraf terhubung dengan syaraf lain, jumlahnya mencapai sekitar 104 sinapsis. Masing-masing sel itu saling berinteraksi satu sama lain yang menghasilkan kemampuan tertentu pada kerja otak manusia.


Gambar 2.3 Struktur Neuron pada otak manusia

Dari gambar di atas, bisa dilihat ada beberapa bagian dari otak manusia, yaitu:

1.    Dendrit (Dendrites) berfungsi untuk mengirimkan impuls yang diterima ke badan sel syaraf.

2.    Akson (Axon) berfungsi untuk mengirimkan impuls dari badan sel ke jaringan lain

3.    Sinapsis berfungsi sebagai unit fungsional di antara dua sel syaraf.

Proses yang terjadi pada otak manusia adalah:

Sebuah neuron menerima impuls dari neuron lain melalui dendrit dan mengirimkan sinyal yang dihasilkan oleh badan sel melalui akson. Akson dari sel syaraf ini bercabang-cabang dan berhubungan dengan dendrit dari sel syaraf lain dengan cara mengirimkan impuls melalui sinapsis. Sinapsis adalah unit fungsional antara 2 buah sel syaraf, misal A dan B, dimana yang satu adalah serabut akson dari neuron A dan satunya lagi adalah dendrit dari neuron B. Kekuatan sinapsis bisa menurun/meningkat tergantung seberapa besar tingkat propagasi (penyiaran) sinyal yang diterimanya. Impuls-impuls sinyal (informasi) akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering disebut dengan nilai ambang (threshold).

2.  Struktur Neural Network

Dari struktur neuron pada otak manusia, dan proses kerja yang dijelaskan di atas, maka konsep dasar pembangunan neural network buatan (Artificial Neural Network) terbentuk. Ide mendasar dari Artificial Neural Network (ANN) adalah mengadopsi mekanisme berpikir sebuah sistem atau aplikasi yang menyerupai otak manusia, baik untuk pemrosesan berbagai sinyal elemen yang diterima, toleransi terhadap kesalahan/error, dan juga parallel processing.


Gambar 2.4 Struktur ANN

Karakteristik dari ANN dilihat dari pola hubungan antar neuron, metode penentuan bobot dari tiap koneksi, dan fungsi aktivasinya. Gambar di atas menjelaskan struktur ANN secara mendasar, yang dalam kenyataannya tidak hanya sederhana seperti itu.

1.    Input, berfungsi seperti dendrite

2.    Output, berfungsi seperti akson

3.    Fungsi aktivasi, berfungsi seperti sinapsis

Neural network dibangun dari banyak node/unit yang dihubungkan oleh link secara langsung. Link dari unit yang satu ke unit yang lainnya digunakan untuk melakukan propagasi aktivasi dari unit pertama ke unit selanjutnya. Setiap link memiliki bobot numerik. Bobot ini menentukan kekuatan serta penanda dari sebuah konektivitas.

Proses pada ANN dimulai dari input yang diterima oleh neuron beserta dengan nilai bobot dari tiap-tiap input yang ada. Setelah masuk ke dalam neuron, nilai input yang ada akan dijumlahkan oleh suatu fungsi perambatan (summing function), yang bisa dilihat seperti pada di gambar dengan lambang sigma (∑). Hasil penjumlahan akan diproses oleh fungsi aktivasi setiap neuron, disini akan dibandingkan hasil penjumlahan dengan threshold (nilai ambang) tertentu. Jika nilai melebihi threshold, maka aktivasi neuron akan dibatalkan, sebaliknya, jika masih dibawah nilai threshold, neuron akan diaktifkan. Setelah aktif, neuron akan mengirimkan nilai output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Proses ini akan terus berulang pada input-input selanjutnya.

ANN terdiri dari banyak neuron di dalamnya. Neuron-neuron ini akan dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap layer dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak berlaku pada layer input dan output, tapi hanya layer yang berada di antaranya. Informasi yang diterima di layer input dilanjutkan ke layer-layer dalam ANN secara satu persatu hingga mencapai layer terakhir/layer output. Layer yang terletak di antara input dan output disebut sebagai hidden layer. Namun, tidak semua ANN memiliki hidden layer, ada juga yang hanya terdapat layer input dan output saja.

 

4. Permodelan jaringan pada ANN

Permodelan jaringan pada ANN ada 3 macam, yaitu :

1. Single layer

Dalam ANN, neuron disusun dalam bentuk lapisan (layer). Pembentukan ANN yang paling sederhana yaitu single layer. Cara kerja dari single layer, input layer yang berasal dari sumber node  di proyeksikan langsung ke output layer dari neuron ( node komputasi), tetapi tidak berlaku sebaliknya. Permodelan ini merupakan jenis jaringan feedforward yang dapat dilihat pada gambar 1. Pada gambar tersebut input dan output memiliki 4 node, namun yang dimaksud dengan single layer yaitu output dari jaringan, sedangkan inputnya tidak memiliki pengaruh karena pada saat melakukan input tidak terjadi proses komputasi


Gambar 1. Single Layer (credit: Haykin)

2. Multi layer

Pada single layer apabila terdapat tambahan satu atau dua hidden layer maka jaringan akan terganggu karena input dan output dari jaringan tidak dapat melihat hidden layer yang di masukkan. Sehingga memerlukan jaringan yang bisa menampung nya yaitu bernama multi layer. Cara kerja  multi layer adalah input layer menyuplai input vektor pada jaringan, kemudian input  yang dimasukkan melakukan komputasi pada layer yang kedua, lalu output dari layer yang kedua digunakan sebagai input dari layer yang ketiga dan seterusnya. Ilustrasi jaringan multi layer dapat di lihat pada gambar 2.


Gambar 2. Multi Layer (credit: Haykin)

3. Recurrent network

Reccurent network terbentuk karena pada jaringan single layer dan multi layer harus memiliki feedback untuk dirinya sendiri pada setiap loop jaringan nya, pada reccurent network jaringan tidak memerlukan feedback untuk dirinya sendiri melainkan feedback dari input yang digunakan. Ilistrasi jaringan reccurent network dapat dilihat pada gambar 3.


Gambar 3. Reccurent Layer (credit: Haykin)

Rule knowledge representation pada ANN

a.    Input yang mirip dari class yang mirip akan menghasilkan representasi yang mirip  dalam jaringan.dan diklasifikasikan pada kelas yang sama

b.    Item yang akan di kategorikan dengan kelas yang terpisah  harus di beri representasi yang berbeda dalam sebuah jaringan

c.    Jika ada fitur penting, maka harus disediakan jumlah neuron yang besar yang meliputi item pada sebuah jaringan

d.    Informasi prior dan invariances harus di bangun ke dalam desain ANN ketika mereka tersedia, sehingga desain jaringan yang sedeharna tidak harus mempelajari nya.

5. Metode – metode pada ANN

1. Single Layer Perceptron (SLP)

Sebelum penulis membahas tentang SLP,  penulis akan menjelaskan tentang perceptron yang merupakan salah satu jaringan feedforward yang terdiri dari sebuah retina yang digunakan untuk akuisisi data yang mempunyai fixed-weighted connection dengan neuron layer  yang pertama. Fixed weight layer diikuti dengan minimal satu  weight layer. SLP merupakan sebuah perceptron yang memiliki satu variable weight dan  satu variable layer dari output neuron Ω. Teknik dari SLP dapat ditunjukkan pada gambar 4, sebuah  SLP dengan dua input dan satu output neuron. Sebuah perceptron dengan beberapa output neuron  dapat juga dianggap seperti beberapa perceptron berbeda dengan input yang sama. Fungsi Boolean AND dan OR adalah salah satu  contoh yang dengan mudah di susun.


Gambar 4. teknik SLP (credit: Kriesel)

Learning algoritma pada perceptron dengan fungsi aktivasi binary neuron yang ditunjukkan oleh gambar 5. Learning algoritma pada perceptron  mengurangi weight ke output neuron yang mengembalikan 1  daripada 0 dan di kasus yang berbeda weight  nya meningkat


Gambar 5. algoritma SLP (credit: Kriesel)

Contohnya kita memiliki single layer perceptron dengan set weight yang random untuk training sample. Set dari training sample yang di panggil P, yang berisi pasangan dari training sampe p dan input t.


Dalam persamaan tersebut kita harus mengetahui tentang total error err sebagai fungsi dari weight. Total error naik atau berkurang tergantung pada  bagaimana kita mengubah weight. Ilustrasi error dari ANN dengan dua trainable connection w1 dan w2 dapat dilihat pada gambar 6.


Gambar 6. Ilustrasi error (credit: Kriesel)

Persamaan fungsi error  pada SLP  sebagai berikut :


2. Multi Layer Perceptron (MLP)

Multi layer perceptron adalah sebuah perceptron dengan dua atau lebih trainable weight layer. Pada SLP dapat membagi input space dengan sebuah hyperlane sedangkan MLP dapat mengklasifikasi convex polygon dari proses hyperlane dengan mengenali pattern yang terletak di atas hyperlane. MLP merupakan representasi dari fungsi pendekatan universal. Sebuah n-layer perceptron adalah n-variable weight layer dan n+1 neuron layer dengan neuron layer 1 sebagai input layer. Ilustrasi dari MLP dapat dilihat pada gambar 7.


Gambar 7. ilustrasi MLP (credit: Kriesel)

Penanganan fungsi error pada MLP menggunakan backpropagation error, yang dapat diaplikasikan pada multi  perceptron dengan fungsi aktivasi semi linear. Walaupun fungsi binary threshold dan fungsi yang lain tidak lagi mendukung tetapi kita bisa menggunakan fungsi Fermi atau hyperbolic tangentBackpropagation adalah prosedur gradient dengan fungsi error Err(W) menerima semua n-weight sebagai argument dan menugaskannya sebagai output error  n dimensional.  Ilustrasi fungsi error yang digunakan ditunjukkan oleh gambar 8.


Gambar 8. fungsi error pada MLP (credit: Kriesel)

Setelah dilakukan pembuktian persamaan yang fungsi yang dihasilkan :


Referensi :

https://ciel.sbm.itb.ac.id/post/read/artificial-neural-network.html

https://socs.binus.ac.id/2012/07/26/konsep-neural-network/

https://machinelearning.mipa.ugm.ac.id/2018/05/24/artificial-neural-network-ann/

 

 

Friday, 15 January 2021

Klasifikasi

 

Pengertian Klasifikasi

Klasifikasi merupakan salah satu topik utama dalam data mining atau machine learning. Klasifikasi adalah suatu pengelompokan data dimana data yang digunakan tersebut mempunyai kelas label atau target. Sehingga algoritma-algoritma untuk menyelesaikan masalah klasifikasi dikategorisasikan ke dalam supervised learning atau pembelajaran yang diawasi. Maksud dari pembelajaran yang diawasi adalah data label atau target ikut berperan sebagai ‘supervisor’ atau ‘guru’ yang mengawasi proses pembelajaran dalam mencapai tingkat akurasi atau presisi tertentu.
Gambar 1 dibawah ini adalah contoh klasifikasi hewan dengan label atau target adalah reptile (reptile), serangga (insect), ikan (fish), burung (bird) dan mamalia (mammal), dan menggunakan fitur-fitur tertentu, seperti mempunyai telinga, dapat berenang, beranak, bertelur dan sebagainya, sebagai indikator-indikator suatu hewan masuk dalam kelompok hewan tertentu.



Gambar 1: Klasifikasi Hewan.

Ada beberapa jenis teknik klasifikasi antara lain:

 

1. Regresi Logistik

Regresi Logistik adalah suatu analisis regresi yang digunakan untuk menggambarkan hubungan antara variabel respon dengan sekumpulan variabel prediktor dimana variabel respon bersifat biner atau dikotomus. Regresi logistik Biner digunakan saat variabel dependen merupakan variabel dikotomus (kategorik dengan 2 macam kagegori),. Regresi Logistik tidak memodelkan secara langsung variabel dependen (Y) dengan variabel independen (X), melainkan melalui transformasi variabel dependen ke variabel logit yang merupakan natural log dari odds rasio (Fractal, 2003). metode ini cukup tahan (robust) untuk dapat diterapkan dalam berbagai skala/keadaan data breima(Tatham et. al, 1998). Model regresi logistik multivariate dengan k variabel prediktor adalah :



2. K-Nearest Neighboor  ( yang dijelaskan mendalam )

1. Apa itu KNN?

 

Algoritma K-Nearest Neighbor (K-NN) adalah sebuah metode klasifikasi terhadap sekumpulan data berdasarkan pembelajaran  data yang sudah terklasifikasikan sebelumya. Termasuk dalam supervised learning, dimana hasil query instance yang baru diklasifikasikan berdasarkan mayoritas kedekatan jarak dari kategori yang ada dalam K-NN.

 

Ilustrasi cerita dari K-NN adalah sebagai berikut:

Bertanya pada Tetangga – Anda diundang ke sebuah pertemuan. Namun, Anda tidak tahu tema dari pertemuan tersebut, maupun kegiatan apa saja yang akan dilakukan di pertemuan tersebut. Anda benar-benar tidak tahu apakah pertemuan itu akan bermanfaat atau tidak untuk Anda. Yang Anda tahu, beberapa orang teman Anda juga diundang ke acara yang sama. Dalam kondisi seperti itu, apa yang Anda lakukan?

 

Cara yang biasanya dilakukan oleh banyak orang dalam menangani masalah seperti itu adalah dengan bertanya kepada teman-teman apakah mereka akan datang ke pertemuan tersebut atau tidak. Biasanya, orang-orang yang pertama ditanya adalah orang-orang yang dekat dengan Anda. Maka, Anda mencoba mengontak enam orang teman yang biasa jadi teman main Anda. Dari enam orang tersebut, empat orang menyatakan akan datang, tapi dua orang ternyata memutuskan tidak datang, entah mengapa alasannya. Keputusan apa yang Anda akan ambil?

 

Kasus di atas menggambarkan ide dari algoritma k-Nearest Neighbours (kNN). Anda ingin mengambil sebuah keputusan (kelas) antara datang atau tidak datang ke sebuah pertemuan. Untuk mendukung pengambilan keputusan tersebut, Anda melihat mayoritas dari keputusan teman-teman Anda (instance lainnya). Teman-teman tersebut Anda pilih berdasarkan kedekatannya dengan Anda. Ukuran kedekatan pertemanan ini bisa bermacam-macam: tetangga, satu hobi, satu kelas, atau hal-hal lainnya. Ukuran-ukuran tersebut bisa juga digunakan bersamaan, misalnya si A itu tetangga, satu hobi, dan satu kelas; sedangkan si B hanya satu kelas saja.



Gambar di atas menggambarkan ide dari algoritma k-Nearest Neighbours (kNN). Anda ingin mengambil sebuah keputusan (kelas) antara datang atau tidak datang ke sebuah pertemuan. Untuk mendukung pengambilan keputusan tersebut, Anda melihat mayoritas dari keputusan teman atau tetangga Anda (instance lainnya). Teman atau tetangga tersebut Anda pilih berdasarkan kedekatannya dengan Anda. Ukuran kedekatan pertemanan ini bisa bermacam-macam: satu hobi, satu kelas, atau hal-hal lainnya. Ukuran-ukuran tersebut bisa juga digunakan bersamaan, misalnya si A itu tetangga, satu hobi, dan satu kelas; sedangkan si B hanya satu kelas saja.

Dekat atau jauhnya tetangga biasanya dihitung berdasarkan Euclidean Distance, atau dapat juga menggunakan rumus jarak yang lain, seperti yang dijelaskan pada artikel Vector Space Model dan Pengukuran Jarak.

 

Kedekatan dapat dianggap sebagai invers jarak, alias berbanding terbalik dengan jarak. Semakin kecil jarak antara dua instance, semakin besar “kedekatan” antara dua instance tersebut. Dengan demikian, k nearest neighbours dari sebuah instance x didefinisikan sebagai k instance yang memiliki jarak terkecil (kedekatan terbesar, nearest) dengan x.

2. Tahapan Langkah Algoritma K-NN

1.       Menentukan parameter k (jumlah tetangga paling dekat).

2.       Menghitung kuadrat jarak eucliden objek terhadap data training yang diberikan.

3.       Mengurutkan hasil no 2 secara ascending (berurutan dari nilai tinggi ke rendah)

4.       Mengumpulkan kategori Y (Klasifikasi nearest neighbor berdasarkan nilai k)

5.       Dengan menggunakan kategori nearest neighbor yang paling mayoritas maka dapat dipredisikan kategori objek.

 

3. Kelebihan dan Kekurangan dari Algoritma K-NN

Kelebihan

§  Sangat nonlinear

§  kNN merupakan salah satu algoritma (model) pembelajaran mesin yang bersifat nonparametrik. Pembahasan mengenai model parametrik dan model nonparametrik bisa menjadi artikel sendiri, namun secara singkat, definisi model nonparametrik adalah model yang tidak mengasumsikan apa-apa mengenai distribusi instance di dalam dataset. Model nonparametrik biasanya lebih sulit diinterpretasikan, namun salah satu kelebihannya adalah garis keputusan kelas yang dihasilkan model tersebut bisa jadi sangat fleksibel dan nonlinear.

 

Pada ilustrasi di atas, kNN dapat melakukan klasifikasi dengan tepat karena garis keputusan kelasnya nonlinear. Bandingkan dengan model linear (e.g. logistic regression) yang tentunya akan menghasilkan banyak misklasifikasi jika garis keputusan kelas dalam dataset sebenarnya bersifat nonlinear.

§  Mudah dipahami dan diimplementasikan

§  Dari paparan yang diberikan dan penjelasan cara menghitung jarak dalam artikel ini, cukup jelas bahwa algoritma kNN mudah dipahami dan juga mudah dimplementasikan. Untuk mengklasifikasi instance x menggunakan kNN, kita cukup mendefinisikan fungsi untuk menghitung jarak antar-instance, menghitung jarak x dengan semua instance lainnya berdasarkan fungsi tersebut, dan menentukan kelas x sebagai kelas yang paling banyak muncul dalam k instance terdekat.

 

Kekurangan

§  Perlu menunjukkan parameter K (jumlah tetangga terdekat)

§  Tidak menangani nilai hilang (missing value) secara implisit

§  Jika terdapat nilai hilang pada satu atau lebih variabel dari suatu instance, perhitungan jarak instance tersebut dengan instance lainnya menjadi tidak terdefinisi. Bagaimana coba, menghitung jarak dalam ruang 3-dimensi jika salah satu dimensi hilang? Karenanya, sebelum menerapkan kNN kerap dilakukan imputasi untuk mengisi nilai-nilai hilang yang ada pada dataset. Contoh teknik imputasi yang paling umum adalah mengisi nilai hilang pada suatu variabel dengan nilai rata-rata variabel tersebut (mean imputation).

§  Sensitif terhadap data pencilan (outlier)

§  Seperti yang telah dijelaskan Ali pada artikel sebelumnya, kNN bisa jadi sangat fleksibel jika k kecil. Fleksibilitas ini mengakibatkan kNN cenderung sensitif terhadap data pencilan, khususnya pencilan yang terletak di “tengah-tengah” kelas yang berbeda. Lebih jelasnya, perhatikan ilustrasi di bawah. Pada gambar kiri, seluruh instance bisa diklasifikasikan dengan benar ke dalam kelas biru dan jingga. Tetapi, ketika ditambahkan instance biru di antara instance jingga, beberapa instance jingga menjadi salah terklasifikasi.Perlu dipilih k yang tepat untuk mengurangi dampak data pencilan dalam kNN.



Rentan terhadap variabel yang non-informatif

§  Meskipun kita telah menstandardisasi rentang variabel, kNN tetap tidak dapat mengetahui variabel mana yang signifikan dalam klasifikasi dan mana yang tidak. Lihat contoh berikut:



Pada ilustrasi di atas, klasifikasi sebetulnya bisa dilakukan menggunakan variabel a saja (perhatikan garis vertikal yang memisahkan kedua kelas secara linear). Namun, kNN tidak dapat mengetahui bahwa variabel b tidak informatif. Alhasil, dua instance kelas biru terklasifikasi dengan salah, karena kedua instance tersebut dekat dengan instance kelas jingga dalam dimensi b. Andaikan kita hanya menggunakan variabel a dan membuang variabel b, semua instance akan terklasifikasi dengan tepat.Pemilihan variabel sebelum menerapkan kNN dapat membantu menangani permasalahan di atas. Selain itu, kita juga bisa memberi bobot pada variabel dalam perhitungan jarak antar-instance. Variabel yang kita tahu noninformatif kita beri bobot yang kecil, misalnya:



Rentan terhadap dimensionalitas yang tinggi

§  Berbagai permasalahan yang timbul dari tingginya dimensionalitas (baca: banyaknya variabel) menimpa sebagian besar algoritma pembelajaran mesin, dan kNN adalah salah satu algoritma yang paling rentan terhadap tingginya dimensionalitas. Hal ini karena semakin banyak dimensi, ruang yang bisa ditempati instance semakin besar, sehingga semakin besar pula kemungkinan bahwa nearest neighbour dari suatu instance sebetulnya sama sekali tidak “near“.



 

 

 

Masalah tingginya dimensionalitas (terkadang) bisa diatasi dengan pemilihan variabel atau rekayasa fitur, misalnya dengan PCA.

§  Rentan terhadap perbedaan rentang variabel

§  Dalam perhitungan jarak antar-instance, kNN menganggap semua variabel setara atau sama penting (lihat bagian penjumlahan pada rumus perhitungan jarak di atas). Jika terdapat variabel p yang memiliki rentang jauh lebih besar dibanding variabel-variabel lainnya, maka perhitungan jarak akan didominasi oleh p. Misalkan ada dua variabel, a dan b, dengan rentang variabel a 0 sampai 1.000 dan rentang variabel b 0 sampai 10. Kuadrat selisih dua nilai variabel b tidak akan lebih dari 100, sedangkan untuk variabel a kuadrat selisihnya bisa mencapai 1.000.000. Hal ini bisa mengecoh kNN sehingga kNN menganggap a tidak membawa pengaruh dalam perhitungan jarak karena rentangnya sangat besar dibanding rentang b.Ilustrasinya diberikan di bawah ini. Manakah yang merupakan nearest neighbour dari instance x? Jika dilihat dari “kacamata” komputer, nearest neighbour x bukanlah y, melainkan z, Mengapa?
Untuk mengatasi perbedaan rentang, biasanya dilakukan preproses berupa standardisasi rentang semua variabel sebelum menerapkan algoritma kNN. Contohnya yaitu melalui operasi centre-scale atau operasi min-max.

 



§  Nilai komputasi yang tinggi.

§  Untuk mengklasifikasi sebuah instance x, kNN harus menghitung jarak antara x dengan semua instance lain dalam dataset yang kita miliki. Dengan kata lain, kompleksitas waktu klasifikasi kNN berbanding lurus dengan jumlah instance latih. Jika dataset yang kita miliki berukuran besar (terdiri dari banyak instance dan/atau banyak variabel), proses ini bisa jadi sangat lambat. Bayangkan, jika kita punya 10.000 instance dengan masing-masing 20 variabel dan kita ingin mengklasifikasi 100 instance baru (instance uji), maka total operasi yang harus dilakukan menjadi:(100 instance uji x 10.000 instance latih) x 20 variabel/instance x 2 operasi/variabel = 40 juta operasiBeberapa cara pengindexan (K-D tree) dapat digunakan untuk mereduksi biaya komputasi.

 

4. Contoh Kasus Perhitungan K-NN

Terdapat beberapa data yang berasal dari survey questioner tentang klasifikasi kualitas kertas tissue apakah baik atau jelek, dengan objek training dibawah ini menggunakan dua attribute yaitu daya tahan terhadap asam dan kekuatan.



Akan diproduksi kembali kertas tissue dengan attribute X1=7 dan X2=4, tanpa harus mengeluarkan biaya untuk melakukan survey, maka dapat diklasifikasikan kertas tissue tersebut termasuk yang baik atau jelek.



Dengan mengurutkan jarak terkecil, semisal diambil K=3, maka perbandingan nya adalah 2 (Baik) >1 (Jelek). Maka dapat disimpulkan kertas tissue dengan attribute X1=7 dan X2=4 masuk ke kelas Baik.

 

3. Super Vector Machine

Metode SVM SVM bertujuan untuk mencari hyperplane yang optimal. Hyperplane yang dapat membagi kedua class dengan jarak margin terjauh antar class. Margin adalah jarak antara hyperplane tersebut dengan pola terdekat dari masing-masing class. Instance yang paling dekat ini disebut sebagai support vector. Pada garis merah yang berada di atas garis hitam tebal dapat instance dengan tanda “+” yang menjadi support vector untuk kelas Men. Sedangkan pada garis merah di bawah garis hitam tebal terdapat Fajar Sodik P, Bayu Dwi P, Iqbal K 691 PRISMA 2020, Vol. 3, 689-694 instace dengan tanda “o” yang menjadi support vector untuk kelas Women. Sehingga dapat disimpulkan bahwa tujuan utama SVM adalah mencari hyperplane terbaik dengan bantuan support vector dari masingmasing class sehingga akhirnya didapat hyperplane optimal.



4. Naive bayes Metode

Naive Bayes adalah metode yang menggunakan sebuah teorema kuno warisan abad ke 18 yang ditemukan oleh Thomas Bayes (Suyanto, 2018). Dalam teorema tersebut suatu probabilitas bersayarat dinyatakan sebagai berikut:



Dimana 𝑋 adalah bukti, 𝐻 adalah hipotesis, 𝑃(𝐻|𝑋) adalah probabilitas bahwa hipotesis 𝐻 benar untuk bukti 𝑋 atau dengan kata lain 𝑃(𝐻|𝑋) merupakan probabilitas posterior 𝐻 dengan syarat 𝑋. Dalam bidang machine learning X adalah sebuah objek data, H adalah hipotesis bahwa X adalah kelas C. Secara spesifik, dalam masalah klasifikasi dapat dihitung 𝑃(𝐻|𝑋) sebagai probabilitas bahwa hipotesis benar untuk tuple 𝑋, dengan kata lain 𝑃(𝐻|𝑋) adalah probabilitas bahwa tuple 𝑋 berada dalam kelas C

5. Decision Tree

Decision tree yang dikenal juga sebagai top-down induction of decision trees (TIDIDT) adalah teknik supervised learning yang membangun representasi aturan klasifikasi berstruktur sekuensial hirarki dengan cara mempartisi himpunan data latih secara rekursif (Suyanto, 2018). Teknik ini menghasilkan pohon keputusan yang berupa n-ary branching tree yang mereprensentasikan suatu aturan klasifikasi. Beberapa teknik decision tree adalah: classification and regression tree (CART), itterative dychotomizer (ID3), C4.4 Quinlan, C5.0 Quinlan, Cubist Quinlan, Assistant Cestnik. digunakan untuk pengenalan pola dan termasuk dalam pengenalan pola secara statistik.decision tree dibentuk dari 3 tipe simpul

§ Simpul leaf memuat suatu keputusan akhir atau kelas target untuk suatu decision tree

§ Simpul root adalah titik awal dari decision tree

§ Setiap simpul perantara berhubungan dengan suatu pertanyaan atau pengujian



Gambar 3. Visualisasi Decision Tree

6. Random Forest

Metode random forest adalah pengembangan dari metode CART, yaitu dengan menerapkan metode bootstrap aggregating (bagging) dan random feature selection (Breiman, 2001). Dalam random forest, banyak pohon ditumbuhkan sehingga terbentuk hutan (forest), kemudian analisis dilakukan pada kumpulan pohon tersebut. Pada gugus data yang terdiri atas n amatan dan p peubah penjelas, random forest dilakukan dengan cara (Breiman 2001; Breiman & Cutler 2003):

§ Lakukan penarikan contoh acak berukuran n dengan pemulihan pada gugus data. Tahapan ini merupakan tahapan bootstrap.

§ Dengan menggunakan contoh bootstrap, pohon dibangun sampai mencapai ukuran maksimum (tanpa pemangkasan). Pada setiap simpul, pemilihan pemilah dilakukan dengan memilih m peubah penjelas secara acak, dimana m << p. Pemilah terbaik dipilih dari m peubah penjelas tersebut. Tahapan ini adalah tahapan random feature selection.

§ Ulangi langkah 1 dan 2 sebanyak k kali, sehingga terbentuk sebuah hutan yang terdiri atas k pohon.


 Daftar Pustaka

https://journal.unnes.ac.id/sju/index.php/prisma/

https://www.megabagus.id/classification/

https://informatikalogi.com/algoritma-k-nn-k-nearest-neighbor/

https://mti.binus.ac.id/2017/11/24/klasifikasi/

 

 

Artificial Neural Network Artificial (ANN)

  1.    Pengertian Artificial Neural Network Artificial (ANN) Artificial Neural Network Artificial (ANN) atau Jaringan Syaraf Tiruan merup...