Meneliti MBTI Test dengan Machine Learning

Welly Tambunan
5 min readMay 24, 2020

Helo Teman2,

Aku lagi ngerjain thesis di BINUS tentang MBTI test dibawah bimbingan Pak Bambang. MBTI test ini merupakan test kepribadian dan bisa menentukan pekerjaan yang kira-kira cocok dengan karakter tersebut.

Saya sangat tertarik terhadap bagaimana agar semua orang mencapai the best of himself. Makanya aku sangat senang dengan role sebagai Head of Engineering di kata.ai. Dimana aku bisa berinteraksi dengan orang-orang pinter dan masih muda sehingga dapat berkontribusi bagi kesuksesan karir mereka dan juga keseharian. Hal ini dapat dilakukan dengan banyak mendengar dan bertanya sehingga kita paham apa yang menjadi motivasi seseorang.

We always put people first ! The most precious assets that we have

Saya sangat penasaran dengan bagaimana seseorang menemukan apa yang menjadi passion, talenta dan juga melakukan pekerjaan yang memiliki nilai ekonomi. Semua orang pasti unik. Dan ini yang menjadi menarik.

Online MBTI Test

Saya menemukan salah satu website untuk test tersebut. Yap, free website. Tapi saya cukup puas dengan hasilnya. I’m INTP btw. Ya sepertinya cocok sih. Haha.. Akan tetapi saya tidak mengetahui logic di balik website tersebut.

Yeah ada 60 pertanyaan !

Banyak sih. Maka saya, pak dosen dan teman2 berusaha mencari cara bagaimana mengurangi jumlah pertanyaan tersebut. Agar orang yang ikut test tidak bosan dan mejawab asal2an. Jadi kita pengen dapetin pertanyaan mana yang paling memberikan value terbesar dan menghapus pertanyaan yang tidak besar efeknya.

Kami melakukan exploratory data analysis dan berusaha tidak mencari formula dan mendalami dasar dari psikologi dan test tersebut. Takutnya akan terjadi overfitting di dalam otak. Jadi saya pengen data menunjukkan sendiri fitur2 apa yang penting. Kami mengumpulkan dataset yang di generate dengan python code dari website tersebut.

Setelah mengumpulkan 2 juta dataset dan mencari temen2 programmer untuk mengisi manual. Tentu saja sample data tersebut sedikit karena jika kita mencoba semua kemungkinan maka akan ada 2⁶⁰ kombinasi jawaban yang harus dibuat. Well, very large. 1.1529215e+18. Jadi sepertinya 2 juta is a good start.

Feature Importance

Dengan motivasi mengurangi pertanyaan maka kami mencoba jalan pertama yaitu dengan feature engineering. Feature engineering, selection dan importance tidak memberikan hasil yang memuaskan. Dengan menggunakan metode dari machine learning ke deep learning hasilnya bagus untuk training dan test data. Akan tetapi ketika kita mencoba memilih dari feature ( jawaban pertanyaan ) dalam hal ini 20 dari 60 hasilnya tidak memuaskan. Hanya 20% akurasinya.

Oke mari kita coba teliti lagi. Ada 60 pertanyaan dan kita akan mencoba ambil 20 dari situ. Ini adalah combinatorial problem. Kombinasi(60, 20) hasilnya 4.191844505𝐸+15. Yeah i know it’s a lot. Makanya kami berharap machine learning dapat menemukan pattern tanpa perlu memiliki feature yang banyak dan juga melakukan exhaustive search. Data set sesedikit mungkin dan pertanyaan seminimal mungkin.

Back to Theory

Setelah mengalami beberapa kebuntuan akhirnya menyerah dan kembali ke dasar MBTI test. Ya di real life tidak ada kondisi yang ideal. Boleh cheating or ngintip cara pikir orang. Ya.. ini dunia yang kolaboratif. :)

Dari buku tersebut kami melihat bahwa ada 4 kuadran yang di test

