Machine Learning

Saya ambilkan definisi apa itu Machine Learning dari Wikipedia sebagai berikut : Pembelajaran mesin, cabang dari kecerdasan buatan, adalah disiplin ilmu yang mencakup perancangan dan pengembangan algoritma yang memungkinkan komputer untuk mengembangkan perilaku yang didasarkan pada data empiris, seperti dari sensor data basis data. Sistem pembelajar dapat memanfaatkan contoh (data) untuk menangkap ciri yang diperlukan dari probabilitas yang mendasarinya (yang tidak diketahui). Data dapat dilihat sebagai contoh yang menggambarkan hubungan antara variabel yang diamati. Fokus besar penelitian pembelajaran mesin adalah bagaimana mengenali secara otomatis pola kompleks dan membuat keputusan cerdas berdasarkan data. Kesukarannya terjadi karena himpunan semua peri laku yang mungkin, dari semua masukan yang dimungkinkan, terlalu besar untuk diliput oleh himpunan contoh pengamatan (data pelatihan). Karena itu pembelajar harus merampatkan (generalisasi) perilaku dari contoh yang ada untuk menghasilkan keluaran yang berguna dalam kasus-kasus baru.

Salah satu yang Mudah untuk digunakan adalah Pengelompokan merupakan salah satu pembelajaran yang tergolong dalam pembelajaran yang tidak memerlukan contoh (unsupervised learning). Definisi sederhana dari pengelompokan adalah sebuah proses untuk mengorganisasikan objek menjadi beberapa kelompok yang memiliki anggota yang mirip dalam hal tertentu. Algoritma pengelompokan menerima sekumpulan masukan dan kemudian membuat sebuah pembagian (kelompok-kelompok) dari masukan tersebut. Dua masukan yang berada pada kelompok yang sama seharusnya memiliki banyak kesamaan dibandingkan dengan dua masukan yang berada pada kelompok yang berbeda.

Sebagai contoh, kami memiliki data-data Kinerja yakni terdiri dari nilai Task Performance dan nilai Contextual Performance, dan Nilai Engagement yang terdiri dari Vigorous(Kesigapan mental) dan Dedication (Dedikasi). Kemudian data Klasifikasi engagement yang diperoleh dari atasan langsung, peer dan anak buahnya.

Memanggil Data

data<-read.csv("/home/heru/Desktop/PE-Mapping.csv", header=T, sep=',')

Melihat Data

head(data)

Plot Antar Variabel

Dari tabel-Tabel diatas tampak jelas data mengelompok pada area tertentu, untuk warna yang biru, kuning dan hijau

Membuat Model dan melakukan Prediksi dengan menggunakan model k-Nearest Neighbors (KNN)

The KNN atau k-tetangga terdekat algoritma adalah salah satu algoritma pembelajaran mesin sederhana dan merupakan contoh pembelajaran berbasis misalnya, di mana data baru diklasifikasikan berdasarkan disimpan, contoh label. Lebih khusus, jarak antara data yang tersimpan dan contoh baru dihitung dengan cara semacam ukuran kesamaan. mengukur kesamaan ini biasanya diungkapkan oleh ukuran jarak seperti jarak Euclidean, cosine similarity atau jarak Manhattan. Dengan kata lain, kesamaan data yang sudah di sistem dihitung untuk setiap titik data baru yang Anda masukan ke dalam sistem. Kemudian, Anda menggunakan nilai kesamaan ini untuk melakukan pemodelan prediktif. pemodelan prediktif adalah salah klasifikasi, menetapkan label atau kelas ke instance baru, atau regresi, menempatkan nilai ke instance baru. Apakah Anda mengklasifikasikan atau menetapkan nilai ke instance baru tentu saja tergantung pada Anda bagaimana Anda menulis model dengan KNN.

Algoritma tetangga k-terdekat menambah algoritma dasar ini bahwa setelah jarak titik baru ke semua titik data yang tersimpan telah dihitung, nilai-nilai jarak diurutkan dan k-tetangga terdekat ditentukan. Label tetangga tersebut dikumpulkan dan suara mayoritas atau orang tertimbang digunakan untuk klasifikasi atau regresi tujuan. Dengan kata lain, semakin tinggi skor untuk data titik tertentu yang sudah disimpan, semakin besar kemungkinan bahwa contoh baru akan menerima klasifikasi yang sama seperti yang dari tetangga. Dalam kasus regresi, nilai yang akan ditugaskan ke titik data baru adalah mean dari k tetangga terdekatnya.

Melakukan Normalisasi Data

