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.
data<-read.csv("/home/heru/Desktop/PE-Mapping.csv", header=T, sep=',')
head(data)
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.
## 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
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
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%