60 pertanyaan cukup masuk akal di kurangi menjadi 20. Soalnya ada 4 kategori pertanyaan. E/I, S/N, T/F dan J/P

Dengan asumsi dari 60 pertanyaan akan ada 15 pertanyaan untuk masing-masing kategori. 60/4 = 15. Pertanyaan nya ganjil kayaknya supaya gak ada seri / tie. Ini semua dengan asumsi penilaian menggunakan model sederhana dengan counting biasa dan one line formula.

Coba Lagi

Mungkin akan lebih bagus lagi kalau ada pendalaman lebih mengenai MBTI test dan sejarah bagaimana kesimpulan tersebut dibuat apakah dari statistical testing atau hanya gut feeling yang dianggap sebagai fact. Seperti yang disebutkan oleh Daniel Kahneman di buku Think Fast and Slow.

Akhirnya dengan ilmu tebak-tebak buah manggis coba lakukan pencarian pattern untuk melakukan labeling kepada setiap pertanyaan dengan eksplorasi berpola dan sedikit randomness. Jika kita berhasil melakukan identifikasi terhadap 4 kategori dari 60 pertanyaan tersebut kita dapat melakukan pemilihan terhadap 15 pertanyaan di setiap kategori. Kelihatan nya sederhana tapi ada beberapa angka yang menunjukkan hal ini tidak mudah.

Jika kita mengambil 15 soal dari 60 maka akan menemukan angka 53194089192720. Jika kita mencoba hanya mencari 8 ( karena 8 Introvert vs 7 Extrovert maka 8 jawaban condong ke Introvert. Hasilnya juga cukup banyak 2.558620845𝐸+9. Meskipun dengan randomness akan kecil kemungkinan mendapatkan kategori dari setiap pertanyaan.

Akhirnya dengan browsing dari internet mencari apakah ada yang menyediakan kategori pertanyaan tersebut dan mencoba melihat dari sudut pandang yang berbeda. Akhirnya ada beberapa website dan buku yang bisa dijadikan pedoman dan saya mulai memberikan label dan melakukan komputasi dan counting sederhana. Hasilnya hanya 50% akurasi nya. Cukup menyebalkan.

Ada beberapa kemungkinan… Apakah pelabelan nya salah atau malah salah di definisi dari setiap pertanyaan itu sendiri. Atau bahkan salah rumus. Banyak ketidak pastian dan kita juga tidak bisa menjamin bahwa website yang ada dapat dibuktikan kebenaran nya. Fiuh… I don’t think this will be going to be this difficult.

Akhirnya setelah banyak baca referensi maka akhirnya rumus dan kategori yang benar didapat ! Akhirnya… Meskipun masih tetap ada masalah karena beberapa website dan definisi malah berbeda. Jadi mikir apakah psikolog gak pernah agree on anything ? Well, it’s human to be human.. But.. Well.

Akurasi vs Truth

Saya mencoba rumus tersebut ke beberapa website yang berbeda dan hasilnya cukup dan akurasi nya bagus. Akan tetapi ini mengundang pertanyaan lain dimana sepertinya kita harus mencari weight dari setiap pertanyaan. Tidak semua pertanyaan adalah binary atau hitam dan putih. Manusia tidak seperti itu. Manusia adalah mahluk yang dinamis dan adaptif. Makanya dinosaurus punah kan ? Karena dia gak bisa adaptasi. Tapi ini adalah salah satu titik terang dimana kita nantinya bisa tau apa faktor yang sangat berpengaruh dan apakah bisa ada training dimana kita bisa memenuhi karir tertentu ?

Kita bahkan bisa mengurangi pertanyaan menjadi 3 pertanyaan setiap kategori ! Dengan tetap mempertahankan feature importance dan bobot disetiap pertanyaan. Semakin menarik kan?

Maka penelitian pun dilanjutkan untuk mencari apakah setiap bobot pertanyaan dan skala yang digunakan untuk membuat test tersebut lebih akurat. Until then stay tune…

Cheers

--

--