1 Latar Belakang

Program rekrutmen kampus adalah program yang dilakukan di dalam universitas atau lembaga pendidikan lain untuk menyeleksi dan penerimaan tenaga kerja yang dilakukan oleh perusahaan yang sedang membuka lowongan kerja di perguruan tinggi atau suatu universitas tertentu. Program ini diperuntukkan bagi mahasiswa/i yang hampir menyelesaikan studi mereka.

Dalam project ini, Universitas XYZ ingin membangun model machine learning untuk mengetahui hal yang menjadi pengaruh bagi mahasiswa/i yang di rekrut bekerja dengan yang tidak. Sehingga pihak universitas bisa memberikan perhatian khusus dan membantu mahasiswa/i mendapatkan pekerjaan.

2 Persiapan Data

2.1 Packages

Sebelum kita melangkah lebih jauh dalam proses pengolahan data, sejatinya pada saat kita ingin menggunakan R (atau bahasa pemrograman lainnya), diperlukan beberapa packages untuk memudahkan kita dalam bekerja. Berikut adalah beberapa package yang harus di install terlebih dahulu.

2.2 Import Data

Data yang digunakan dalam project ini adalah data “Campus Recruitment”, silahkan kunjungi laman ini : https://www.kaggle.com/benroshan/factors-affecting-campus-placement untuk mendownload data.

Setelah memanggil data, kita bisa melihat bahwa dataset ini terdiri dari 215 observasi dengan 15 variabel didalamnya.

## [1] 215  15
##  [1] "sl_no"          "gender"         "ssc_p"          "ssc_b"         
##  [5] "hsc_p"          "hsc_b"          "hsc_s"          "degree_p"      
##  [9] "degree_t"       "workex"         "etest_p"        "specialisation"
## [13] "mba_p"          "status"         "salary"

2.3 Deskripsi Variabel

Berikut ini dilampirkan beberapa penjelasan singkat mengenai variabel yang digunakan dalam project ini.

Variabel Deskripsi
sl_no Serial Number
gender Candidate gender –> Male=‘M’,Female=‘F’
ssc_p SSC (10th) Percentage
ssc_b SSC Board of Education –> Central (or) Others
hsc_p HSC (12th) percentage
hsc_b HSC Board of Education –> Central/ Others
hsc_s Specialization in HSC
degree_p Degree Percentage
degree_t Under Graduation (Degree type)- Field of degree education
workex Work Experience
etest_p Employability test percentage ( conducted by college)
specialisation Post Graduation(MBA)- Specialization
mba_p MBA percentage
status Status of placement- Placed/Not placed
salary Salary offered by corporate to candidates

3 Pembersihan Data

3.1 Periksa Struktur Data

Kemudian kita harus melihat struktur dari dataset kita, apakah struktur nya sudah benar atau belum. Berikut adalah struktur dataset yang ada:

Dikarenakan struktur data Univ ini masih berantakan, maka kita harus merapikannya sesuai dengan identitas tiap variabel, apakah data tersebut numeric atau character. Sehingga nantinya data bisa di olah dengan baik.

## 'data.frame':    215 obs. of  15 variables:
##  $ sl_no         : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ gender        : chr  "M" "M" "M" "M" ...
##  $ ssc_p         : num  67 79.3 65 56 85.8 ...
##  $ ssc_b         : Factor w/ 2 levels "Central","Others": 2 1 1 1 1 2 2 1 1 1 ...
##  $ hsc_p         : num  91 78.3 68 52 73.6 ...
##  $ hsc_b         : Factor w/ 2 levels "Central","Others": 2 2 1 1 1 2 2 1 1 1 ...
##  $ hsc_s         : Factor w/ 3 levels "Arts","Commerce",..: 2 3 1 3 2 3 2 3 2 2 ...
##  $ degree_p      : num  58 77.5 64 52 73.3 ...
##  $ degree_t      : Factor w/ 3 levels "Comm&Mgmt","Others",..: 3 3 1 3 1 3 1 3 1 1 ...
##  $ workex        : Factor w/ 2 levels "No","Yes": 1 2 1 1 1 2 1 2 1 1 ...
##  $ etest_p       : num  55 86.5 75 66 96.8 ...
##  $ specialisation: Factor w/ 2 levels "Mkt&Fin","Mkt&HR": 2 1 1 2 1 1 1 1 1 1 ...
##  $ mba_p         : num  58.8 66.3 57.8 59.4 55.5 ...
##  $ status        : Factor w/ 2 levels "Not Placed","Placed": 2 2 2 1 2 1 1 2 2 1 ...
##  $ salary        : int  270000 200000 250000 NA 425000 NA NA 252000 231000 NA ...

3.2 Eliminasi Variabel

Dari struktur data univ terdapat variabel sl_no dan salary. Variabel sl_no tidak memberi informasi yang cukup penting dalam analisis data. Sehingga kita bisa menghilangkan variabel tersebut. Variabel salary juga kita hilangkan karena variabel tersebut bukan tujuan dari project ini.

3.3 Periksa Data Hilang

Dalam setiap proses pengolahan data, sering sekali kita melakukan pemeriksaan data yang hilang (missing values) sebelum melakukan proses analisa. Secara sederhana dapat dilakukan pemerikasaan data NA dengan R, sebagai berikut:

##         gender          ssc_p          ssc_b          hsc_p          hsc_b 
##              0              0              0              0              0 
##          hsc_s       degree_p       degree_t         workex        etest_p 
##              0              0              0              0              0 
## specialisation          mba_p         status 
##              0              0              0

