Ad Code

Ticker

6/recent/ticker-posts

Perceptron Classifier Series - Part 2: Bentuk Umum dari Perceptron Classifier

Pada contoh kasus sebelumnya, pengklasifikasi yang kita bangun hanya dapat memprediksi kalimat dengan dua kosakata, lalu bagaimana jika alien yang kita temui menggunakan kosakata yang lebih banyak? Misalnya, mereka berbicara dengan tiga kata; beep, boop, tack. Jika demikian, pengklasifikasi akan membuat prediksi menggunakan rumus berikut:

ŷ = step(axbeep + bxboop + cxtack + d)

dimana a, b, dan c secara berurutan adalah bobot untuk setiap kata beep, boop, tack, dan d adalah bias.

Seperti yang kita lihat sebelumnya, analisis sentimen menggunakan perceptron classifier untuk kalimat dengan dua kosakata dapat digambarkan sebagai garis di sebuah bidang yang membagi dua zona, yaitu zona positif untuk kalimat senang, dan zona negatif untuk kalimat sedih.

Pengklasifikasi analisis sentimen dengan tiga kosakata juga dapat direpresentasikan secara geometris. Kita dapat membayangkan titik-titik itu berada di ruang tiga dimensi. Dalam kasus ini, masing-masing sumbu mewakili masing-maasing kata beep, boop, tack, dan sebuah kalimat diwakili sebuah titik pada sebuah ruang yang mana letak koordinatnya menunjukkan frekuensi kemunculan ketiga kata tersebut di dalam sebuah kalimat.

Gambar di bawah ini mengilustrasikan contoh dimana sebuah kalimat mengandung kata beep sebanyak lima kali, boop sebanyak delapan kali, dan tack sebanyak tiga kali. Maka kalimat tersebut dapat diwakili sebuah titik dengan koordinat (5, 8, 3).



Cara untuk memisahkan titik-titik ini adalah dengan menggunakan permukaan atau bidang. Persamaan  axaack + bxbeep + cxcrack + dapat diilustrasikan pada gambar di bawah.


Kita juga dapat membuat pengklasifikasi analisis sentimen dari sebuah kalimat dengan kosakata sebanyak mungkin. Katakanlah sebuah kalimat terdiri dari n kata (1, 2, 3, ..., n). Kemudian dataset kita terdiri dari m kalimat  x(1)x(2), ...., x(m)Setiap kalimat x(i) memiliki label yi, yang mana 1 adalah kalimat senang, dan 0 adalah kalimat sedih. 