##     Eng.Vig          Eng.Ded         Task.Perf        Cont.Perf      
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.00000  
##  1st Qu.:0.2222   1st Qu.:0.3333   1st Qu.:0.1017   1st Qu.:0.08333  
##  Median :0.4167   Median :0.4167   Median :0.5678   Median :0.50000  
##  Mean   :0.4287   Mean   :0.4406   Mean   :0.4675   Mean   :0.45806  
##  3rd Qu.:0.5833   3rd Qu.:0.5417   3rd Qu.:0.6949   3rd Qu.:0.70833  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :1.00000

Data yang diperoleh data dengan distribusi normal

Membagi Data sebagai data test dan data Training dan prediksi

set.seed(1234)

ind <- sample(2, nrow(data), replace=TRUE, prob=c(0.67, 0.33))
data.training <- data[ind==1, 1:4]
data.test <- data[ind==2, 1:4]

data.trainLabels <- data[ind==1, 5]
data.testLabels <- data[ind==2, 5]

data_pred <- knn(train = data.training, test = data.test, cl = data.trainLabels, k=3)
data_pred
##  [1] Dis-Engage-Hobo       Dis-Engage-Hobo       Dis-Engage-Hobo      
##  [4] Dis-Engage-Hobo       Dis-Engage-Hobo       Dis-Engage-Hobo      
##  [7] Dis-Engage-Hobo       Dis-Engage-Hobo       Dis-Engage-Hobo      
## [10] Dis-Engage-Hobo       Dis-Engage-Hobo       Dis-Engage-Hobo      
## [13] Almost-Engage-Harvest Almost-Engage-Harvest Almost-Engage-Harvest
## [16] Almost-Engage-Harvest Almost-Engage-Harvest Almost-Engage-Harvest
## [19] Almost-Engage-Harvest Almost-Engage-Harvest Almost-Engage-Harvest
## [22] Almost-Engage-Harvest Almost-Engage-Harvest Almost-Engage-Harvest
## [25] Fully-Engage-Hero     Fully-Engage-Hero     Fully-Engage-Hero    
## [28] Fully-Engage-Hero     Almost-Engage-Harvest Fully-Engage-Hero    
## [31] Fully-Engage-Hero     Fully-Engage-Hero     Fully-Engage-Hero    
## [34] Fully-Engage-Hero     Fully-Engage-Hero     Fully-Engage-Hero    
## [37] Fully-Engage-Hero     Fully-Engage-Hero     Fully-Engage-Hero    
## [40] Fully-Engage-Hero    
## Levels: Almost-Engage-Harvest Dis-Engage-Hobo Fully-Engage-Hero

Akurasi Prediksi

library(gmodels)
CrossTable(x = data.testLabels, y = data_pred, prop.chisq=FALSE)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |           N / Row Total |
## |           N / Col Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  40 
## 
##  
##                       | data_pred 
##       data.testLabels | Almost-Engage-Harvest |       Dis-Engage-Hobo |     Fully-Engage-Hero |             Row Total | 
## ----------------------|-----------------------|-----------------------|-----------------------|-----------------------|
## Almost-Engage-Harvest |                    12 |                     0 |                     0 |                    12 | 
##                       |                 1.000 |                 0.000 |                 0.000 |                 0.300 | 
##                       |                 0.923 |                 0.000 |                 0.000 |                       | 
##                       |                 0.300 |                 0.000 |                 0.000 |                       | 
## ----------------------|-----------------------|-----------------------|-----------------------|-----------------------|
##       Dis-Engage-Hobo |                     0 |                    12 |                     0 |                    12 | 
##                       |                 0.000 |                 1.000 |                 0.000 |                 0.300 | 
##                       |                 0.000 |                 1.000 |                 0.000 |                       | 
##                       |                 0.000 |                 0.300 |                 0.000 |                       | 
## ----------------------|-----------------------|-----------------------|-----------------------|-----------------------|
##     Fully-Engage-Hero |                     1 |                     0 |                    15 |                    16 | 
##                       |                 0.062 |                 0.000 |                 0.938 |                 0.400 | 
##                       |                 0.077 |                 0.000 |                 1.000 |                       | 
##                       |                 0.025 |                 0.000 |                 0.375 |                       | 
## ----------------------|-----------------------|-----------------------|-----------------------|-----------------------|
##          Column Total |                    13 |                    12 |                    15 |                    40 | 
##                       |                 0.325 |                 0.300 |                 0.375 |                       | 
## ----------------------|-----------------------|-----------------------|-----------------------|-----------------------|
## 
## 
p<-sum( data_pred == data.testLabels ) / length( data_pred )
error <- 1 -p
print(error)
## [1] 0.025
Accuracy<-(1 - error)*100
print(Accuracy)
## [1] 97.5

Akurasi dari prediksi Model k-Nearest Neighbors (KNN) ini adalah : 97.5%