Decision Tree – Overfitting

Saya lanjutkan bahasan tentang Decision Tree . Salah satu kelemahan Decision Tree (DT) adalah Overfitting. Contoh overfitting misalnya pada kasus ada noise (data salah), kemudian dibentuk pohon yang mengakomodasi data ini. Pohon ini cenderung membesar. Jadi tree ini dikatakan terlalu ditune untuk mengakomodasi data training tertentu.

error train (h) adalah error tree pada saat training. Sementara error train (h’) error training pada hipotesis lain. Error pada train misalnya terjadi karena datanya sangat besar dan kompleks. Error d(h) adalah true error (eror pada tes data), misalnya error pada data yang besar sekali.

Untuk mencegah overfitting:

  1. Berhenti ketika split data tidak signifikan secara statistik
  2. Atau terus menumbuhkan pohon kemudian melakukan post pruning, atau dipotong daunnya secara selektif hingga performa tes validasi membaik.

Bagaimana memilih pohon yang baik?

  1. Mengukur performa data training
  2. Mengukur performa menggunakan dataset validasi yang terpisah (banyak digunakan)
  3. Menggunakan MDL (minimum disruption length) atau minimize

     size(tree) + size (misclassification(tree))

Pada metode 2, kita bisa membagi dataset jadi 3, data training, tes dan validasi. Pada saat training diukur performanya secara bertahap, mulai dari 1 simpul 2 simpul dan seterusnya. Pada saat tree mulai terbentuk, kemudian dilakukan pengujian dengan data validasi. Disini diperhatikan grafik perform tree. Biasanya performanya akan meningkat ketika simpul2nya ditambah. Namun akan ada satu titik dimana performanya akan menurut. Nah pada saat inilah terjadi overfitting, dan sebaiknya pada saat ini dihentikan penambahan simpulnya.

Sementara pada teknik MDL diukur ukuran tree dan ukuran kesalahan klasifikasinya (misclassification). Pada MDL ini dicari ukuran tree yang kecil namun kesalahannya juga kecil. Titik ini yang disebut optimal. Karena bisa saja ukuran tree nya membesar dan error nya mengecil.

Teknik lainnya adalah Pruning (reduced-error pruning). Disini pohon ditumbuhkan dulu sampai penuh. Teknik ini menggunakan data validasi juga. Kemudian dilakukan pemotongan simpul, kemudian diuji performanya dengan data validasi. Bila performanya meningkat, kemudian lakukan lagi pemotongan simpul berikutnya dan diuji lagi performanya dengan data validasi. Proses ini dilakukan berulang-ulang hingga didapat nilai performa yang terbaik dengan tree terkecil. Metode pruning ini bisa meningkatkan performa pada data tes.

Bagaimana bila datanya sedikit? bisa digunakan juga metode cross-validation.

Sampai disini dulu. Semoga Bermanfaat!

Wolfram – New Kind of Science

Hari ini saya baru baca buku Stephen Wolfram – New Kind of Science. Wolfram ini ahli fisika, komputer dan matematika. Jadi dia berkesimpulan bahwa perkembangan komputer dan pemrograman ini didukung oleh perkembangan matematika. Namun pada kenyataannya di dunia banyak hal yang terlalu kompleks untuk dijelaskan dengan rumus matematika. Misalnya bentuk pohon, bagaimana kita bisa menjelaskan bermacam-macam bentuk pohon dengan rumus matematika yang ada. Atau bentuk kristal salju yang bermacam-macam. Komputer bisa saja membuat program untuk menghitung bentuk pohon maupun kristal salju. Namun membutuhkan algoritma pemrograman yang panjang dan kompleks.

Dia mengusulkan perlu pendekatan baru untuk menjelaskan berbagai hal kompleks tersebut. Caranya dengan membuat sebuah program sederhana yang kemudian bisa berkembang menghasilkan berbagai bentuk yang kompleks. Menurut dia penemuan ini bisa membuat revolusi baru dalam ilmu fisika, kimia, biologi dan bidang lainnya.

Contohnya adalah dia menggunakan celular automata yang dia sebut untuk mengembangkan bentuk yang sangat kompleks seperti pada gambar berikut:

Bukunya bisa diakses secara daring pada tautan berikut:

https://www.wolframscience.com/nks/

Sedikit penjelasan tentang buku ini bisa dilihat disini:

https://writings.stephenwolfram.com/2017/05/a-new-kind-of-science-a-15-year-view/

https://en.wikipedia.org/wiki/A_New_Kind_of_Science

Tentang Stephen Wolfram:

https://en.wikipedia.org/wiki/Stephen_Wolfram

Video penjelasan wolfram tentang teorinya bisa dilihat disini:

Video kuliah umumnya di kampus university of california bisa dilihat disini:

Decision Tree-2

Saya lanjutkan pembahasan tentang Decision Tree (DT). Tahapan yang dilakukan adalah dari dataset yang telah memiliki label dilakukan training yang menghasilkan model classifier. Model ini kemudian digunakan untuk melakukan prediksi terhadap instance yang belum memiliki label.

Beberapa pertimbangan kapan menggunakan algoritma DT:

  • Instance dapat dideskripsikan sebagai pasangan atribut dan nilai
  • Fungsi target memiliki nilai diskret
  • Diperlukan Hipotesisnya yang disjunctive (tidak banyak keterhubungan)
  • Bila training datanya ada noise atau ada data yang hilang

Contoh

Diagnosa medis, diagnosa alat, analisa resiko kredit, pemodelan kecenderungan penjadwalan

Algoritma DT untuk memilih main loop

  1. Pilih A: Atribut terbaik yang jadi node
  2. Tentukan A sebagai atribut decision pada node
  3. Pada setiap nilai A, buat turunan (descendant) dari node
  4. Urutkan contoh data training ke daun (leaf node)
  5. Bila contoh data training sudah terklasifikasi dengan baik, maka berhenti, bila belum ulangi lagi dengan node daun baru

Maksud terklasifikasi dengan baik, misalnya datanya tidak tercampur yang positif dengan negatif (homogen)

Nilai atribut akan digunakan utnuk memilah-milah dataset. Bagaimana cara untuk memilih atribut terbaik? Beberapa caranya adalah:

  1. Random: pilih atribut secara acak
  2. Least value: Atribut dengan memiliki kemungkinan nilai yang paling sedikit
  3. Most Value: atribut yang memiliki kemungkinan nilai paling banyak
  4. Max Gain: atribut yang memiliki information gain terbesar

Metode pemilihan dengan max Gain adalah yang banyak digunakan contohnya algoritma ID3.

Idealnya atribut yang baik dapat langsung memisahkan sampel menjadi menjadi bagian yang semuanya positif dan semuanya negatif (homogen). Pohon diusahakan seringkas mungkin tapi mampu mengklasifikasikan dataset dengan baik.

Entropi adalah mengukur tingkat ketidakmurnian dalam satu grup. Rumusnya adalah:

dengan S adalah sampel dari data training,

p adalah jumlah sampel positif dalam S

n adalah jumlah sampel negatif dalam S

Rumus umumnya entropi adalah :

Information Gain menjelaskan seberapa penting atribut dari fitur vektor. Rumus Information gain dari X dan Y adalah:

Information Gain adalah mutual information dari atribut A dan variabel target Y.

Gain (S,A) adalah besarnya penurunan (reduksi) entropi setelah sampel dipilah-pilah berdasarkan nilai dari Atribut A tersebut

Atribut yang dipilih adalah yang memiliki nilai Gain paling besar. Kelemahan Information Gain adalah cenderung memilih atribut yang jumlah nilai atributnya lebih banyak dan memotong menjadi subset yang lebih kecil. Untuk mengatasi masalah ini bisa digunakan metode normalisasi dengan Quinlan Gain Ratio.

ID3 melakukan pencarian heuristik pada space hipotesis. Pencarian berhenti pada tree terkecil yang dapat diterima, berdasarkan prinsip occam razor. Occam razor cenderung memilih hipotesis yang sederhana yang bisa menjelaskan fenomena pada data.

Proses pencarian hipotesis

  1. Ruang Hipotesis decision tree lengkap (fungsi target pasti ada)
  2. Hanya memilih satu hipotesis
  3. Proses pencarian hipotesis tidak melakukan backtracking
  4. Proses pencarian hipotesis berbasis statistik (tahan terhadap noise atau labelnya salah)
  5. Algoritma pencarian cenderung untuk mencari pohon yang pendek (inductive bias)

