Berkembangnya teknologi internet akhir-akhir ini merupakan sebuah belati bermata dua di kehidupan modern ini, terutama di dunia perekrutan kerja yang belakangan ini semakin intensif dalam menggunakan layanan internet untuk mengiklankan peluang kerja di institusi mereka. Disini semakin marak iklan peluang kerja yang berhaluan palsu atau penipuan bertebaran di dunia maya, yang mana telah banyak korban yang termakan oleh iklan palsu rekrutmen kerja ini.
Proyek ini berusaha untuk membuat suatu model pembelajaran mesin (Machine Learning) yang sekiranya mampu memisahkan iklan kerja yang asli (real) dengan iklan kerja yang (palsu). Dataset kali ini dapat diunduh di tautan Kaggle berikut. Dataset memiliki observasi sebanyak 17880 dan terdapat 17 jenis variabel dengan fraudulent sebagai variabel patokan (target). Dataset juga terdiri atas 17014 data yang dilabel sebagai asli (real). dan 866 data yang dilabel sebagai palsu (fraud).
Atribut variabel yang dimiliki oleh dataset awal dijabarkan sebagai berikut:
Namun setelah dilakukan bagan praproses pada dataset yang akan digunakan maka, variabel dari dataset berkembang menjadi:
(Jenis data numerik):
company_profile)description)requirements)benefits)(Jenis data karakter):
(Jenis data faktor dan berupa biner [‘1’ untuk iya dan ‘0’ untuk tidak]):
Dimana variabel addr_low_edu, us_based, dollar_title, dollar_desc, html_desc, email_link, html_req, html_benf, short_prof, not_long_prof, short_desc, short_req, spam_wrd, cons_punct merupakan atribut tambahan yang akan digunakan untuk membuat model pemilahan iklan lowongan kerja berdasarkan dari hasil penelitian yang dilakukan oleh Kolias et al. [1]
Keseluruhan dataset ditunjukkan pada model tabel di bawah ini:
Pada bagian ini akan melihat bagaimana keadaan dataframe berdasarkan relasi target dengan variabel yang lain. Ke dalam dataset, mengingat bagaimana keadaan proporsi label yang sangat timpang antara label iklan asli dan label iklan palsu maka dataset akan dilakukan downsampling agar proporsi label dalam keadaan seimbang dengan menggunakan jumlah label oklan palsu (fraud) sebagai patokan. Penentuan atribut variabel dalam membentuk model pengklasifikasi Random Forest akan mengikuti penelitian yang telah dilakukan oleh Kolias et al. [1]
Pada kesempatan kali ini, eksplorasi analisis akan dilakukan dengan melihat persebaran tiap variabel terhadap variabel target.
Mengacu grafik di atas, disimpulkan bahwa absennya atribut telecommuting cukup berpengaruh dalam menentukan asli atau palsunya iklan lowongan dimana kebanyakan absennya label telecommuting didominasi oleh lowongan kerja asli.
Gambar grafik di atas dapat menunjukkan bahwa terdapatnya logo perusahaan akan berpengaruh terhadap asli atau tidaknya suatu lowongan pekerjaan yang beredar di internet. Hal ini juga ditunjukkan dengan rendahnya tingkat iklan lowongan palsu yang memiliki logo perusahaan.
Data grafik menunjukkan bahwa Pertanyaan Screening memiliki turut andil dalam menentukan apakah suatu iklan pekerjaan itu asli atau tidak. Hal ini dapat diketahui dari proporsi jumlah iklan kerja palsu yang sangat sedikit yang mensertakan pertanyaan rekrutmen.
Dari grafik dapat ditarik kesimpulan bahwa rata-rata iklan lowongan pekerjaan yang asli mensaratkan pendidikan tinggi sebagai salah satu persyaratannya.
Untuk kasus ini yang mana menggunakan dataset khusus dari tautan Kaggle, kebanyakan iklan lowongan pekerjaan yang asli memberikan penempatan kerja di Amerika Serikat dan hanya separuh dari iklan yang asli menawarkan penempatan kerja di luar Amerika Serikat.
Keberadaan lambang mata uang (Dollar / $) menjadi perhatian khusus untuk menentukan apakah iklan lowongan tergolong asli atau palsu. Hal ini dikarenakan berangkat dari hipotesis bahwa lowongan kerja palsu cendrung untuk menunjukkan gaji yang bombastis diikuti dengan lambang mata uang tertentu (dalam kasus ini Dollar).
Dari data grafik, ditunjukkan bahwa lowongan kerja yang asli tidak akan mencantumkan lambang mata uang di judul lowongan mereka. Dan sangat sedikit pula yang mencantumkan lambang mata uang di judul lowongan pada jenis lowongan yang diindikasi palsu.
Dari data grafik, tidak adanya keberadaan lambang mata uang di deskripsi pekerjaan menunjukkan bahwa iklan lowongan dimungkinkan tergolong sebagai iklan yang asli.
Tautan Eksternal di Deskripsi Pekerjaan
Tautan Eksternal di Syarat Pekerjaan
Tautan Eksternal di Fasilitas Pekerjaan
Terlihat dari ketiga grafik di atas, kebanyakan iklan lowongan asli jarang sekali untuk menautkan tautan eksternal pada iklan lowongan.
Hal ini mungkin agak sedikit bias dikarenakan rata-rata iklan lowongan kerja di sini diambil dari suatu situs pencarian kerja yang ada di Amerika Serikat yang mungkin memiliki kebiasaan untuk tidak menautkan tautan eksternal ke iklan lowongan. Hal ini akan berimplikasi berbeda di negara-negara lain pula.
Tautan e-mail di Teks Iklan Kerja
Jumlah Kata dalam Iklan Penghitungan jumlah kata dalam iklan cukup menentukan terhadap keabsahan suatu iklan pekerjaan, dimana biasanya iklan yang cendrung palsu tidak akan menerangkan panjang lebar mengenai profil perusahaan, deskripsi kerja, dan hal-hal yang bersangkut paut dengan syarat kebutuhan tenaga kerja yang akan direkrut. Hipotesis yang diajukan adalah: semakin sedikit kata (short_prof atau short_desc atau short_req == 1) yang terdeteksi maka kecendrungan untuk dikategorikan sebagai iklan palsu semakin meningkat juga.
Dan sebagai pembanding, jumlah kata yang tertera di profil perusahaan juga dihitung apakah jumlah kata berada pada rentang 10 hingga 100 jumlah kata atau tidak (not_long_prof). Dimana ini menunjukkan bahwa iklan ditulis oleh perusahaan asli yang memeiliki narasi profil perusahaan yang cukup panjang.
Jumlah Kata di bawah 10 (jumlah kata < 10) di Profil Pekerjaan
Jumlah Kata di atas 10 dan di bawah 100 (10 > jumlah kata < 100) di Profil Pekerjaan
Jumlah Kata di bawah 10 (jumlah kata < 10) di Deskripsi Perkerjaan
Jumlah Kata di bawah 10 (jumlah kata < 10) di Syarat Kerja
Dibuktikan dari keseluruhan gambar grafik di atas, bahwasanya jumlah kata dalam teks narasi iklan kerja juga turut berpengaruh pada bagaimana keabsahan suatu iklan lowongan kerja. Dimana dapat disimpulkan rata-rata iklan lowongan asli memiliki narasi profil perusahaan, deskripsi pekerjaan, dan deskripsi syarat kerja yang cukup panjang melebihi 10 kata.
Berdasarkan grafik, dalam menentukan apakah lowongan iklan itu cenderung palsu atau tidak ialah cukup ditentukan dengan keberadaan spam word dalam kalimat narasi iklan lowongan. Dimana berdasarkan grafik, untuk lowongan iklan yang asli (real) kecendrungannya adalah tidak memiliki kata-kata spam word seperti: “easy money”, “be your own boss”, “work from home” dan sejenisnya. Sedang untuk jenis lowongan iklan yang palsu (fraud) memiliki kecendrungan untuk menampilkan spam word tersebut walaupun hanya segelintir saja yang melakukannya, hal ini juga dapat diamati melalui grafik di atas.
Maksud dari tanda baca berulang (consecutive punctuation) di sini adalah kecendrungan lowongan kerja memiliki imbuhan atau tanda baca yang mengesankan sedang menegaskan suatu hal. Sebagai contoh adalah dalam kalimat “Buruan daftar dan Anda akan cepat menjadi kaya!!!” dan sejenisnya. Pada kalimat tersebut terdapat penekanan berupa tanda seru beruntun (!!!) yang dapat diindikasikan sebagai iklan lowongan palsu dengan menghipotesiskannya sebagai salah satu penanda keabsahan iklan lowongan.
Hal ini dapat dibuktikan melalui grafik, bahwa rata-rata lowongan yang asli tidak atau sangat langka dalam membubuhkan tanda baca penekanan berulang seperti yang telah diterangkan sebelum ini.
Setelah dilakukannya tahap pemrosesan dataset yang diperoleh sebelumnya dari tautan Kaggle dengan menghasilkan objek baru bernama df_fin, sesuai dengan tujuan awal kita maka pada tahap ini akan dilakukan pembentukan model pembelajaran mesin berdasarkan input variabel biner yang telah kita buat sebelumnya. Ke dalam tahap ini akan dilakukan:
=========
Bagan ini akan menunjukkan proses penghilangan nilai NA yang dimungkinkan terdapat di dalam dataset. Pengubahan nilai NA juga bermaksud sebagai suatu usaha untuk “berjaga-jaga” agar pada saat pembuatan model tidak terjadi galat (error) di tengah proses. Pengeliminasian nilai NA akan difokuskan terutama di variabel biner sebagai variabel yang akan digunakan untuk pembuatan model pembelajaran mesin.
job_id title location
0 0 346
department company_profile description
11547 3308 0
requirements benefits employment_type
2694 7206 3471
required_experience required_education industry
7050 8105 4903
funct count_prof count_desc
6455 0 1
count_req count_benf telecommuting
6 22 0
has_company_logo has_questions addr_low_edu
0 0 0
us_based dollar_title dollar_desc
0 0 0
html_desc email_link html_req
0 0 0
html_benf short_prof not_long_prof
0 0 0
short_desc short_req spam_wrd
1 6 0
cons_punct fraudulent
0 0
Jika dilihat dari pemeriksaan awal, maka dapat dipastikan keberadaan NA terdapat di variabel short_desc dan short_req. Kepada kedua variabel ini maka akan dilakukan langkah pengeliminasian nilai NA dengan mengubahnya menjadi nilai ‘0’. Pengecekkan ulang terhadap isi dataset setelah dilakukan pengeliminasian nilai NA menunjukkan hasil berikut:
job_id title location
0 0 346
department company_profile description
11547 3308 0
requirements benefits employment_type
2694 7206 3471
required_experience required_education industry
7050 8105 4903
funct count_prof count_desc
6455 0 1
count_req count_benf telecommuting
6 22 0
has_company_logo has_questions addr_low_edu
0 0 0
us_based dollar_title dollar_desc
0 0 0
html_desc email_link html_req
0 0 0
html_benf short_prof not_long_prof
0 0 0
short_desc short_req spam_wrd
0 0 0
cons_punct fraudulent
0 0
Disini sudah dipastikan bahwa dataset raw sudah tidak mengandung NA kecuali di variabel-variabel non biner (yang tidak menjadi variabel pembentuk model pembelajaran mesin).
Sebelum melakukan pembagian data menjadi data latihan dan data pegujian, dari data awal akan diambil 6 data dengan label yang berimbang secara manual yang kemudian ditujukan menjadi data verifikasi. Tujuan dibentuk data sekecil ini untuk melihat kemampuan model dalam memberikan dan mengukur kemampuan dalam mereproduksi prediksi.
Selanjutnya pada bagan ini akan melakukan pembagian dataset dengan rasio pemisahan 80:20, dengan 80% dataset menjadi data latihan model (training) dan 20% sisanya menjadi data pengujian (testing).
Adapun di bagian pembagian dataset ini, akan dilakukan upaya downsampling mengingat terjadi ketimpangan atara data iklan yang terlabel asli (real) dengan data iklan yang terlabel palsu (fraud). Sebelumnya, dilakukan pengecekkan terhadap proporsi variabel target data dengan melakukan berikut:
0 1
13611 689
Terlihat bahwasanya terjadi ketimpangan yang cukup besar, yang oleh karna itu akan dilakukan downsampling pada bagian yang terlabeli “0” atau terlabeli iklan asli (real).
0 1
689 689
Setelah dilakukannya downsampling, tampak bahwa kedua label sudah proporsional dalam jumlah.
Bagan pembuatan model dilakukan dalam 2 tahap: pembentukan k-fold Cross Validation dan pembuatan model Random Forest.
Pembentukan k-fold Cross Validation dapat dilakukan sebagai berikut:
Dan pelaksanaan pembuatan model untk kedua dataset pelatihan (normal dan downsampling) akan dinyatakan dengan berikut:
Dipilihnya metode Random Forest untuk pembuatan model adalah berdasarkan hasil penelitian yang dibuat dengan tujuan yang sama dalam proyek ini. Dimana pada penelitian tersebut dengan memasukkan variabel-variabel yang telah ditentukan akan memeberikan hasil yang memuaskan dengan waktu pembentukan model yang sangat cepat. Hasil prediksi mencapai akurasi hingga 90,556% dengan kecepatan pembentukan model selama 0,45 detik di dalam penelitian tersebut. [1]
Untuk melakukan penghematan waktu, model pembelajaran mesin dapat disimpan dengan file .RDS dengan melakukan berikut
Setelah kedua model dibuat maka selanjutnya adalah memeriksa hasil yang didapatkan dengan menggunakan dataset penguji (test samples) yang telah dipersiapkan sebelumnya kepada model pembelajaran mesin. Berikut merupakan penerapan model pada dataset pengujian:
Hasil yang di dapatkan kemudian dijikan melalui Confussion Matrix dan akan dilihat perbandingan antara dataset normal dengan yang telah di downsample.
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 3371 126
1 29 48
Accuracy : 0.9566
95% CI : (0.9494, 0.9631)
No Information Rate : 0.9513
P-Value [Acc > NIR] : 0.07335
Kappa : 0.3635
Mcnemar's Test P-Value : 1.249e-14
Sensitivity : 0.27586
Specificity : 0.99147
Pos Pred Value : 0.62338
Neg Pred Value : 0.96397
Prevalence : 0.04868
Detection Rate : 0.01343
Detection Prevalence : 0.02154
Balanced Accuracy : 0.63367
'Positive' Class : 1
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 2881 29
1 519 145
Accuracy : 0.8467
95% CI : (0.8344, 0.8583)
No Information Rate : 0.9513
P-Value [Acc > NIR] : 1
Kappa : 0.2914
Mcnemar's Test P-Value : <2e-16
Sensitivity : 0.83333
Specificity : 0.84735
Pos Pred Value : 0.21837
Neg Pred Value : 0.99003
Prevalence : 0.04868
Detection Rate : 0.04057
Detection Prevalence : 0.18579
Balanced Accuracy : 0.84034
'Positive' Class : 1
Hasil perbandingan Confussion Matrix di atas antara dataset yang telah di-downsampling dengan yang masih dalam proporsi asli, menunjukkan bahwa model yang dihasilkan dari dataset yang di-downsample walaupun memiliki tingkat akurasi yang rendah sebaliknya menunjukkan nilai recall (sensitivity) yang cukup tinggi. Dalam kasus ini, model dengan nilai recall yang tinggi sangat dibutuhkan mengingat maraknya penipuan (fraudulence) semakin marak akhir-akhir ini seiring dengan matangnya jagat dunia maya.
Untuk memastikan keajegan model yang telah dibuat, selanjutnya model akan dicoba untuk memprediksikan hasil dari data verifikasi. Dengan melakukan cara di bawah:
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 2 0
1 1 3
Accuracy : 0.8333
95% CI : (0.3588, 0.9958)
No Information Rate : 0.5
P-Value [Acc > NIR] : 0.1094
Kappa : 0.6667
Mcnemar's Test P-Value : 1.0000
Sensitivity : 1.0000
Specificity : 0.6667
Pos Pred Value : 0.7500
Neg Pred Value : 1.0000
Prevalence : 0.5000
Detection Rate : 0.5000
Detection Prevalence : 0.6667
Balanced Accuracy : 0.8333
'Positive' Class : 1
Terlihat dari Confussion Matrix di atas, hasil prediksi model mampu menerka cukup tepat dengan memberikan terkaan terhadap 3 data iklan palsu dengan tepat. Dengan ini dapat dikatakan bahwasanya model yang dibuat dengan menerapkan downsampling menghasilkan prediksi data yang mendekati tepat.
Di dapatkan dengan menerapkan metode Random Forest, pengklasifikasian terhadap label lowongan iklan menghasilkan hasil yang memuaskan dengan memberikan hampir 83% nilai recall dan model Random Forest sangat cocok untuk melakukan klasifikasi pada kondisi variabel yang tidak berpola.
(1) S. Vidros, C. Kolias, G. Kambourakis, L. Akoglu, “Automatic Detection of Online Recruitment Frauds: Characteristics, Methods, and a Public Dataset”, Future Internet, March 2017