Algoritma C45

Merupakan salah satu algoritma yang digunakan untuk melakukan klasifikasi dan segmentasi dan bersifat prediktif

Tahapan Algoritma C45

1.Pertama kali yang dilihat adalah hasil Alat IQ General mental Ability, jika rerata, diatas rerata bahkan istimewa maka akan dilanjutkan ke pemeriksaaan selanjutnya, jika berada pada dibawah rerata bahkan jauh dibawah rerata maka akan dinyatakan tidak diangkat. Jumlah yang diproses ke langkah berikutnya pada data tersebut adalah : 66%, dan 34% dari data langsung dinyakatakan tidak lulus.

2.Langkah Kedua Wawancara, jika wawancara lulus maka langsung dipromosi menjadi pegawai tetap (terdapat 53% data), sedangkan yang tidak lulus wawancara maka akan dilanjutkan ke langkah ke tiga.

3.Langkah ketiga dilihat tingkat absensi atau keterlambatannya Jika terlambatnya lebih atau sama dengan 4 kali sebulan langsung dinyatakan “tidak diangkat”( terdapat 2% dari seluruh data), namun jika keterlambatannya tidak pernah hingga 2-3X maka akan dilanjutkan ke langkah ke empat

4.Langkah Ke empat, jika tingka IQ GMA diatas rerata, atau rerata langsung diangkat menjadi pegawai tetap (terdapat 8% dari data), sedangkan jika IQnya dibawah bahkan jauh dibawah rerata lanjutkan kelangkah 5

5.Langkah 5 Jika keterlambatan lebih kecil dari 2 bulan maka diangkat sebagai pegawai tetap (terdapat 2% dari data), Jika tidak lanjutkan ke langkah selanjutnya.

6.Langkah 6 jika Hubungan sosial baik angkat menjadi pegawai tetap (untuk saat ini tidak ada kasus), tetapi jika hubungan sosial tidak baik atau bermasalah maka tidak diangkat jumlahnya ada 1% kasus.

Eksperimen Algoritma C45

1. akan menampilkan data set karyawan sebagai berikut;

library(readxl)
karyawan <- read_excel("D:/karyawan.xlsx")
View(karyawan)

2. saya akan melaksanakan program Rstudio dengan langkah mendwonload library yang ada di bawah ini

Library

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(party)
## Loading required package: grid
## Loading required package: mvtnorm
## Loading required package: modeltools
## Loading required package: stats4
## Loading required package: strucchange
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich

3. dari hasil program ini,dapat dilihat hasil data set karyawan yang meliputi angka tetap sebanyak 7 dan tidakndi angkat 3

karyawan <- read_excel("D:/karyawan.xlsx")
table(karyawan$Promosi)
## 
##   Angkat Tetap Tidak diangkat 
##              7              3

4. Mendoload library terlebih dahulu

library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(rpart.plot)
## Loading required package: rpart

5. dari hasil penelitian disini bisa kita lihat min,median,1st qu

 summary(karyawan)
##        No        Keterlambatan       Wawancara         Hubungan Sosial   
##  Min.   : 1.00   Length:10          Length:10          Length:10         
##  1st Qu.: 3.25   Class :character   Class :character   Class :character  
##  Median : 5.50   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 5.50                                                           
##  3rd Qu.: 7.75                                                           
##  Max.   :10.00                                                           
##    Kinerja             IQ_GMA            Promosi         
##  Length:10          Length:10          Length:10         
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
## 

6. dari hasil ini dapat diliat angka keterlambatan dalam 4 bulan sekali maupun 2 bulan sekali

 str(karyawan)
## tibble [10 × 7] (S3: tbl_df/tbl/data.frame)
##  $ No             : num [1:10] 1 2 3 4 5 6 7 8 9 10
##  $ Keterlambatan  : chr [1:10] "Terlambat>4x sebulan" "Terlambat<2x sebulan" "Terlambat 2 - 4x sebulan" "Terlambat<2x sebulan" ...
##  $ Wawancara      : chr [1:10] "Lulus" "Tidak Lulus" "Tidak Lulus" "Tidak Lulus" ...
##  $ Hubungan Sosial: chr [1:10] "Baik" "Baik" "Baik" "Bermasalah" ...
##  $ Kinerja        : chr [1:10] "Baik" "Baik" "Baik" "Cukup" ...
##  $ IQ_GMA         : chr [1:10] "Istimewa" "Istimewa" "Istimewa" "Rerata" ...
##  $ Promosi        : chr [1:10] "Angkat Tetap" "Angkat Tetap" "Angkat Tetap" "Angkat Tetap" ...

7. Melihat data karyawan yang dipromosikan sebagai berikut

set.seed(3033)
intrain <- createDataPartition(y = karyawan$Promosi, p= 0.7, list = FALSE)
 training <- karyawan[intrain,]
 testing <- karyawan[-intrain,]
 dim(training);dim(testing)
## [1] 8 7
## [1] 2 7
library(rpart)
library(rpart.plot)
tress<-rpart(Promosi ~., data = karyawan, method = 'class' )                  
rpart.plot(tress)

# Referensi https://rpubs.com/andryan-uinmaliki/prediksi-pasien-sakit-diabetes-menggunakan-decision-tree

https://rpubs.com/heruwiryanto/ML-C45-HR

https://rpubs.com/Daniramdani77/995683