Pohon yang baik adalah pohon yang mampu melakukan generalisasi dengan baik. Backtracking itu balik lagi. Didapatkan lokal optima.

Sampai disini dulu. Semoga Bermanfaat!

Decision Tree

Hari ini saya belajar tentang Decision Tree (DT). DT ini bisa dibilang salah satu algoritma klasik pada machine learning. DT ini memiliki masalah overfitting. Yaitu pada saat training performanya bagus, namun pada saat test performanya jelek. Hal ini bisa jadi karena dia kehilangan kemampuan melakukan generalisasi, karena sangat ditune pada training datanya.

Secara keseluruhan Machine learning adalah studi terhadap algoritma untuk meningkatkan performa P, pada beberapa task T berdasarkan pengalaman E: (P,T,E).

Untuk mendapatkan fungsi yang akan kita pelajari, kita memiliki :

  • sekumpulan instance X (ruang input/dataset),
  • ada fungsi target yang kita tidak ketahui f:X–>Y
  • kumpulan hipotesis H={ h | h : X –> Y} (calon solusi)

Input sistem adalah pasangan

dari tipe fungsi target f

Outputnya adalah hipotesis h yang merupakan bagian dari H, yang paling mendekati fungsi target f

dari slide tom mitchell, machine learning

Contohnya pada gambar diatas kolom-kolomnya (outlook, temperature, humidity dan wind) adalah fitur dari Xi. Baris-barisnya menunjukan instance label <xi, yi>. Label kelasnya pada tabel ini adalah kolom berwarna biru yang menunjukan yes dan no.

Contoh decision tree dari tabel diatas F:<Outlook, Humidity, Wind, Temp> –> play tennis

Setiap internal node menyatakan atribut tes Xi. Node pada gambar diatas berbentuk kotak, yaitu outlook, Humidity, dan wind.

Setiap cabang dari sebuah node menunjukan nilai dari sebuah node Xi. Contoh cabang pada gambar diatas ada sunny, overcast dan rain.

Setiap daun (leaf node) adalah hasil prediksinya (yes dan no) atau bisa disebut juga keputusan.

Ada banyak kemungkinan pohon, namun yang dicari adalah yang optimal, sependek mungkin. Kalau ada atribut yang tidak relevan, bisa saja dia hilang dari pohon DT.

Pohon ini kemudian digunakan untuk prediksi kelas dari sebuah input. Misalnya kita punya input berikut: <outlook=sunny, temperature=hot, humidity=high, wind=weak> . Bila kita masukan input tersebut ke pohon, maka akan mengikuti jalur keputusan outlook=sunny, humidity= high berarti keputusannya adalah playtennis=no. Dari contoh input ini temperature dan wind menjadi atribut yang tidak relevan dan tidak digunakan.

Bila datanya berupa numerik atau kontinyu, digunakan threshold atau ambang batas sebagai fitur. Misalnya untuk humidity high dan normal bisa diganti threshold >75% dan <75%. Atau bisa juga dikatakan data kontinu diubah menjadi data kategorikal. Sampai disini dulu. InsyaAllah besok akan saya lanjutkan dengan bahasan decision tree learning

Referensi:

Mitchell, Tom. “Machine learning.” (1997): 870-877.

Bayes Net

Bayes Net sering disebut sebagai model-model grafik. Ide utamanya adalah menggunakan asumsi conditional independence. Prinsip ini sudah digunakan juga di Naive Bayes (NB). Manfaatnya adalah membuat perhitungan probabilitas menjadi sederhana. Dengan NB kita hanya perlu 2n+1 parameter. Sementara pake Bayes rules dibutuhkan 2^n. Namun asumsi NB ini cukup ekstrem karena menyamaratakan semua conditional independensi dari semua atribut yang terlibat.

Bayesnet sedikit menetralisir permasalahan tersebut. Kalau kita mempunyai pengetahuan tambahan keterkaitan antara satu variabel dengan variabel lainnya, maka bisa dimasukan dalam perhitungan. Sehingga bisa dikatakan Bayesnet berada ditengah antara NB dan Bayes rules. Keterkaitan hubungan ini dibuat dalam bentuk graph. Graph ini menunjukan joint probability distribution dari sekumpulan variabel/nodes.