Oleh karena itu, setiap kalimat dalam dataset kita dapat dilihat sebagai vektor atau urutan angka x(i) = (x1(i)x2(i), … , xn(i)), dimana xj(iadalah jumlah kemunculan dari kata j di kalimat ke-i.

Perceptron classifier terdiri dari n bobot (masing-masing satu untuk n kata dalam sebuah kalimat) dan bias. Bobot dilambangkan dengan wi , dan bias dilambangkan dengan b. Dengan demikian, prediksi yang dibuat oleh pengklasifikasi untuk kalimat x(i) adalah:

ŷi = step(w1x1(i) + w2x2(i) + … +wnxn(i) + b)

Dengan cara yang sama sebagaimana pengklasifikasi dengan dua kata dapat direpresentasikan secara geometris sebagai garis yang memotong bidang menjadi dua wilayah, dan pengklasifikasi dengan tiga kata dapat direpresentasikan sebagai bidang yang memotong ruang tiga dimensi menjadi dua wilayah, pengklasifikasi dengan n kata juga dapat direpresentasikan secara geometris. Sayangnya, kita membutuhkan n-dimensi untuk melihatnya. Sedangkan manusia hanya dapat melihat tiga dimensi, jadi kita mungkin harus membayangkan bidang  (n-1) dimensi (disebut hyperplane) memotong ruang n dimensi menjadi dua wilayah.

Namun, fakta bahwa kita tidak dapat membayangkannya secara geometris tidak berarti kita tidak dapat memiliki gagasan yang baik tentang cara kerjanya. Bayangkan jika ingin membangun pengklasifikasi untuk kalimat dalam Bahasa Indonesia. Setiap kata akan diberikan sebuah bobot. Itu sama seperti dengan membaca kamus dan menetapkan skor kebahagiaan untuk setiap kata. Hasilnya bisa terlihat seperti ini.

Bobot (Skor)

  • A: 0.1 poin
  • Aba: 0.2 poin
  • Abad: 0.3 poin
  • ...
  • Aduh: -4 poin
  • ...
  • Bahagia: 10 poin
  • ...
  • Marah: -7 poin
  • ...
  • Zat: 0.4 poin
Bias
  • -2.3 poin

Katakanlah kita memiliki daftar bobot dan bias seperti di atas, untuk memprediksi apakah sebuah kalimat itu senang atau sedih, kita dapat menambahkan skor semua kata di atas. Jika hasilnya lebih tinggi atau sama dengan 2.3 (negatif dari bias), maka kalimat tersebut diprediksi sebagai kalimat yang senang, begitupun sebaliknya.

Selain itu, notasi ini juga dapat digunakan untuk contoh kasus lainnya dalam klasifikasi, tidak hanya analisis sentimen. Jika kita memiliki masalah yang berbeda dengan titik data, fitur, dan label yang berbeda, kita dapat mengkodekannya menggunakan variabel yang serupa. Misalnya, kita ingin membuat aplikasi medis di mana kita mencoba memprediksi apakah seorang pasien sakit atau sehat menggunakan n bobot dan bias, maka kita dapat menggunakan notasi untuk label, xi untuk fitur, wuntuk bobot, dan untuk bias.

Bias, y-intercept, dan suasana hati yang melekat pada alien yang pendiam

Sejauh ini kita sudah memiliki gagasan tentang apa arti bobot pada pengklasifikasi. Kata-kata dengan bobot positif berarti senang, dan kata-kata dengan bobot negatif berarti sedih. Adapun kata-kata dengan bobot yang sangat kecil (baik positif atau negatif) adalah kata-kata yang cenderung netral. Namun, apa arti bias itu?

Di series sebelumnya tentang Linear Regression, kita telah menetapkan bahwa bias adalah harga dasar rumah (rumah dengan 0 kamar atau studio (?)).

Dalam model perceptron, bias dapat diartikan sebagai skor kalimat kosong. Dengan kata lain, jika alien sama sekali tidak mengatakan apa-apa, apakah alien ini senang atau sedih? Jika sebuah kalimat tidak memiliki kata-kata, skornya justru bias. Jadi, jika biasnya positif, maka alien yang diam adalah bahagia, dan jika biasnya negatif, maka alien itu sedih.

Secara geometris, perbedaan antara bias positif dan negatif terletak pada titik pusat (titik dengan koordinat (0,0)) yang berarti kalimat tanpa kata-kata. Lihatlah gambar di bawah.


Pada gambar kiri, pengklasifikasi memiliki bias negatif, atau threshold positif  berarti bahwa alien yang tidak mengatakan apa-apa jatuh di zona negatif dan diklasifikasikan sebagai sedih. Adapun pada gambar sisi kanan, pengklasifikasi memiliki bias positif, atau threshold negatif yang berarti bahwa alien yang tidak mengatakan apa-apa jatuh di zona positif dan diklasifikasikan sebagai senang.

Lalu bagaimana kita dapat menentukan untuk memilih bias positif atau negatif? Lihatlah kedua contoh kasus di bawah ini.

  • Contoh 1 (bias positif): dataset ulasan suatu produk
    Bayangkan sebuah kumpulan data yang berisi ulasan produk tertentu di Tokoped*a. Ada yang positif dan ada yang negatif sesuai dengan jumlah bintang yang mereka terima. Lalu berapa skor untuk ulasan kosong? Dari pengalaman saya, ulasan buruk cenderung mengandung banyak kata, karena pelanggan kesal, dan mereka menggambarkan pengalaman negatif mereka. Namun, banyak ulasan positif kosong — pelanggan hanya memberikan skor yang baik, tanpa perlu menjelaskan mengapa mereka menikmati produk tersebut. Oleh karena itu, pengklasifikasi ini mungkin memiliki bias positif.


  • Contoh 2 (bias negatif): dataset percakapan dengan teman
    Bayangkan kita merekam semua percakapan kita dengan teman-teman dan mengklasifikasikannya sebagai percakapan bahagia atau sedih. Jika suatu hari kita bertemu dengan seorang teman, dan dia diam seribu bahasa, kita akan mengira bahwa ia marah pada kita atau bahwa ia sangat galau brutal. Oleh karena itu, kalimat kosong tersebut tergolong sedih. Maka dari itu, pengklasifikasi ini mungkin memiliki bias negatif.

Selanjutnya, bagaimana kita tahu model yang kita bangun memiliki kinerja yang bagus atau buruk? Kita akan mempelajarinya di postingan berikutnya! Sampai jumpa👋🏻