Hasilnya ternyata sangat memuaskan karena tidak ditemukan missing value pada dataset univ ini.

3.4 Data Duplikat

Kita juga harus mengecek apakah ada data yang sama, karena jika ditemukan bisa mempengaruhi pengolahan data kita.

Kerena sudah tidak ada lagi data yang bermasalah, selanjutnya data yang sudah dibersihkan disimpan untuk kemperluan proses selanjutnya.

Jika kita ingin melihat ringkasan data kita;

##     gender              ssc_p           ssc_b         hsc_p           hsc_b    
##  Length:215         Min.   :40.89   Central:116   Min.   :37.00   Central: 84  
##  Class :character   1st Qu.:60.60   Others : 99   1st Qu.:60.90   Others :131  
##  Mode  :character   Median :67.00                 Median :65.00                
##                     Mean   :67.30                 Mean   :66.33                
##                     3rd Qu.:75.70                 3rd Qu.:73.00                
##                     Max.   :89.40                 Max.   :97.70                
##       hsc_s        degree_p          degree_t   workex       etest_p    
##  Arts    : 11   Min.   :50.00   Comm&Mgmt:145   No :141   Min.   :50.0  
##  Commerce:113   1st Qu.:61.00   Others   : 11   Yes: 74   1st Qu.:60.0  
##  Science : 91   Median :66.00   Sci&Tech : 59             Median :71.0  
##                 Mean   :66.37                             Mean   :72.1  
##                 3rd Qu.:72.00                             3rd Qu.:83.5  
##                 Max.   :91.00                             Max.   :98.0  
##  specialisation     mba_p              status   
##  Mkt&Fin:120    Min.   :51.21   Not Placed: 67  
##  Mkt&HR : 95    1st Qu.:57.95   Placed    :148  
##                 Median :62.00                   
##                 Mean   :62.28                   
##                 3rd Qu.:66.25                   
##                 Max.   :77.89

Setelah merapikan data, kita bisa menampilkanya untuk meyakinkan kalau data kita sudah dalam keadaan yang baik dan siap untuk di olah.

4 EDA ( Exploratory Data Analysis)

4.1 Matriks Korelasi

Lalu kita melihat analisa korelasi untuk setiap variabel yang ada.

Matriks korelasi diatas menunjukan bahwa semua variabel saling berkorelasi. Korelasi yang paling tinggi nilainya adalah antara variabel ssc_p dan hsc_p juga antara variabel ssc_p dan degree_p, sama-sama memiliki korelasi positif sebesar 0.5

5 Pemisahan Data

5.1 Split Data (Train and Test)

Dari 215 data observasi, saya membagi 80% sebagai data train dan 20% sebagai data test. Data train digunakan untuk melakukan pemodelan dan data test dianggap sebagai unseen data yang digunakan untuk menguji seberapa baik model yang dibuat.

Dataset univ memiliki data train sebanyak 172 observasi dan memiliki data test sebanyak 43 observasi. Lalu kita bisa melanjutkan pengolahan data kita.

6 Membangun Model: Decision Tree

Decision tree merupakan suatu metode klasifikasi yang menggunakan struktur pohon, dimana setiap node merepresentasikan atribut dan cabangnya merepresentasikan nilai dari atribut, sedangkan daunnya digunakan untuk merepresentasikan kelas. Decision tree merupakan metode klasifikasi yang cukup powerfull karena memperbolehkan antar prediktornya saling berkorelasi, prediktor juga dapat berupa data numerik ataupun kategorik dan cukup interpretabale.

Dari Plot Decision Tree di atas, kita dapat melihat pembagian status bekerja dan tidak bekerja (placed and not placed) dengan variabel independen yang kita miliki. Dari paling atas, kita bisa melihat bahwa mahasiswa/i yang bekerja ada sebanyak 75% yang di pengaruhi oleh nilai variabel ssc_p, Lalu dari 75% itu dipecah lagi dengan variabel independen lainnya yang mempengaruhi mahasiswa/i ditempatkan bekerja atau tidak.

Data diatas merupakan hasil prediksi metode Decision Tree terhadap data univ. status merupakan data sebenarnya dan status prediction merupakan data hasil prediksi, kemudian data Not Placed dan Placed merupakan nilai probability terhadap setiap kelas dari target variabel. Sehingga, hasil prediksi pada status prediction diambil berdasarkan nilai probability yang paling tinggi.

Dapat dilihat bahwa hasil prediksi masih ada yang belum sesuai, oleh dari itu mari kita cek tingkat akurasi nya,

##             dtree_prediction_train
##              Not Placed Placed
##   Not Placed         53      5
##   Placed             14    100
##             dtree_prediction
##              Not Placed Placed
##   Not Placed          6      3
##   Placed              5     29
## [1] "Accuracy for train 0.88953488372093"
## [1] "Accuracy for test 0.813953488372093"

Hasil evaluasi model Decision Tree diatas menunjukkan tingkat akurasi hasil klasifikasi lumayan bagus, dimana tingkat akurasi pada data train sebesar 88.9% dan tingkat akurasi pada data test sebesar 81.3%

7 Kesimpulan

Berdasarkan dataset dan pemodelan yang dilakukan dengan model decision tree, hasil evaluasi menggunakan pada model tersebut menunjukan tingkat akurasi hasil klasifikasi model ini 88.89% apabila model ini diuji kembali terhadap data data train, sedangkan tingkat akurasi pada data test sebesar 81.3%. Sehingga model ini cukup layak diimplementasikan untuk masalah kalsifikasi status bekerja atau tidak bekerjanya mahasiswa di Universitas XYZ.