Ada 2 tipe model graph: yaitu directed graph (yang digunakan pada bayesnet) dan yang undirected graph (tidak terarah seperti markov random fields)

Model Graph ini memasukan pengetahuan kita tentang domain dalam bentuk dependensi atau independensi. Serta mengamati data untuk melakukan estimasi parameter. Model Graphs ini adalah salah satu perkembangan Machine Learning yang penting. Prinsip model graph ini digunakan untuk probabilistic inference dan learning (pembelajaran). Metode ini digunakan pada analisa teks, model time series, diagnosa, sistem bantuan (help system) dll.

X disebut conditional independen terhadap Y|Z bila distribusi probabiliti X tidak bergantung pada Y

P(X|Y,Z)=P(X|Z)

contohnya P(Guntur|Hujan, Kilat)= P(Guntur|Kilat)

X independen secara marginal terhadap Y bila Probabiliti kemunculan X dan Y dinyatakan sebagai perkalian probabiliti X dan Y:

P(X=xi|Y=yj) = P(X=xi)

P(Y=yi|X=xj) = P(Y=yi)

Contoh hubungan joint probability distribution terhadap variabel berikut:

Graph diatas menunjukan hubungan sebab akibat antara variabel misalnya merokok (smoking) menyebabkan kanker paru (Lung Cancer) dan bronkitis. Kemudian tuberkolosis disebabkan oleh kunjungan ke asia dst.

P(X1,X2,X3,X4,X5,X6,X7,X8)=P(X1).P(X2).P(X3|X1).P(X4|X2).P(X5|X2).P(X6|X3,X4).P(X7|X6).P(X8|X5,X6)

Keterhubungan ini tidak ada pada NB, karena asumsi semua variabel adalah conditional independence. Untuk 8 variabel diatas dengan Bayes rules kita membutuhkan perhitungan sebanyak 2^8

Sementara dengan Bayes net kita hanya membutuhkan perhitungan sebanyak: X1,…,X8 –> 2+2+4+4+4+8+4+8=36

Untuk X1 dan X2 hanya perlu 2 probability, contohnya untuk X1 = yes, X1=no ;

Untuk X3 punya 1 parent X1 juga sehingga ada 4 probability yaitu untuk kondisi X1X3: 00, 01,10,11 ;

Untuk X6 punya 2 parent yaitu X3 dan X4 sehingga ada 8 probability untuk kondisi X3X4X6 berikut: 000,001,010, 011, 100,101,110,111

Sampai disini dulu. Insyaallah nanti akan lanjutkan dengan contoh Bayesnet lainnya pada tulisan berikutnya. Semoga Bermanfaat!

Referensi:

Mitchell, Tom. “Machine learning.” (1997): 870-877.

Bayesian Network Learning

Pada tulisan sebelumnya telah dibahas tentang Bayesian Network Learning. Ada 4 kategori. Kali ini akan dibahas tentang kasus pertama yaitu yang graphnya diketahui dan variabelnya juga fully observed.

Contohnya pada kasus berikut:

dari slide tom mitchell

Misalnya Flu dan alergi memiliki kemungkinan menyebabkan penyakit sinus, dan sinus memiliki gejala pusing (headache) dan hidung meler (running nose). Maka probability sinus dapat ditulis sebagai berikut:

dari slide tim mitchell

dengan S= 1 adalah probabilitas sinus given F=i adalah probabilitas Flu bernilai i dan A=j adalah probabilitas alergi bernilai j. Kalau i & j boolean bisa bernilai 0 & 1. Nilai maksimum likelihood estimatenya (MLE) adalah:

dari slide tom mitchell

dengan k adalah jumlah data training, delta = 1 jika kondisi terpenuhi, dan 0 jika tidak terpenuhi. Delta terpenuhi bila nilai fk=i, nilai ak=j dan nilai Sk=1, dibagi dengan jumlah data. Rumus Maximum likehood estimate:

MLE untuk kasus sinus adalah:

Nah untuk kasus ini, yaitu graphnya diketahui dan nilai variabelnya fully observed, maka perhitungan masih mudah, yaitu menggunakan MLE seperti pada rumus diatas. Selanjutnya bagaimana bila nilai variabelnya ada yang tidak diketahui?

Misalnya untuk kasus diatas, Flu, Allergy, Headache dan Nose diketahui. Namun nilai Sinus tidak diketahui. Maka perhitungan MLE tidak bisa dilakukan. Terus bagaimana perhitungan untuk kasus in? Insyaallah saya akan bahas pada tulisan berikutnya. Semoga Bermanfaat!

Referensi

Klik untuk mengakses GrMod3_10_18_2011.pdf

Bayesian Network

Hari ini saya belajar tentang bayesian network (Bayesnet). Bayes net ini adalah model grafis probabilitas yang menampilkan representasi dari variabel dan conditional dependensinya (hubungan) menggunakan Directed acyclic graph (DAG). Bisa juga dikatakan bayes net menampilkan representasi dari joint probability distribution (distribusi probabilitas gabungan) dari sekumpulan variabel random

Bayes net ini sering digunakan untuk menampilkan hubungan event yang terjadi dan memprediksi likelihood (kemungkinan) yang menyebabkan even tersebut. Contohnya bayes net digunakan untuk representasi probabilitas hubungan antara penyakit dan simptom (gejala). Diberikan beberapa simptom, bayes net dapat digunakan untuk menghitung probabilitas adanya penyakit tertentu.

Algoritma yang baik dapat mengambil kesimpulan (inference) dan pembelajaran (learning) dengan bayesian network. Bayes net dapat melakukan pemodelan urutan (sequence) dari berbagai variabel seperti sinyal suara atau urutan protein, disebut bayesian netwrok dinamis. Generalisasi dari bayesian network dapat melakukan representasi dan menyelesaikan permasalahan pengambilan keputusan yang tidak pasti yang disebut influence diagram.

Pembelajaran

Bayes net adalah sebuah graph terarah tidak berputar dan kumpulan dari CPD

  • Setiap node (simpul) digunakan untuk menunjukan sebuah variabel random
  • Edge (sisi) menunjukan dependency (kebergantungan)
  • Setiap simpul Xi memiliki CPD (Conditional Probability Distribution) atau tabel yang menyatakan kebergantungan node tersebut dari induknya (parent) P(Xi|Pa(Xi)) dengan Pa(X) adalah induk langsung dari node X di graph
  • Joint distribution dari seluruh variabel adalah:

Dalam pembelajaran Bayesnet ada 4 kategori tergantung dari

  • Struktur graph diketahui
  • struktur graph tidak diketahui
  • Nilai variabel fully observed (diketahui semuanya)
  • Nilai variabel partly observed (ada yang tidak diketahui)

Struktur graph misalnya diketahui dari ekspert, misalnya kebergantungan antara penyakit dengan gejala.

4 kategori bayesnet

  • Kasus mudah (easy case): struktur graphnya diketahui dan datanya juga fully observed.
  • Kasus menarik (interesting case): graphnya diketahui tapi datanya hanya diketahui sebagian
  • Kasus sulit (gruesome): graphnya tidak diketahui, datanya partly observed
  • graphnya tidak diketahui, datanya fully observed

Sampe disini dulu, besok insyaallah akan saya lanjutkan dengan pembelajaran pada kasus pertama bayesnet. Semoga bermanfaat!

Referensi:

Mitchell, Tom. “Machine learning.” (1997): 870-877.

Klasifikasi – Contoh implementasi

Pada tulisan sebelumnya telah dibahas tentang supervised learning dan klasifikasi. Sekarang akan diceritakan beberapa contoh implementasi klasifikasi dengan machine learning.

Klasifikasi dokumen dan Filtering email spam

Pada klasifikasi dokumen, tujuan pembelajaran adalah untuk melakukan klasifikasi input seperti halaman web atau pesan email menjadi kelas C tertentu p(y = c|x, D), x biasanya adalah input teks tertentu. Contoh kasus klasifikasi dokumen adalah  email spam filtering, dimana kita mengklasifikasikan email spam yaitu y = 1 atau tidak spam y = 0.

Umumnya kasifier menggunakan asumsi vektor input x memiliki ukuran yang sudah ditentukan (fixed size). Teknik untuk merepresentasikan dokumen ke format feature vektor adalah menggunakan representasi bag of words. Yaitu untuk mencari apakah kata tertentu (j) muncul di dokumen (i). Kemudian dibuat matrix kemunculan kata pada dokumen. Contohnya pada deteksi spam, kemungkinan besar pesan spam memiliki kata “buy”, “cheap”, “viagra”, dll

Klasifikasi Bunga

Contoh lainnya adalah penelitian Ronald Fisher tentang klasifikasi 3 jenis bunga iris yaitu setosa, versicolor dan virginica. Ahli biologi telah membuat 4 fitur atau karakteristik yaitu panjang kelopak (sepal length), lebar kelopak, panjang mahkota (petal) dan lebarnya. Ekstraksi fitur ini penting, namun sulit. Umumnya machine learning menggunakan fitur yang dipilih oleh manusia.

sumber: buku murphy dari penelitian Dennis Kramb dan Sigma http://www.statlab.uni-heidelberg.de/data/iris/

Bila kita membuat scatter plot dari data iris, maka akan mudah untuk membedakan setosa dibandingkan dua kelas lainnya berdasarkan panjang mahkotanya atau lebarnya. Merah bulat = setosa, hijau segi empat = versicolor, biru bintang = virginica. Namun membedakan versicolor dari virginica lebih susah. Untuk ini dibutuhkan setidaknya 2 fitur. Sangat penting untuk melakukan analisa data secara keseluruhan exploratory data analysis, seperti melakukan ploting data, sebelum menerapkan metode machine learning.

Klasifikasi gambar dan pengenalan tulisan

Permasalahan klasifikasi lain yang lebih sulit adalah klasifikasi gambar (image classification). Klasifikasi ini tidak dilakukan pre-prosesing sebelumnya oleh manusia. Contohnya mesin diminta melakukan klasifikasi gambar, apakah gambar di dalam ruangan, atau di luar ruangan? apakah foto dalam format horisontal atau vertikal? apakah ada kucing atau tidak pada foto tersebut?

Pada kasus dimana gambar adalah tulisan tangan dan angka, misalnya kode pos pada sebuah surat, maka digunakan teknik pengenalan tulisan tangan (handwriting recognition). Dataset standar yang digunakan adalah MNIST yaitu “Modified National Institute of Standards”. Kata modified digunakan karena gambarnya telah dilakukan preprosesing untuk untuk memastikan digitnya ada di tengah-tengah gambar. Dataset ini terdiri dari 60 ribu gambar untuk traning dan 10 ribu gambar untuk pengujian dengan digit dari 0-9 yang ditulis oleh berbagai macam orang. Ukuran gambar adalah 28×28 dan memiliki nilai grayscale 0-255.

Banyak metode klasifikasi generik yang mengabaikan struktur dari fitur input, seperti layout spatial. Contohnya gambar tulisan tangan yang dipermutasi secara random. Fleksibiltas dari metode generik adalah keuntungan dan kerugian. Keuntungannya adalah bisa digunakan untuk berbagai macam task. Kerugiannya adalah metode ini mengabaikan informasi penting.

Deteksi dan pengenalan Wajah

Tugas yang lebih rumit dalam gambar adalah deteksi obyek atau lokalisasi obyek. Kasus khusus dari klasifikasi ini adalah deteksi wajah. Satu pendekatan adalah membagi gambar menjadi beberapa patch kecil pada lokasi berbeda, pada skala dan orientasi berbeda dan melakukan klasifikasi patch tersebut berdasarkan apakah terdapat tekstur seperti wajah atau tidak. Teknik ini disebut sliding window detector.

Sistem akan menghasilkan lokasi dimana probabilitas adanya wajah cukup tinggi. Sistem deteksi wajah ini sekarang digunakan pada kamera digital. Lokasi wajah yang dideteksi digunakan untuk menentukan titik autofokus. Implementasi lainnya adalah untuk melakukan pemburaman wajah secara otomatis pada sistem google street view.

Setelah berhasil mendeteksi wajah, maka akan dilanjutkan dengan pengenalan wajah, yaitu memprediksi identitas orang tersebut. Pada kasus ini jumlah label kelas akan sangat besar. Fitur yang digunakan juga berbeda dengan deteksi wajah. Untuk pengenalan wajah, perbedaan antara berbagai wajah seperti haya rambut menjadi penting untuk identifikasi wajah, tapi tidak penting untuk deteksi wajah. Pada deteksi wajah, detail seperti ini tidak penting, tapi hanya fokus untuk membedakan wajah dengan bukan wajah.

Sampai disini dulu, Insyallah nanti saya akan lanjutkan dengan regresi. Semoga Bermanfaat!

Referensi

Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press.

Klasifikasi – Supervised Learning

Saya lanjutkan catatan dari Buku Murphy tentang machine learning. Kali ini ngebahas tentang Supervised Learning. Supervised Learning adalah teknik machine learning yang paling populer. Dengan Supervised learning kita dapat melakukan klasifikasi. Tujuan klasifikasi adalah untuk mengklasifikasikan input X ke output Y. Kalo output Y cuman ada 2, maka kita sebut metode ini klasifikasi biner. Contohnya untuk klasifikasi email apakah spam atau tidak. Tapi kalo Y > 2 maka kita sebut klasifikasi multi kelas, atau klasifikasi multinomial.

Kalau label kelas tidak mutually exclusive, misalnya seseorang dapat dimasukan ke kelas tinggi dan kuat, maka task ini dapat disebut klasifikasi multi-label. Atau bisa juga dilihat sebagai multiple binary class (multiple output model). Secara matematis formula untuk klasifikasi dapat dinyatakan sebagai y=f(x) untuk fungsi f yang tidak diketahui. Tujuan learning adalah mencari fungsi f dari dataset training yang memiliki label. Kemudian hasil training digunakan untuk memprediksi output dari sebuah input baru yang belum diketahui. Teknik ini disebut juga generalisasi.

gambar diambil dari buku murphy machine learning a probabilistic perspective hal 3

Contoh klasifikasi pada gambar diatas kita memiliki data sejumlah obyek dengan bentuk warna dan ukuran berbeda-beda, dengan label yes dan no. Ini merupakan data training. Data ini dijelaskan juga pada tabel b dengan sekumpulan fitur D atau atribut. Data ini disimpan dalam matrix X (NxD). Fitur input bisa dalam bentuk data diskrit, kontinu atau kombinasi. Selain itu ada juga label dari vektor training y.

Sementara dibagian bawah kita diminta melakukan klasifikasi untuk 3 obyek baru yaitu gambar bulan sabit biru, lingkaran kuning dan tanda panah biru, yang disebut data tes. Karena ketiga data tes ini tidak ditemukan pada data training, maka kita perlu melakukan generalisasi. Untuk bulan sabit biru kita dapat prediksi dia masuk ke label 1. Karena semua obyek dengan warna biru, memiliki label 1 pada data training.

Sementara untuk lingkaran kuning lebih susah untuk diklasifikasikan, karena beberapa obyek kuning diberi label 1 dan yang lainnya diberi label 0. Selaian itu beberapa lingkaran diberi label 1 dan yang lainnya diberi 0. Begitu juga untuk untuk tanda panah biru.

Untuk mengatasi masalah ini dapat digunakan teori probabilitas. Probabilitis output Y dari input X dan data training D adalah P(y|x,D). Pada kasus ini hanya ada 2 kelas output, sehingga kita cukup hanya penghitung 1 peluang P(y=1|x,D). Karena P(y=1|x,D) + P(Y=0|x,D) = 1

Dari notasi diatas terlihat output Y adalah conditional atau bergantung pada input x dan data training D. Selain itu kita juga bergantung pada model M yang akan digunakan untuk membuat prediksi. Sehingga probabilitasnya dapat ditulis sebagai P(y|x,D,M)

Bila kita mengetahui nilai probabilitas output, kita dapat menghitung hasil “prediksi terbaik” sebagai label sebenarnya dengan persamaan:

dari buku murphy, hal 4

Persamaan ini menunjukan label kelas yang paling mungkin, dan disebut mode distribusi P(y|x,D) atau disebut juga MAP estimate (Maximum a posteriori). Misal dalam kasus bulatan kuning diatas kita memperoleh nilai p(yˆ|x,D) sangat kecil, jauh dari 1. Maka bisa disimpulkan hasil kita kurang meyakinkan, dan lebih aman bila dikatakan saya tidak tahu. Jawaban ini lebih aman bila kita menghadapi permasalahan yang memiliki resiko tinggi seperti di bidang kesehatan atau keuangan.

IBM membuat komputer yang dinamakan watson, yang dapat mengalahkan orang dalam game jeopardy. Watson memiliki modul yang dapat menghitung seberapa yakin jawaban tersebut. Modul ini dinamakan “buzz in”. Google juga memiliki sistem SmartASS (Ad Selection system), yang menghitung probabilitas orang akan mengklik sebuah iklan, berdasarkan riwayat pencarian dan fitur lainnya. Probabilitas ini disebut CTR (Click-through rate).

Sampai disini dulu, besok saya lanjutkan dengan pendekatan probabilitas. Semoga Bermanfaat!

Referensi

Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press.

Pembelajaran Mesin Probabilistik

Saya lagi baca buku Machine Learning: A Probabilistic Perspective karya Kevin Murphy. Buku ini menjelaskan tentang Pembelajaran Mesin dengan pendekatan Probabilistik. Jadi sekarang ini kan era Big Data. Konon katanya Saking banyaknya data ini, kita gak akan kerepotan untuk melakukan analisa data tersebut secara manual. Sehingga dikembangkan lah machine learning.

Machine learning bisa dibilang sebagai metode untuk dapat mengenali pola pada data, kemudian menggunakan pola ini untuk memprediksi data berikutnya, atau menggunakan pola ini untuk pengambilan keputusan. Muprhy menggunakan pendekatan teori probabilitas untuk membuat pembelajaran mesin. Teori probabilitas biasanya digunakan untuk berbagai permasalahan yang memiliki ketidakpastian. Dalam mesin learning, contoh ketidakpastian misalnya bagaimana membuat prediksi data berikutnya dari data yang sudah ada? Model apa yang terbaik untuk menjelaskan sekumpulan data? Pengukuran apa yang harus dilakukan berikutnya dll.

Mesin learning biasanya dibagi 2 tipe, prediktif (supervised learning) dan deskriptif (unsupervised learning). Pada supervised learning, tujuannya adalah untuk mempelajari hubungan antara input x ke output y, dari serangkaian pasangan data D yang memiliki label. Data D sering disebut juga data training yang didapat dari sejumlah N training.

Contohnya kita memiliki data tinggi dan berat orang dalam bentuk vektor D. Data ini memiliki fitur, atribut atau covarian. Data input dapat juga berbentuk gambar, kalimat, pesan email, sebuah data time series, graph dll.

Output dari sistem (response variable) juga bisa bermacam bentuk, diantaranya dalam bentuk kategori atau numerik. Contoh data kategori, misalnya laki dan perempuan. Contoh data numerik misalnya nilai tertentu, seperti tingkat penghasilan.

Pada output berbentuk kategori, tugas mesin adalah klasifikasi atau pengenalan pola. Bila data output adalah numerik, maka tugas mesin disebut regression. Variasi lainnya adalah ordinal regression, yaitu ketika output memiliki urutan tertentu, misalnya nilai ujian A, B, C sampai F.

Tipe kedua mesin learning adalah deskriptif atau unsupervised learning. Disini kita hanya diberi input D, dan mesin diminta menemukan pola yang menarik dari data. Teknik ini disebut juga knowledge discovery. Disini tidak ditentukan terlebih dulu, pola seperti apa yang dicari. Sehingga berbeda dengan supervised learning tidak ada ukuran eror yang kita bisa gunakan untuk membandingkan hasil prediksi dari Y dari data X yang ada.

Selain itu ada tipe ketiga dari machine learning, yaitu reinforcement learning (RL). Pada RL mesin belajar untuk mengambil keputusan berdasarkan sinyal reward dan punishment.

Sampai disini dulu catatan tentang buku ini , insyaallah nanti saya lanjutkan pada tulisan berikutnya. Semoga Bermanfaat!

Referensi:

Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press.