SlideShare a Scribd company logo
1 of 272
Download to read offline
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/312160783
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R
Book · February 2019
CITATION
1
READS
9,233
2 authors, including:
Some of the authors of this publication are also working on these related projects:
Effect of features Generated from additional segments in protein sequence classification View project
IT Asset Management View project
M Reza Faisal
Universitas Lambung Mangkurat
52 PUBLICATIONS   67 CITATIONS   
SEE PROFILE
All content following this page was uploaded by M Reza Faisal on 28 March 2019.
The user has requested enhancement of the downloaded file.
Belajar
DATA SCIENCE
Klasifikasi dengan Bahasa Pemrograman R
M. Reza Faisal
Dodon T. Nugrahadi
ii │ M. Reza Faisal & Dodon T. Nugrahadi
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R
© 2019 M. Reza Faisal & Dodon T. Nugrahadi
270 halaman, 16,5 x 23 cm
Katalog dalam Terbitan (KDT)
Perpustakaan Nasional Republik Indonesia
ISBN: 978-602-0950-59-4
Hak cipta dilindungi undang-undang. Dilarang memperbanyak sebagian atau seluruh isi buku
ini dalam bentuk apa pun, baik secara elektronik, termasuk memfotokopi, merekam, atau
dengan menggunakan sistem penyimpanan lainnya, tanpa izin tertulis dari penulis atau
penerbit.
Cetakan I: Februari 2019
Penerbit
Scripta Cendekia
Banjarbaru, Kalimantan Selatan, Indonesia
E: scriptacendekia@gmail.com
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ iii
Daftar Isi
Daftar Isi ................................................................................................iii
Daftar Gambar....................................................................................... ix
Bab I Pendahuluan..................................................................................1
1.1 Bagaimana Manusia Belajar Mengenali?...........................1
1.2 Kenapa Komputer Perlu Mempunyai Kemampuan
Belajar Seperti Manusia?...................................................2
1.3 Machine Learning .................................................................2
Domain Model ................................................................................2
Definisi.............................................................................................4
Istilah-Istilah....................................................................................4
Tipe...................................................................................................6
Langkah-Langkah Implementasi..................................................8
1.5 Machine Learning & Data Mining......................................9
Bab II Pengantar Pemrograman R......................................................11
2.1 Installasi................................................................................11
Comprehensive R Archive Network (CRAN) .......................... 11
Microsoft R Archive Network (MRAN) ....................................17
2.2 Tool Pemrograman .............................................................22
RGui................................................................................................ 22
RStudio........................................................................................... 26
R Tools for Visual Studio............................................................. 32
Bab III Fungsi-Fungsi Dasar R............................................................35
3.1 Package.................................................................................35
Installasi Package..........................................................................35
iv │ M. Reza Faisal & Dodon T. Nugrahadi
Memuat Package .......................................................................... 36
3.2 Working Directory ............................................................. 37
Mendapatkan Working Directory.............................................. 37
Menentukan Working Directory................................................ 38
3.3 Dataset ................................................................................. 38
3.4 Menulis Data Ke File.......................................................... 39
write.csv()...................................................................................... 39
write.table() ................................................................................... 40
3.5 Membaca File Text ............................................................. 40
read.csv() ....................................................................................... 40
read.table()..................................................................................... 41
3.5 Membaca File Excel............................................................ 41
3.6 Akses Database................................................................... 42
Akses Database MySQL .............................................................. 42
Akses Database SQL Server........................................................ 43
3.7 Menampilkan Data............................................................. 44
head() ............................................................................................. 45
tail() ................................................................................................ 45
View()............................................................................................. 45
obyek$rowName .......................................................................... 47
3.8 Memfilter Data.................................................................... 48
obyek[,x:y]..................................................................................... 48
obyek[x:y,]..................................................................................... 48
obyek[x1:y1, x2:y2]....................................................................... 48
obyek[which(), ]............................................................................ 49
3.9 Menggabung Data.............................................................. 49
rbind() ............................................................................................ 49
cbind() ............................................................................................ 50
3.10 Explorasi Data................................................................... 51
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ v
dim() ............................................................................................... 51
names()........................................................................................... 51
str()..................................................................................................52
table().............................................................................................. 52
summary() ..................................................................................... 53
3.11 Grafik ..................................................................................54
plot() ............................................................................................... 54
scatterplot3().................................................................................. 56
plot3d()........................................................................................... 57
hist()................................................................................................ 59
density() ......................................................................................... 60
pie().................................................................................................61
barplot() ......................................................................................... 63
boxplot()......................................................................................... 64
par() ................................................................................................ 64
3.12 Visualisasi Data .................................................................66
Principal Component Analysis (PCA).......................................67
Visualisasi 2D................................................................................ 69
Visualisasi 3D................................................................................ 70
3.13 Help.....................................................................................71
Bab IV Pengantar Klasifikasi..............................................................73
4.1 Definisi..................................................................................73
4.2 Data .......................................................................................73
4.3 Langkah-Langkah Pengembangan...................................78
Pengenalan Data...........................................................................78
Pembagian Data............................................................................79
Implementasi Algoritma Klasifikasi ..........................................82
Pengukuran Kinerja Algoritma Klasifikasi............................... 84
Bab V Pengenalan & Pembagian Data...............................................91
vi │ M. Reza Faisal & Dodon T. Nugrahadi
5.1 Pengenalan Data................................................................. 91
Dataset Iris..................................................................................... 91
Dataset Titanic .............................................................................. 97
Dataset Yeast............................................................................... 100
5.2 Pembagian Data................................................................ 105
Persiapan Working Directory................................................... 106
Data untuk Klasifikasi Binary Class ........................................ 106
Data untuk Klasifikasi Multi Class .......................................... 112
Bab VI Rancangan Aplikasi Klasifikasi ......................................... 115
6.1 Apa Langkah Selanjutnya? ............................................. 115
6.2 Rancangan Aplikasi ......................................................... 115
Rancangan Aplikasi 1 ................................................................ 116
Rancangan Aplikasi 2 ................................................................ 117
Rancangan Aplikasi 3 ................................................................ 117
Bab VII K-Nearest Neighbors (KNN)............................................... 121
7.1 Cara Kerja.......................................................................... 121
7.2 Persiapan ........................................................................... 122
7.3 Sintaks................................................................................ 122
7.4 Implementasi..................................................................... 123
Aplikasi 1..................................................................................... 123
Aplikasi 2..................................................................................... 126
Aplikasi 3..................................................................................... 134
7.5 Catatan............................................................................... 145
Bab VIII Naïve Bayes......................................................................... 147
8.1 Cara Kerja.......................................................................... 147
8.2 Persiapan ........................................................................... 152
8.3 Sintaks................................................................................ 152
8.4 Implementasi..................................................................... 154
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ vii
Aplikasi 1..................................................................................... 155
Aplikasi 2..................................................................................... 159
Aplikasi 3..................................................................................... 162
8.5 Catatan................................................................................166
Bab IX Support Vector Machine (SVM) ...........................................169
9.1 Cara Kerja...........................................................................169
9.2 Persiapan............................................................................171
9.3 Sintaks.................................................................................172
9.4 Implementasi .....................................................................173
Aplikasi 1..................................................................................... 173
Aplikasi 2..................................................................................... 176
Aplikasi 3..................................................................................... 180
9.5 Catatan................................................................................187
Bab X Decision Tree ............................................................................189
10.1 Cara Kerja.........................................................................189
10.2 Persiapan..........................................................................196
10.3 Sintaks...............................................................................196
10.4 Implementasi ...................................................................197
Aplikasi 1..................................................................................... 197
Aplikasi 2..................................................................................... 201
Aplikasi 3..................................................................................... 206
10.5 Catatan..............................................................................212
Bab XI Klasifikasi Kelas Tidak Seimbang ......................................213
11.1 Definisi & Efek Kelas Tidak Seimbang ........................213
KNN ............................................................................................. 214
Naïve Bayes................................................................................. 215
SVM .............................................................................................. 216
Decision Tree............................................................................... 218
viii │ M. Reza Faisal & Dodon T. Nugrahadi
11.2 Solusi Masalah................................................................ 219
11.3 Dataset Class Tidak Seimbang ..................................... 220
11.4 Solusi Pendekatan Data................................................. 222
Undersampling........................................................................... 222
Oversampling ............................................................................. 232
Gabungan Undersampling & Oversampling ......................... 239
11.5 Solusi Pendekatan Algoritma....................................... 246
Bootstrap Aggregating (Bagging) ............................................ 246
Boosting ....................................................................................... 247
Stacking........................................................................................ 248
11.6 Catatan............................................................................. 249
Daftar Pustaka ................................................................................... 251
Tentang Penulis................................................................................... 253
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ ix
Daftar Gambar
Gambar 1. Data, metode statistik dan kekuatan komputasi computer
(sumber: Machine Learning with R)..................................................... 3
Gambar 2. Dataset iris.................................................................................... 5
Gambar 3. Halaman download R-3.3.2 for Windows............................. 12
Gambar 4. Window Select Setup Language. ............................................ 12
Gambar 5. Window Setup - Welcome. ...................................................... 13
Gambar 6. Window Setup - Informasi lisensi........................................... 13
Gambar 7. Windows Setup - Lokasi folder installasi. ............................. 14
Gambar 8. Window Setup - Pemilihan komponen.................................. 14
Gambar 9. Window Setup - Pemilihan opsi startup................................ 15
Gambar 10. Window Setup - Memilih lokasi folder Start Menu........... 15
Gambar 11. Window Setup - Pemilihan task tambahan......................... 16
Gambar 12. Windows Setup - Proses installasi........................................ 16
Gambar 13. Window informasi akhir proses installasi........................... 17
Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome. .......... 18
Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi.
.................................................................................................................. 18
Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel
Library. ................................................................................................... 19
Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel
Library. ................................................................................................... 19
Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi.20
Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi.
.................................................................................................................. 20
Gambar 20. Window Microsoft R Open 3.3.1 Setup - Proses instalasi.. 21
Gambar 21. Window Microsoft R Open 3.3.1 Setup – proses installasi
selesai...................................................................................................... 21
x │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 22. RGui. ......................................................................................... 22
Gambar 23. R Console.................................................................................. 23
Gambar 24. Window R Editor..................................................................... 24
Gambar 25. Menyimpan file script R......................................................... 24
Gambar 26. Eksekusi file script R............................................................... 25
Gambar 27. Window R Graphics................................................................ 26
Gambar 28. Window RStudio Setup - Welcome. ..................................... 27
Gambar 29. Window RStudio Setup - Lokasi installasi. ......................... 27
Gambar 30. Window RStudio Setup - Memilih lokasi folder Start Menu.
.................................................................................................................. 28
Gambar 31. Window RStudio Setup - proses installasi........................... 28
Gambar 32. Window RStudio Setup - detail proses installasi................ 29
Gambar 33. Window RStudio Setup - Proses installasi selesai.............. 29
Gambar 34. Antarmuka RStudio................................................................ 30
Gambar 35. Fitur auto complete kode. ...................................................... 31
Gambar 36. Window Plots untuk menampilkan grafik.......................... 31
Gambar 37. Installasi R Tool 0.5 for Visual Studio 2015. ........................ 32
Gambar 38. Proses installasi R Tool 0.5 for Visual Studio. ..................... 33
Gambar 39. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai. 33
Gambar 40. Antarmuka R Tool for Visual Studio.................................... 34
Gambar 41. Proses installasi package pada R Tool for Visual Studio 2015.
.................................................................................................................. 36
Gambar 42. Proses installasi package pada RStudio. .............................. 36
Gambar 43. Daftar dataset pada RStudio.................................................. 38
Gambar 44. Daftar dataset pada R Tools for Visual Studio.................... 39
Gambar 45. Output fungsi View() pada R Tool for Visual Studio. ....... 46
Gambar 46. Output fungsi View() pada RStudio..................................... 46
Gambar 47. Output fungsi View() pada RGui.......................................... 47
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xi
Gambar 48. Grafik plot(iris[,1], iris[,2])..................................................... 54
Gambar 49. Grafik plot(cars)....................................................................... 55
Gambar 50. Grafik plot(iris)........................................................................ 56
Gambar 51. Grafik scatterplot3d().............................................................. 57
Gambar 52. Grafik plot3d()......................................................................... 58
Gambar 53. Grafik hist(mtcars[,1])............................................................. 60
Gambar 54. Grafik density. ......................................................................... 61
Gambar 55. Grafik pie()............................................................................... 62
Gambar 56. Grafik pie dataset iris.............................................................. 62
Gambar 57. Grafik barplot vertical. ........................................................... 63
Gambar 58. Grafik barplot horizontal. ...................................................... 63
Gambar 59. Grafik fungsi boxplot()........................................................... 64
Gambar 60. Fungsi par() untuk membuat 2 grafik dalam 1 kolom....... 65
Gambar 61. Fungsi par() untuk membuat 3 grafik dalam 1 kolom....... 65
Gambar 62. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2
kolom. ..................................................................................................... 66
Gambar 63. Grafik visualisasi 2D dengan fungsi biplot(). ..................... 69
Gambar 64. Grafik 2 dimensi fungsi pca2d()............................................ 70
Gambar 65. Grafik 3 dimensi fungsi pca3d()............................................ 71
Gambar 66. Output fungsi help() pada R Tools for Visual Studio........ 72
Gambar 67. Output fungsi help() pada RStudio...................................... 72
Gambar 68. Data yang dimiliki. ................................................................. 79
Gambar 69. Data dibagi menjadi data training dan testing. .................. 79
Gambar 70. Membagi data menjadi 2........................................................ 80
Gambar 71. Data dibagi 5 bagian............................................................... 80
Gambar 72. Data proses pertama............................................................... 80
Gambar 73. Data proses kedua................................................................... 81
Gambar 74. Data proses ketiga................................................................... 81
xii │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 75. Data proses keempat............................................................... 81
Gambar 76. Data proses keempat............................................................... 81
Gambar 77. 5-fold cross validation data iris. ............................................ 82
Gambar 78. 5-fold cross validation data contoh....................................... 82
Gambar 79. Kasus klasifikasi binary class................................................. 85
Gambar 80. Precision & recall..................................................................... 88
Gambar 81. Kurva Receiver Operation Characteristics (ROC) .............. 89
Gambar 82. Dataset iris ditampilkan dengan fungsi View().................. 92
Gambar 83. Sebaran data iris dalam 2 dimensi........................................ 94
Gambar 84. Sebaran data iris dalam 3 dimensi........................................ 94
Gambar 85. Sebaran data obyek iris2class pada ruang 2 dimensi......... 96
Gambar 86. Sebaran data obyek iris2class pada ruang 3 dimensi........ 96
Gambar 87. Dataset Titanic. ........................................................................ 98
Gambar 88. Web UCI Machine Learning Repository............................ 100
Gambar 89. Isi file yeast.data. ................................................................... 101
Gambar 90. Output fungsi View(yeast)................................................... 102
Gambar 91. Sebaran data yeast pada ruang 2 dimensi. ........................ 104
Gambar 92. Sebaran data yeast pada ruang 3 dimensi. ........................ 105
Gambar 93. Pembagian dataset iris2class................................................ 106
Gambar 94. Output dari kode program iris2class.5fold.crossvalidation.R
................................................................................................................ 108
Gambar 95. Pembagian data titanic. ........................................................ 109
Gambar 96. Output dari kode program titanic.kfold.crossvalidation.R
................................................................................................................ 111
Gambar 97. Pembagian data iris.............................................................. 112
Gambar 98. Alur proses aplikasi 1. .......................................................... 116
Gambar 99. Alur proses aplikasi 2. .......................................................... 117
Gambar 100. Alur proses aplikasi 3. ........................................................ 118
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xiii
Gambar 101. Cara kerja algoritma K-Nearest Neighbors (KNN)........ 121
Gambar 102. Grafik ROC Aplikasi 2 KNN. ............................................ 133
Gambar 103. Grafik ROC gabungan Aplikasi 3 KNN........................... 137
Gambar 104. Grafik ROC Aplikasi 2 Naïve Bayes................................. 162
Gambar 105. Grafik ROC gabungan Aplikasi 3 Naïve Bayes. ............. 164
Gambar 106. Sebaran instance class Women & Men............................. 169
Gambar 107. Hyperplane pada SVM...................................................... 170
Gambar 108. Hyperplane optimal............................................................ 171
Gambar 109. Kurva ROC kasus klasifikasi Titanic dengan SVM........ 179
Gambar 110. Grafik ROC kasus klasifikasi Iris dengan SVM. ............. 180
Gambar 111. Kurva ROC kasus dataset Titanic pada aplikasi 3. ........ 182
Gambar 112. Kurva ROC kasus dataset Irispada aplikasi 3................. 184
Gambar 113. Kurva ROC kasus dataset Iris pada kasus multiclass
classification......................................................................................... 186
Gambar 114. Decision tree (pohon keputusan) data cuaca. ................. 189
Gambar 115. Pohon tahap 1. ..................................................................... 192
Gambar 116. Pohon tahap 2. ..................................................................... 193
Gambar 117. Pohon tahap 3. ..................................................................... 194
Gambar 118. Pohon tahap akhir............................................................... 195
Gambar 119. Decision tree dataset Iris. ................................................... 198
Gambar 120. Decision tree dataset Titanic.............................................. 200
Gambar 121. Kurva ROC aplikasi 2 fungsi J48() dataset Iris................ 204
Gambar 122. Kurva ROC aplikasi 2 fungsi J48() kasus Titanic............ 205
Gambar 123. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross
validation kasus dataset Iris. ............................................................. 207
Gambar 124. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross
validation kasus dataset Titanic........................................................ 209
Gambar 125. Decision tree dataset iris 3 class........................................ 211
xiv │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 126. Sebaran dataset hacide. ...................................................... 214
Gambar 127. Kurva ROC klasifikasi dataset hacide dengan KNN. .... 215
Gambar 128. Kurva ROC klasifikasi dataset hacide dengan Naïve Bayes.
................................................................................................................ 216
Gambar 129. Kurva ROC klasifikasi dataset hacide dengan SVM...... 217
Gambar 130. Kurva ROC klasifikasi dataset hacide dengan Decision
Tree........................................................................................................ 219
Gambar 131. Kurva ROC untuk kasus klasifikasi dengan KNN dan
undersampling..................................................................................... 224
Gambar 132. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes
dan undersampling............................................................................. 227
Gambar 133. Kurva ROC untuk kasus klasifikasi dengan SVM dan
undersampling..................................................................................... 229
Gambar 134. Kurva ROC untuk kasus klasifikasi dengan decision tree
dan undersampling............................................................................. 231
Gambar 135. Kurva ROC untuk kasus klasifikasi dengan KNN dan
oversampling. ...................................................................................... 234
Gambar 136. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes
dan oversampling................................................................................ 235
Gambar 137. Kurva ROC untuk kasus klasifikasi dengan SVM dan
oversampling. ...................................................................................... 236
Gambar 138. Kurva ROC untuk kasus klasifikasi dengan decision tree
dan oversampling................................................................................ 238
Gambar 139. Kurva ROC untuk kasus klasifikasi dengan KNN dan
gabungan oversampling dan undersampling................................. 241
Gambar 140. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes
dan gabungan oversampling dan undersampling. ........................ 242
Gambar 141. Kurva ROC untuk kasus klasifikasi dengan SVM dan
gabungan oversampling dan undersampling................................. 243
Gambar 142. Kurva ROC untuk kasus klasifikasi dengan decision tree
dan gabungan oversampling dan undersampling. ........................ 245
Gambar 143. Skema teknik bagging......................................................... 246
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xv
Gambar 144. Skema teknik boosting. ...................................................... 248
Gambar 145. Skema teknik stacking........................................................ 249
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 1
Bab I Pendahuluan
1.1 Bagaimana Manusia Belajar Mengenali?
Anak kecil mempunyai keingintahuan yang sangat tinggi. Saat seorang
anak kecil dan orang tuanya duduk di depan rumah maka anak kecil
tersebut mungkin akan bertanya tentang apa saja yang lewat di depan
rumahnya.
Saat mobil lewat, sang anak bertanya: “Itu apa?”. “Itu mobil nak”, jawab
sang orang tua. Pertanyaan serupa mungkin diulang-ulang oleh sang
anak sampai puluhan mobil lewat di depan rumahnya. Sampai suatu
saat hal itu tidak akan ditanyakan lagi oleh sang anak. Karena sang anak
telah mengenal ciri-ciri bermacam-macam mobil yang telah lewat di
depan rumahnya.
Suatu saat mungkin sang anak akan memiliki pertanyaan lain. Tetapi
pertanyaannya masih berkaitan tentang mobil. Sang anak bertanya: “Itu
mobil ya?”. Sang orang tua akan menjawab: “Iya nak” ketika yang lewat
adalah mobil. Dan menjawab: “Bukan nak” ketika yang lewat bukan
mobil.
Hal yang sama mungkin akan terjadi lagi ketika sang anak melihat
sepeda motor. Dan kembali sang anak akan berhenti bertanya ketika
sang anak telah mengenal ciri-ciri bermacam-macam sepeda motor yang
dia lihat. Ketika proses belajar pengenalan mobil dan sepeda motor
selesai, maka sang anak akan dengan gampang mengklasifikasikan
mana mobil dan sepeda motor.
Cerita di atas adalah contoh sederhana supervised learning. Karena
data tentang setiap mobil memiliki labelnya. Jika data tentang setiap
mobil adalah setiap pertanyaan tentang mobil, maka label adalah
jawaban sang orang tua.
2 │ M. Reza Faisal & Dodon T. Nugrahadi
1.2 Kenapa Komputer Perlu Mempunyai Kemampuan
Belajar Seperti Manusia?
Tetapi masalah yang dihadapi manusia tidak hanya masalah
menentukan dan membedakan sepeda motor dan mobil saja. Banyak
hal-hal serupa yang ingin diketahui oleh manusia sebagai contoh adalah
bagaimana membedakan email spam dan email bukan spam. Jika
manusia belajar mengidentifikasi email spam dan bukan seperti
bagaimana sang anak di atas belajar, maka dengan mudah dapat
membedakan email spam dan bukan.
Tetapi masalahnya tidak mungkin untuk mempekerjakan manusia
untuk memfilter email spam yang jumlahnya jutaan bahkan milyaran
lebih email pada Yahoo! Mail atau Gmail. Karena manusia mempunyai
kebatasan dalam hal kecepatan melakukan menghadapi jumlah yang
banyak, selain itu keterbatasan stamina untuk bekerja dalam waktu
yang lama atau tanpa istirahat.
Selain masalah filter email spam juga ada masalah lain seperti:
1. Menentukan penipuan transaksi di bank.
2. Pada bidang bioinformatika terdapat masalah seperti klasifikasi
kanker, DNA, genome dan lain-lain.
3. Klasifikasi lahan pada citra GIS.
4. Dan lain-lain.
1.3 Machine Learning
Domain Model
Pada sub bab pertama telah disebutkan bagaimana anak mengenali
sesuatu. Manusia dapat melakukan hal karena otak mampu membuat
model berdasarkan masalah yang dihadapi yang disebut domain model.
Dengan model tersebut maka dapat dilakukan proses seperti:
1. Klasifikasi.
2. Prediksi.
3. Clustering.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 3
4. Explanation.
Pada sub bab pertama terdapat dua domain yaitu “sepeda motor atau
mobil” dan “email spam atau bukan”. Untuk membuat domain model
dapat digunakan dua pendekatan yaitu:
1. Pendekatan basis pengetahuan (knowledge-based)
Pendekatan ini dapat dilakukan jika ada seorang ahli di suatu
domain yang memberikan pengetahuan eksplisit untuk
mengidentifikasi sesuatu. Seorang ahli pada suatu domain lebih
dikenal sebagai expert system. Jika pendekatan ini
diimplementasikan pada perangkat lunak maka pembuat
perangkat akan menjadi pemberi pengetahuan secara eksplisit
tentang domain model.
2. Pendekatan data-driven
Pendekatan ini memanfaatkan data yang telah ada untuk
membangun konsep model secara implisit sehingga dapat
digunakan untuk mengidentifikasi sesuatu.
Pada buku ini akan berfokus pada pendekatan data-driven. Untuk
membuat data menjadi domain model agar didapat informasi yang
dapat digunakan untuk melakukan aksi maka digunakan metode-
metode yang telah dikenal pada bidang statistik. Proses data dengan
metode-metode statistik tersebut dibantu dengan bantuan kekuatan
komputasi yang dimiliki oleh komputer.
Gambar 1. Data, metode statistik dan kekuatan komputasi computer
(sumber: Machine Learning with R).
4 │ M. Reza Faisal & Dodon T. Nugrahadi
Karena menggunakan metode statistik maka proses di atas disebut
statistical learning, tetapi lebih populer atau lebih dikenal dengan
istilah machine learning.
Definisi
Mechine learning adalah bidang yang mempelajari pengembangan
algoritma komputer untuk mengubah data menjadi aksi yang cerdas
(Machine Learning with R). atau secara singkat dapat juga diartikan
sebagai proses mengubah data menjadi informasi (Machine Learning in
Action).
Selain machine learning, juga sering didengar istilah data mining yang
merupakan saudara kandungnya. Tetapi ada pendapat yang
menyatakan tumpang tinding machine learning dan data mining
dimana secara virtual pada seluruh data mining pasti melibatkan
penggunaan machine learning tetapi tidak seluruh machine learning
melibatkan data mining. Sebagai contoh machine learning digunakan
untuk melakukan proses data mining data lalu lintas kendaraan
bermotor untuk mendapatkan pola yang berhubungan dengan tingkat
kecelakaan. Kemudian bedakan dengan bagaimana proses
pembelajaran komputer untuk mengendarai mobil dimana hal tersebut
murni machine learning tanpa ada data mining. Maka dapat ditarik
kesimpulan singkat yaitu:
1. Machine learning berfokus pada bagaimana pembelajaran
komputer menggunakan komputer untuk memecahkan
masalah.
2. Data mining berfokus pada bagaimana pembelajaran komputer
mengindentifikasi pola yang akan digunakan manusia untuk
memecahkan masalah.
Istilah-Istilah
Sebelum membahas tentang machine learning lebih dalam, maka pada
sub bab ini akan disebutkan dan diterangkan terminologi atau istilah-
istilah yang umum digunakan.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 5
Dataset, Instance & Feature
Dengan menggunakan pendekatan data-driven maka pembelajaran
dapat dilakukan jika telah dimiliki data atau sering disebut sebagai
dataset. Di bawah ini ditampilkan dataset iris yang terdiri atas 150
baris atau record yang akan lebih dikenal dengan istilah instance.
…
Gambar 2. Dataset iris.
Pada dataset di atas dapat dilihat 5 kolom yaitu:
1. Sepal.Length.
2. Sepal.Width.
3. Petal.Length.
4. Petal.Width.
5. Species.
Istilah yang digunakan untuk kolom adalah feature, artinya dataset di
atas memiliki 5 feature. Pada beberapa algoritma, feature dapat
dibedakan menjadi dua yaitu: feature dan target variable (target
feature). Sebagai contoh jika dataset di atas diproses dengan algoritma
klasifikasi maka target variable (target feature) adalah Species sedangkan
sisanya adalah feature.
6 │ M. Reza Faisal & Dodon T. Nugrahadi
Training Set & Test Set
Dataset akan digunakan pada proses pembelajaran algoritma paling
tidak terdapat dua tahap yang harus dilakukan, yaitu tahap training dan
pengujian (test). Jika dimiliki 150 instance pada dataset maka harus
dibagi menjadi dua. Data yang digunakan pada tahap training akan
disebut dengan istilah training set. Sedangkan yang digunakan pada
tahap pengujian disebut test set.
Untuk teknik pembagian dataset menjadi training dan test set akan
diterangkan pada bab yang lain.
Tipe
Machine learning dapat dibedakan menjadi dua tipe. Tipe yang
dimaksudkan di sini adalah tipe algoritma yaitu:
1. Supervised learning.
2. Unsupervised learning.
Supervised Learning
Pembelajaran pada tipe ini telah diketahui apa yang akan diprediksi
atau target variablenya. Sehingga tujuan membangun algoritma sudah
jelas hal apa yang akan diprediksi. Oleh karena itu model yang
dihasilkan dari tipe ini adalah model prediksi.
Model prediksi digunakan untuk melakukan proses prediksi target
variable (target feature) berdasarkan feature-feature lain pada suatu
dataset. Algoritma pembelajaran yang dibangun mencoba untuk
menemukan dan memodelkan hubungan antara target variable (target
feature) tersebut dengan feature-feature lainnya.
Klasifikasi adalah contoh task mechine learning tipe supervised untuk
melakukan prediksi. Beberapa contoh penerapan klasifikasi adalah
sebagai berikut:
1. Penentuan email adalah email spam.
2. Penentuan seseorang mengidap kanker.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 7
3. Penentuan kemenangan suatu tim sepakbola.
Pada klasifikasi, target feature yang akan diprediksi adalah feature
terkategori yang dikenal dengan istilah kelas (class) dan dapat dibagi
menjadi kategori yang disebut dengan istilah level.
Kasus klasifikasi dapat dibedakan berdasarkan tipe masalah yang
umumnya ditemui, yaitu:
1. Klasifikasi 1 class.
2. Klasifikasi 2 class (binary).
3. Klasifikasi multiclass, terdapat lebih dari 2 class.
Saat ini telah banyak teknik/metode klasifikasi yang dikembangkan
untuk menyelesaikan masalah klasifikasi 2 class. Sehingga untuk
menyelesaikan masalah klasifikasi multiclass dapat digunakan
kombinasi teknik/metode yang biasa digunakan untuk menyelesaikan
klasifikasi 2 class
Supervised learning juga dapat digunakan untuk memprediksi data
numerik. Task seperti ini dikenal dengan istilah regresi.
Berikut ini adalah beberapa nama algoritma tipe supervised leaning
yaitu:
1. K-Nearest Neighbors.
2. Naïve Bayes.
3. Suport Vector Machine.
4. Decision Trees.
5. Linear Regression.
6. Neural Network.
Unsupervised Learning
Unsupervised learning merupakan kebalikan dari tipe sebelumnya
dimana tidak terdapat target variable (target feature) pada dataset.
Model yang dihasilkan dari tipe ini adalah descriptive model.
Salah satu task descriptive model untuk menemukan pola yang bisa
mengidentifikasi asosiasi pada dataset. Contoh implementasinya dapat
dilakukan pada menemukan pola pada proses analisis barang yang
8 │ M. Reza Faisal & Dodon T. Nugrahadi
dibeli oleh pembeli pada suatu super market atau mini market. Tujuan
dari analisis ini adalah untuk mengetahui barang-barang yang sering
dibeli bersama-sama. Sebagai contoh jika pembeli membeli roti maka
otomatis juga membeli keju dan susu kental manis. Atau jika pembeli
membeli sabun cuci maka juga membeli pengharum pakaian. Dengan
informasi pola tersebut maka pemilik super market dapat
menggunakannya untuk membuat iklan diskon untuk kelompok barang
tersebut, atau pemilik juga dapat membuat agar tata letak barang-
barang tersebut dibuat berdekatan.
Task descriptive model yang lain adalah mengelompokkan dataset ke
dalam kelompok-kelompok yang homogen yang disebut dengan istilah
clustering. Kelompok-kelompok homogen yang dihasilkan dari
clustering perlu bantuan manusia untuk melakukan intepretasi hasil
tersebut untuk menentukan atau mendeskripsikan apa isi dari
kelompok-kelompok tersebut.
Contoh unsupervised learning adalah:
1. Association rule.
2. K-Mean clustering.
Langkah-Langkah Implementasi
Berikut ini adalah langkah-langkah yang digunakan untuk melakukan
implementasi machine learning untuk menyelesaikan kasus yang
dihadapi. Terdapat 5 tahap yang dapat diterapkan pada pada setiap
algoritma machine learning, yaitu:
1. Pengumpulan data.
2. Eksplorasi dan persiapan data, langkah eksplorasi data
bertujuan untuk lebih mengenal data yang digunakan.
Sedangkan langkah persiapan data bertujuan untuk
meningkatkan kualitas data seperti menghilangkan data yang
tidak diperlukan. Karena kualitas model yang dihasilkan sangat
bergantung pada data yang digunakan.
3. Training/pelatihan model, langkah pembangunan model. Pada
langkah ini digunakan training set sebagai input data.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 9
4. Evaluasi model, langkah evaluasi dilakukan untuk mengetahui
performansi dari model yang dihasilkan maka model yang
dihasilkan pada tahap sebelumnya akan diuji dengan
menggunakan test set sebagai input data.
5. Perbaikan model, langkah ini diperlukan jika diinginkan
performansi yang lebih baik. Ada beberapa cara yang dapat
dilakukan untuk itu mendapatkan performansi yang lebih baik,
diantaranya adalah mengganti tipe learning atau algoritma yang
digunakan. Atau dengan cara melakukan perbaikan pada data
yang digunakan baik dengan cara menambah data, mengurangi
feature pada dataset dan lain-lain.
1.5 Machine Learning & Data Mining
Berikut ini adalah penjelasan secara singkat keterkaitan atau hubungan
antara machine learning dan data mining.
Secara singkat, data mining menggunakan metode statistik untuk
mencari pola tersembunyi pada database agar dapat menjelaskan suatu
fenomena. Sedangkan machine learning menggunakan teknik-teknik
data mining dan algoritma pembelajaran lainnya untuk membuat model
dari hal-hal yang terjadi pada data untuk memprediksi kejadian
selanjutnya. Selanjutnya machine learning akan digunakan pada bidang
artificial intelligence untuk membuat model yang digunakan untuk
pengenalan kebiasaan dan prediksi aksi sebagai contoh implementasi
pada game atau mobil pintar yang bisa berjalan sendiri.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 11
Bab II Pengantar Pemrograman R
R bukan saja bahasa tetapi juga lingkungan/environment untuk
komputasi statistik dan grafik. R merupakan project GNU yang
dikembangkan oleh Bell Laboratories (sebelumnya AT&T, sekarang
Lucent Technologies). Team pengembang R adalah John Chamber dan
teman-temannya.
R menyediakan berbagai macam tool statistik dari linier dan memodelan
non linier, uji statistik klasik, analisis time-series, klasifikasi, clustering
dan lain-lain. R juga menyediakan tool teknik grafis yang bertujuan
untuk menampilkan data yang telah diolah secara visual dalam bentuk
grafik.
R merupakan project open-source yang memungkinkan banyak pihak
untuk memberikan kontribusi dalam proses pengembangan.
2.1 Installasi
Comprehensive R Archive Network (CRAN)
Installer atau source code R tersedia dalam beberapa platform yaitu
Windows, Mac OS X dan Linux. Pada buku ini digunakan installer yang
diunduh dari link berikut ini https://cran.r-
project.org/bin/windows/base/.
12 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 3. Halaman download R-3.3.2 for Windows.
Klik link “Download R.3.3.2 for Windows. Nama file installernya adalah
R.3.3.2-win.exe. File ini berukuran sekitar 70MB.
Setelah proses download selesai, klik double pada file R.3.3.2-win.exe.
Langkah pertama adalah memilih bahasa yang digunakan.
Gambar 4. Window Select Setup Language.
Klik tombol OK, kemudian akan ditampilkan window yang berisi
ucapan selamat datang seperti gambar di bawah ini.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 13
Gambar 5. Window Setup - Welcome.
Klik tombol Next, kemudian akan ditampilkan informasi penting
tentang lisensi.
Gambar 6. Window Setup - Informasi lisensi.
14 │ M. Reza Faisal & Dodon T. Nugrahadi
Klik tombol Next, kemudian akan ditampilkan window untuk memilih
folder installasi. Klik Browse jika ingin mengubah lokasi folder
installasi.
Gambar 7. Windows Setup - Lokasi folder installasi.
Klik Next, kemudian akan window pemilihan komponen untuk
diinstall. Centang 32-bit Files jika menggunakan komputer dengan
processor 32-bit. Atau centang 64-bit Files jika menggunakan komputer
dengan processor 64-bit.
Gambar 8. Window Setup - Pemilihan komponen.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 15
Klik Next, kemudian akan ditampilkan window untuk memilih opsi
startup. Untuk memudahkan pilih No agar menggunakan opsi default
startup.
Gambar 9. Window Setup - Pemilihan opsi startup.
Kemudian akan ditampilkan window untuk memilih lokasi folder Start
Menu. Klik tombol Browse jika ingin menganti lokasi folder Start Menu.
Gambar 10. Window Setup - Memilih lokasi folder Start Menu.
16 │ M. Reza Faisal & Dodon T. Nugrahadi
Klik tombol Next, kemudian akan ditampilkan window untuk memilih
task tambahan yang akan dilakukan pada proses installasi. Pilih task
tambahan sesuai keinginan.
Gambar 11. Window Setup - Pemilihan task tambahan.
Klik tombol Next, kemudian proses installasi akan dilakukan.
Gambar 12. Windows Setup - Proses installasi.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 17
Setelah proses installasi selesai maka akan ditampilkan window seperti
gambar di bawah ini.
Gambar 13. Window informasi akhir proses installasi.
Klik tombol Finish untuk menutup proses installasi.
Microsoft R Archive Network (MRAN)
Platform R juga dapat diunduh dari Microsoft R Archive Network
(MRAN). Nama platform R pada sumber ini adalah Microsoft R Open.
Saat buku ini ditulis versi terbaru adalah 3.3.1. Platform R dari sumber
ini telah dimodifikasi untuk meningkatkan kinerja komputasi multi-
thread.
Installer Microsoft R Open 3.3.1 dapat diunduh pada link berikut ini
https://mran.revolutionanalytics.com/download/. Ukuran file
installer adalah 149MB. Untuk memulai proses installasi, klik double
pada file microsoft-r-open-3.3.1.msi.
18 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome.
Klik tombol Next, kemudian akan ditampilkan window informasi
seperti gambar di bawah ini.
Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi.
Centang checkbox I acknoledge the above licnesing information,
kemudian klik tombol Next. Kemudian akan ditampilkan window opsi
untuk menginstall Math Kernel Library.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 19
Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel
Library.
Klik tombol Next, kemudian akan ditampilkan window lisensi Math
Kernel Library. Centang checkbox I accept the MKL license terms.
Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel Library.
20 │ M. Reza Faisal & Dodon T. Nugrahadi
Klik tombol Next, kemudian akan ditampilkan window untuk
menentukan lokasi folder installasi. Klik tombol Change jika ingin
mengubah folder installasi.
Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi.
Klik tombol Next, kemudian akan ditampilkan window konfirmasi
memulai installasi.
Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 21
Klik tombol Install, kemudian proses installasi dimulai.
Gambar 20. Window Microsoft R Open 3.3.1 Setup - Proses instalasi.
Window dibawah ini akan ditampilkan setelah proses installasi selesai.
Klik tombol Finish untuk menutup window dan menyelesaikan proses
installasi.
Gambar 21. Window Microsoft R Open 3.3.1 Setup – proses installasi
selesai.
22 │ M. Reza Faisal & Dodon T. Nugrahadi
2.2 Tool Pemrograman
RGui
RGui adalah tool pemrograman R. RGui merupakan bagian dari
plotform R yang telah diinstall pada sub bab sebelumnya. RGui dapat
dijalankan dengan memilih icon R x64 3.3.2 pada desktop atau memilih
pada start menu.
Antarmuka RGui dapat dilihat pada gambar di bawah ini.
Gambar 22. RGui.
Console
Console atau R Console adalah window yang digunakan untuk
mengeksekusi fungsi R. Pada console dapat dieksekusi lebih dari satu
fungsi. Console ini juga dapat digunakan untuk mengeksekusi program
yang disimpan di dalam file script R. R Console dapat dilihat pada
gambar di atas.
Berikut adalah contoh penggunaan R Console. Ketik kode berikut pada
window R Console.
print("hello world of R")
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 23
Kemudian tekan tombol Enter. Maka hasilnya dapat dilihat pada
gambar di bawah ini.
Gambar 23. R Console.
Editor
Editor adalah window untuk mengetik kumpulan fungsi R atau
program script R. Window ini tidak dapat digunakan untuk
menjalankan fungsi R. Window editor dapat ditampilkan dengan cara
memilih menu File > New script atau dengan menekan tombol Ctrl+N.
Maka akan ditampilkan window R Editor. Tuliskan kode program
seperti berikut pada window R Editor.
for(i in 1:10) {
print(paste(i,". hello world of R"))
}
24 │ M. Reza Faisal & Dodon T. Nugrahadi
Hasilnya dapat dilihat seperti pada gambar di bawah ini.
Gambar 24. Window R Editor.
Untuk menyimpan ke dalam file, pilih menu File > Save atau dengan
cara menekan tombol Ctrl+S. Kemudian berikan nama file yaitu
HelloWorld.R, seperti pada gambar di bawah ini.
Gambar 25. Menyimpan file script R.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 25
Selanjutnya, pilih menu File > Source R Code. Kemudian pilih file
HelloWorld.R. Makan akan dapat dilihat hasil seperti pada gambar di
bawah ini.
Gambar 26. Eksekusi file script R.
Grafik
RGui memiliki window grafik untuk menampilkan hasil dari fungsi
menggambar grafik. Contoh fungsi untuk mengambar grafik adalah
plot(). Di bawah ini adalah contoh penggunaan fungsi plot().
x = c(1,2,3,4)
y = c(2,4,6,8)
plot(x,y)
Eksekusi setiap baris di atas pada window console. Maka akan
ditampilkan window grafik seperti berikut ini.
26 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 27. Window R Graphics.
RStudio
RStudio tool pemrograman atau integrated development environment
(IDE) bahasa R yang memiliki antarmuka lebih baik daripada RGui.
RStudio memiliki 2 versi lisensi, yaitu Open Source Edition dan
Commercial Edition. Installer RStudio dapat didownload di
https://www.rstudio.com/products/RStudio/. RStudio tersedia untuk
platform Windows, Mac OS X dan Linux versi Ubuntu dan Fedora.
Installasi
Versi RStudio saat buku ini ditulis adalah 1.0.44. Nama file installer
untuk versi ini adalah RStudio-1.0.44.exe yang berukuran 82MB. Setelah
proses download selesai, klik double pada file installer.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 27
Gambar 28. Window RStudio Setup - Welcome.
Klik tombol Next, kemudian akan ditampilkan window untuk memilih
lokasi installasi. Klik tombol Browse jika ingin menganti lokasi folder
installasi.
Gambar 29. Window RStudio Setup - Lokasi installasi.
28 │ M. Reza Faisal & Dodon T. Nugrahadi
Klik tombol Next, kemudian akan ditampilkan window untuk memilih
folder Start Menu.
Gambar 30. Window RStudio Setup - Memilih lokasi folder Start Menu.
Klik tombol Install, maka proses installasi dimulai.
Gambar 31. Window RStudio Setup - proses installasi.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 29
Klik tombol Show details jika ingin melihat daftar file yang diinstall.
Gambar 32. Window RStudio Setup - detail proses installasi.
Setelah proses installasi selesai, maka akan ditampilkan window seperti
pada gambar di bawah ini. Klik tombol Finish untuk mengakhiri proses
installasi.
Gambar 33. Window RStudio Setup - Proses installasi selesai.
30 │ M. Reza Faisal & Dodon T. Nugrahadi
Antarmuka
Antarmuka RStudio dapat dilihat pada gambar di bawah ini.
Gambar 34. Antarmuka RStudio.
RStudio memiliki window Editor, Console dan Plot (untuk
menampilkan grafik) yang terintegrasi. Selain itu RStudio juga memiliki
window Environment untuk menampilkan objek atau variable yang
telah digunakan. RStudio juga memiliki fitur explorer untuk melihat
daftar file dan daftar folder seperti yang terlihat pada tab Files di gambar
di atas. Fitur ini dapat digunakan untuk membuat folder atau
menghapus folder dan file.
RStudio juga memiliki fitur auto complete kode seperti terlihat pada
gambar di bawah ini.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 31
Gambar 35. Fitur auto complete kode.
Berikut adalah contoh bagaimana RStudio menampilkan grafik pada
window Plots.
Gambar 36. Window Plots untuk menampilkan grafik.
32 │ M. Reza Faisal & Dodon T. Nugrahadi
R Tools for Visual Studio
R Tool for Visual Studio adalah extension pada Visual Studio. Extension
ini dapat digunakan untuk membuat Visual Studio menjadi integrated
development environment (IDE) untuk bahasa pemrograman R.
R Tool for Visual Studio dapat diunduh di
https://www.visualstudio.com/vs/rtvs/. Ekstensi ini berukuran
3,6MB dan memerlukan ruang hardisk sebesar 9MB untuk proses
installasi. Saat buku ini ditulis, versi R Tool for Visual Studio adalah 0.5.
Installasi
Setelah installer selesai didownload. Klik double pada file installer.
Maka akan ditampilkan window seperti gambar di bawah ini.
Gambar 37. Installasi R Tool 0.5 for Visual Studio 2015.
Klik tombol Install, maka proses installasi akan dilakukan seperti yang
terlihat pada gambar di bawah ini.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 33
Gambar 38. Proses installasi R Tool 0.5 for Visual Studio.
Setelah proses installasi selesai maka akan dilihat window seperti
gambar di bawah ini.
Gambar 39. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai.
34 │ M. Reza Faisal & Dodon T. Nugrahadi
Antarmuka
Antarmuka R Tool for Visual Studio dapat dilihat pada gambar di
bawah ini. R Tool for Visual Studio memiliki Editor, R Interactive yang
berfungsi sebagai R Console, R Plot untuk menampilkan grafik dan
Solution Explorer untuk menampilkan daftar folder dan file. R Tool for
Visual Studio memiliki R Plot History untuk menampilkan daftar grafik
yang telah dibuat.
Gambar 40. Antarmuka R Tool for Visual Studio.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 35
Bab III Fungsi-Fungsi Dasar R
Bab ini akan menjelaskan tentang fungsi-fungsi dasar R. Fungsi-fungsi
yang dibahas akan berfokus pada fungsi untuk operasi data seperti
membaca data dari file, memfilter data, mengabung data, menampilkan
data ke layar, menulis data ke file dan menggambar data dalam grafik.
Selain itu juga dibahas fungsi-fungsi pendukung lainnya.
3.1 Package
Default lingkungan R telah memiliki banyak fungsi-fungsi yang dapat
digunakan untuk berbagai keperluan. Lingkungan R dapat
ditambahkan fungsi-fungsi baru. Fungsi-fungsi baru tersebut biasanya
dalam bentuk package.
Installasi Package
Package-package tersebut disimpan pada server yang dapat diakses
secara online. Proses installasi package hanya dapat dilakukan jika ada
koneksi internet.
Fungsi install.package() adalah fungsi untuk mengunduh dan
menginstall package. Sintaks fungsi ini adalah sebagai berikut.
install.packages(“NamaPackage”)
Kode di bawah ini adalah contoh untuk menginstall package “kernlab”.
install.packages("kernlab")
Gambar di bawah ini adalah informasi yang dilihat setelah proses
installasi package selesai.
36 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 41. Proses installasi package pada R Tool for Visual Studio 2015.
Gambar 42. Proses installasi package pada RStudio.
Memuat Package
Fungsi-fungsi package hanya dapat digunakan jika package telah
dimuat. Package harus dimuat setiap saat session baru dibuat atau
setiap saat baru menjalankan tool pemrograman R.
Fungsi untuk memuat package adalah library(). Sintaks fungsi ini
adalah sebagai berikut.
library(NamaPackage)
atau
library(“NamaPackage”)
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 37
Berikut adalah contoh kode untuk memuat package “kernlab”.
library("kernlab")
3.2 Working Directory
Working directory atau direktori kerja adalah direktori/folder aktif
pada suatu session. User hanya dapat mengakses file script R dan file
data yang berada pada working direktory. Jika user ingin mengakses
file di luar working directory maka user harus menulis path
direktori/folder dan nama file.
Kode di bawah ini adalah contoh untuk mengakses file pada working
directory.
read.csv("data.csv")
Kode di bawah ini adalah contoh untuk mengakses file diluar working
directory.
read.csv("D:/Data/data_riset.csv")
Mendapatkan Working Directory
Untuk mendapatkan informasi working directory dapat digunakan
fungsi getwd(). Di bawah ini adalah contoh penggunaan fungsi getwd()
dan outputnya.
> getwd()
[1] "D:/Data/My Projects/Delete/HelloWorldR/HelloWorldR"
38 │ M. Reza Faisal & Dodon T. Nugrahadi
Menentukan Working Directory
Untuk menentukan working directory dapat digunakan fungsi setwd().
Sintaks fungsi ini adalah sebagai berikut.
setwd(“path_absolute”)
Kode di bawah ini adalah contoh penggunaan fungsi setwd() dan outputnya.
> setwd("C:/")
> getwd()
[1] "C:/"
3.3 Dataset
Platform R telah memiliki lebih 100 dataset yang dapat digunakan untuk
latihan. Fungsi data() digunakan untuk melihat daftar dataset tersebut.
Ketik fungsi data() pada window Console pada RStudio atau RGui maka
hasilnya dapat dilihat pada gambar di bawah ini.
Gambar 43. Daftar dataset pada RStudio.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 39
Gambar di bawah ini adalah output pada R Tool for Visual Studio.
Gambar 44. Daftar dataset pada R Tools for Visual Studio.
Iris adalah salah satu dataset yang umum digunakan sebagai latihan
atau contoh pemrograman R.
3.4 Menulis Data Ke File
Iris dataset akan digunakan pada contoh-contoh di sub bab ini.
write.csv()
Fungsi write.csv() untuk menulis file yang berisi nilai-nilai yang
dipisahkan oleh koma. Format file yang dihasilkan adalah file text.
Sintaks fungsi ini adalah sebagai berikut.
write.csv(ObjectName, "FileName")
40 │ M. Reza Faisal & Dodon T. Nugrahadi
Untuk menyimpan dataset iris ke file data.csv maka digunakan perintah
berikut ini.
write.csv(iris, "data.csv")
write.table()
Fungsi write.table() untuk menulis file yang berisi nilai-nilai yang
dipisahkan oleh tab. Sintaks fungsi ini adalah sebagai berikut.
write.table(ObjectName, "FileName")
Untuk menyimpan dataset iris ke file data.txt maka digunakan perintah
berikut ini.
write.table(iris, "data.txt")
3.5 Membaca File Text
Format file yang umum digunakan digunakan menyimpan data adalah
file text yang berisi nilai-nilai yang dipisahkan oleh tanda koma atau tab.
read.csv()
Jika file text berisi nilai-nilai yang dipisahkan oleh tanda koma maka
dapat digunakan fungsi read.csv(). Sintaks fungsi ini adalah sebagai
berikut.
ObjectName = read.csv("FileName")
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 41
Sebagai contoh, untuk membaca file data.csv digunakan kode berikut.
Obyek data_csv akan menyimpan data file data_penelitian.csv yang
dibaca oleh fungsi ini.
data_csv = read.csv("data.csv")
read.table()
Jika file text berisi nilai-nilai yang dipisahkan tab maka dapat digunakan
fungsi read.table(). Sintaks fungsi ini adalah sebagai berikut.
ObjectName = read.table("FileName")
Sebagai contoh, untuk membaca file data.txt digunakan kode di bawah
ini.
data_txt = read.table("data.txt")
Obyek data_txt akan menyimpan data file data_penelitian.txt yang
dibaca oleh fungsi read.table().
3.5 Membaca File Excel
File Excel juga umum digunakan untuk menyimpan data. Untuk
membaca file Excel diperlukan package “xslx”. Install package ini
dengan perintah berikut.
install.packages("xlsx")
Setelah proses installasi package “xslx” selesai, muat library ini dengan
perintah di bawah ini.
library(xlsx)
42 │ M. Reza Faisal & Dodon T. Nugrahadi
Fungsi yang digunakan untuk membaca file Excel adalah sebagai
berikut.
data_xlsx = read.xlsx("FileName", sheetName =
"SheetName")
Sebagai contoh, untuk membaca file data.xlsx digunakan perintah
berikut ini.
data_xlsx = read.xlsx("data.xlsx", sheetName = "Sheet1")
Obyek data_xlsx akan menyimpan data file data.xlsx.
3.6 Akses Database
Platform R juga dapat membaca data dari database server seperti
MySQL dan SQL Server.
Akses Database MySQL
Untuk mengakses database MySQL pada platform R diperlukan
package tambahan. Package yang dapat digunakan adalah RMySQL.
Untuk menginstall package RMySQL digunakan perintah berikut.
install.packages("RMySQL")
Kemudian muat library RMySQL dengan perintah berikut.
library(RMySQL)
Langkah pertama sebelum melakukan operasi database adalah
melakukan koneksi ke database dengan fungsi dbConnect(). Untuk
melakukan koneksi ke database digunakan sintaks berikut.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 43
ObjectName = dbConnect(MySQL(), user='UserName',
password='Password', dbname='DatabaseName',
host='HostName')
Sebagai contoh nama database adalah belajar_r, nama host adalah
localhost, nama user adalah root dan password user adalah Rahasia.
Maka perintah untuk melakukan koneksi adalah sebagai berikut.
mydb = dbConnect(MySQL(), user='root',
password='Rahasia', dbname='belajar_r',
host='localhost')
Untuk melihat daftar tabel pada database belajar_r digunakan fungsi
dbListTables(). Berikut adalah contoh untuk menampilkan daftar tabel.
> dbListTables(mydb)
[1] "iris"
Dari ouput perintah di atas, terdapat 1 tabel yaitu iris.
Untuk mengeksekusi SQL query dapat digunakan fungsi
dbSendQuery(). Sebagai contoh, untuk menampilkan data dari tabel iris
dapat digunakan kode di bawah ini.
rs = dbSendQuery(mydb, 'select * from iris')
data_iris = fetch(rs, n=-1)
Data dari tabel iris akan disimpan pada obyek data_iris. Untuk
menampilkan isi data ke layar dapat dilakukan dengan mengetik obyek
data_iris pada R console.
Akses Database SQL Server
Package tambahan yang digunakan untuk mengakses database SQL
Server adalah RODBC. Kode di bawah ini untuk menginstall package
RODBC.
install.packages("RODBC")
Untuk memuat library RODBC digunakan kode di bawah ini.
library(RODBC)
44 │ M. Reza Faisal & Dodon T. Nugrahadi
Untuk melakukan koneksi ke database digunakan fungsi
odbcDriverConnect(). Sintaks fungsi odbcDriverConnect() adalah
sebagai berikut.
ObjectName = odbcDriverConnect('driver={SQL
Server};server=HostName;database=DatabaseName;trusted_co
nnection=true')
Jika database server berada pada komputer yang sama dan nama
database adalah BelajarR, maka digunakan kode berikut ini.
myodbc = odbcDriverConnect('driver={SQL
Server};server=.;database=BelajarR;trusted_connection=tr
ue')
Untuk membaca data pada tabel iris pada database BelajarR digunakan
fungsi sqlQuery(). Contoh kode yang dapat digunakan adalah sebagai
berikut.
data_iris <- sqlQuery(myodbc, 'select * from iris')
Ketik obyek data_iris pada R console untuk melihat isi data tabel iris.
3.7 Menampilkan Data
Cara untuk menampilkan data adalah memanggil obyek yang
digunakan untuk menyimpan data. Sebagai contoh, cara ini adalah
untuk menampilkan data yang disimpan pada obyek data_txt.
> data_txt = read.table("data.txt")
> data_txt
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
...
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 45
head()
Untuk menampilkan sejumlah data dari awal digunakan fungsi head().
Sintaks fungsi ini adalah sebagai berikut.
head(ObjekName, RowNumber)
Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak
5 row digunakan perintah ini.
> head(data_txt, 5)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
tail()
Untuk menampilkan sejumlah data dari akhir digunakan fungsi tail().
Sintaks fungsi ini adalah sebagai berikut.
tail(ObjekName, RowNumber)
Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak
5 row digunakan perintah ini.
> tail(data_txt, 5)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
146 6.7 3.0 5.2 2.3 virginica
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
View()
Fungsi View() digunakan untuk menampilkan data dalam bentuk tabel.
Untuk menampilkan data dari obyek data_txt, gunakan perintah di
bawah ini.
46 │ M. Reza Faisal & Dodon T. Nugrahadi
View(data_txt)
Hasilnya dapat dilihat pada gambar-gambar di bawah ini.
Gambar 45. Output fungsi View() pada R Tool for Visual Studio.
Gambar 46. Output fungsi View() pada RStudio.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 47
Gambar 47. Output fungsi View() pada RGui.
obyek$rowName
Pada gambar di atas dapat dilihat obyek data_txt memiliki 5 kolom.
Nama kelima kolom itu adalah Sepal.Length, Sepal.Width, Petal.Length,
Petal.Width dan Species. Cara untuk melihat seluruh nilai pada kolom
Species dapat dilakukan dengan contoh di bawah ini.
data_txt$Species
Untuk menampilkan seluruh nilai pada kolom Sepal.Width digunakan
contoh di bawah ini.
data_txt$Sepal.Width
48 │ M. Reza Faisal & Dodon T. Nugrahadi
3.8 Memfilter Data
obyek[,x:y]
Jika data pada obyek terdiri atas 5 kolom, maka untuk menampilkan
kolom 1 sampai 4 saja digunakan perintah di bawah ini.
data_txt[,1:4]
Jika ingin menampilkan kolom 1, kolom 3 dan kolom 5 saja dapat
digunakan perintah berikut ini.
data_txt[,c(1,3,5)]
obyek[x:y,]
Jika ingin menampilkan data pada obyek berdasarkan baris yang
diinginkan, misal baris 13 sampai baris 23 maka digunakan perintah ini.
data_txt[13:23,]
Jika ingin menampilkan baris 1, baris 3 dan baris 5 saja maka digunakan
perintah berikut.
data_txt[c(1,3,5),]
obyek[x1:y1, x2:y2]
Jika ingin menampilkan data pada obyek baris 13 sampai 23 saja dan
kolom yang ditampilkan hanya kolom 1 sampai 4 saja maka digunakan
perintah berikut ini.
data_txt[13:23, 1:4]
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 49
Jika ingin menampilkan data pada baris 1, 3 dan 5 saja dan kolom 1, 3
dan 5 saja maka digunakan perintah berikut ini.
data_txt[c(1,3,5), c(1,3,5)]
obyek[which(), ]
Untuk memfilter data berdasarkan suatu nilai pada sebuah kolom dapat
digunakan fungsi which(). Berikut ini adalah contoh menampilkan data
jika kolom Species bernilai setosa.
data_txt[which(data_txt$Species == "setosa"),]
3.9 Menggabung Data
rbind()
Fungsi rbind() berfungsi untuk menggabung data dari dua obyek atau
lebih. Sintaks fungsi ini adalah sebagai berikut.
ObjectName = rbind(object1, object2, . . . , objectN)
Obyek-obyek yang akan digabung harus memiliki jumlah kolom yang
sama. Misal obyek data1 adalah sebagai berikut.
> data1 = iris[5:10,]
> data1
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
50 │ M. Reza Faisal & Dodon T. Nugrahadi
Dan misal obyek data2 adalah sebagai berikut.
> data2 = iris[130:135,]
> data2
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
130 7.2 3.0 5.8 1.6 virginica
131 7.4 2.8 6.1 1.9 virginica
132 7.9 3.8 6.4 2.0 virginica
133 6.4 2.8 5.6 2.2 virginica
134 6.3 2.8 5.1 1.5 virginica
135 6.1 2.6 5.6 1.4 virginica
Gabungan obyek data1 dan obyek data2 digabung dengan fungsi
rbind(), dan akan disimpan pada obyek data_all.
> data_all = rbind(data1, data2)
> data_all
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
130 7.2 3.0 5.8 1.6 virginica
131 7.4 2.8 6.1 1.9 virginica
132 7.9 3.8 6.4 2.0 virginica
133 6.4 2.8 5.6 2.2 virginica
134 6.3 2.8 5.1 1.5 virginica
135 6.1 2.6 5.6 1.4 virginica
cbind()
Fungsi cbind() untuk mengabungkan data pada obyek-obyek yang
memiliki jumlah baris yang sama. Misal obyek data1 berisi data seperti
berikut.
> data1 = iris[1:5, 1]
> data1
[1] 5.1 4.9 4.7 4.6 5.0
Dan data2 berisi data sebagai berikut.
> data2 = iris[131:135, 1]
> data2
[1] 7.4 7.9 6.4 6.3 6.1
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 51
Obyek data_all berisi data gabungan data1 dan data2 yang digabung
dengan fungsi cbind().
> data_all = cbind(data1, data2)
> data_all
data1 data2
[1,] 5.1 7.4
[2,] 4.9 7.9
[3,] 4.7 6.4
[4,] 4.6 6.3
[5,] 5.0 6.1
3.10 Explorasi Data
Mengetahui informasi data yang akan diolah sangat diperlukan.
Informasi itu dapat digunakan untuk menentukan strategi yang dipilih
untuk mengolah data tersebut. Berikut ini adalah beberapa fungsi untuk
mengetahui ukuran, struktur, atribut, summary dan lain-lain
dim()
Fungsi dim() dapat memberikan informasi ukuran dimensi data.
Contoh fungsi dim() dapat dilihat di bawah ini.
> dim(iris)
[1] 150 5
Dari informasi di atas dapa diketahui iris dataset terdiri atas 150 baris
dan 5 kolom.
names()
Fungsi names() memberikan informasi name kolom data. Contoh fungsi
names() dapat dilihat di bawah ini.
> names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length"
"Petal.Width" "Species"
52 │ M. Reza Faisal & Dodon T. Nugrahadi
str()
Fungsi str() memberikan informasi struktur data. Kode di bawah ini
adalah contoh penggunaan fungsi ini.
> str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4
4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9
3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5
1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2
0.2 0.1 ...
$ Species : Factor w/ 3 levels
"setosa","versicolor",..: 1 1 1 1 1 ...
Output fungsi ini memberikan informasi yang lebih lengkap
dibandingkan fungsi dim() dan names(). Fungsi ini memberikan
informasi tambahan berupa tipe data yang digunakan pada setiap
kolom.
table()
Fungsi table() mempunyai banyak manfaat. Salah satunya berguna
untuk melihat jumlah instance atau frekuensi pada masing-masing
target variable. Sintaks untuk menggunakan fungsi ini adalah sebagai
berikut.
table(ObjectName[,ColumnNumber])
atau
table(ObjectName$ColumnName)
Contoh di bawah ini untuk melihat jumlah instance berdasarkan kolom
Species.
> table(iris[,5])
setosa versicolor virginica
50 50 50
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 53
Atau dapat juga digunakan seperti contoh berikut ini.
> table(iris$Species)
setosa versicolor virginica
50 50 50
summary()
Fungsi summary() memberikan informasi statistik ringkas dari data
yang dimiliki sebuah obyek. Di bawah ini adalah contoh penggunaan
fungsi ini dan outputnya.
Sepal.Length Sepal.Width
Min. :4.300 Min. :2.000
1st Qu.:5.100 1st Qu.:2.800
Median :5.800 Median :3.000
Mean :5.843 Mean :3.057
3rd Qu.:6.400 3rd Qu.:3.300
Max. :7.900 Max. :4.400
Petal.Length Petal.Width
Min. :1.000 Min. :0.100
1st Qu.:1.600 1st Qu.:0.300
Median :4.350 Median :1.300
Mean :3.758 Mean :1.199
3rd Qu.:5.100 3rd Qu.:1.800
Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
Fungsi ini memberikan informasi statistik untuk setiap feature seperti
nilai terkecil, nilai terbesar, median, mean dan kuartil.
54 │ M. Reza Faisal & Dodon T. Nugrahadi
3.11 Grafik
Pada sub bab ini akan dijelaskan beberapa fungsi R untuk membuat
grafik sebagai salah satu cara mengenal dan eksplorasi data.
plot()
Fungsi plot() untuk membuat titik dari nilai sumbu x dan sumbu y.
Sintaks umum fungsi plot() adalah sebagai berikut.
plot(x, y)
Parameter x dan y berisi nilai-nilai numerik. Sebagai contoh, parameter
x diisi dengan nilai-nilai numerik dari kolom ke-1 dataset iris. Dan
parameter y diisi dengan nilai-nilai dari kolom ke-2 dataset iris.
plot(iris[,1], iris[,2])
Output dari fungsi ini adalah sebagai berikut.
Gambar 48. Grafik plot(iris[,1], iris[,2])
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 55
Jika dataset hanya terdiri atas 2 feature saja, sebagai contoh dataset cars.
> head(cars)
speed dist
1 4 2
2 4 10
3 7 4
4 7 22
5 8 16
6 9 10
. . .
Maka fungsi plot() dapat digunakan dengan cara berikut ini.
plot(cars)
Output dari kode di atas adalah sebagai berikut.
Gambar 49. Grafik plot(cars).
Jika cara diatas digunakan pada dataset yang terdiri lebih dari 2 feature,
sebagai contoh dataset iris yang memiliki 5 feature, maka fungsi plot()
akan secara otomatis membuat banyak grafik. Grafik akan berisi
kombinasi seperti pada gambar di bawah ini.
56 │ M. Reza Faisal & Dodon T. Nugrahadi
plot(iris)
Gambar 50. Grafik plot(iris).
scatterplot3()
Untuk membuat plot 3 dimensi diperlukan package tambahan yaitu
scatterplot3d. Langkah pertama adalah menginstall package ini dengan
fungsi berikut.
install.packages("scatterplot3d")
Kemudian muat package ini dengan fungsi di bawah ini.
library(scatterplot3d)
Fungsi untuk membuat plot 3 dimensi adalah scatterplot3d(). Sintaks
dari fungsi ini adalah sebagai berikut.
scatterplot3d(x,y,z, main="YourTitle")
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 57
Sebagai contoh untuk membuat plot 3 dimensi dari data mtcars
digunakan kode di bawah ini.
attach(mtcars)
scatterplot3d(wt,disp,mpg, main="3D Scatterplot")
Gambar 51. Grafik scatterplot3d().
plot3d()
Fungsi ini juga dapat digunakan untuk membuat grafik 3 dimensi.
Kelebihan fungsi ini adalah interaksi user. User dapat melihat grafik
dari sudut yang diinginkan dengan cara memutar ke arah yang
diinginkan.
Langkah pertama untuk menggunakan fungsi ini adalah memuat
package rgl.
library(rgl)
58 │ M. Reza Faisal & Dodon T. Nugrahadi
Sintaks dari fungsi plot3d() adalah sebagai berikut.
plot3d(x, y, z)
Untuk membuat plot dari data mtcars dapat dilihat pada kode di bawah
ini.
plot3d(wt, disp, mpg)
Gambar 52. Grafik plot3d().
Gerakkan grafik dengan mengarahkan cursor mouse pada grafik.
Kemudian klik tombol mouse sebelah kiri dan tahan. Kemudian
gerakkan cursor ke kiri atau ke kanan, dan ke atas atau ke bawah.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 59
hist()
Fungsi hist() digunakan untuk membuat grafik histogram. Grafik ini
dapat memberikan informasi frekuensi distribusi data. Sintaks fungsi
hist() adalah sebagai berikut.
hist(x)
Parameter x dapat diisi dengan obyek numerik.
Selain dataset iris, platform R memiliki dataset lain yang dapat
digunakan. Salah satunya adalah dataset mtcars.
> head(mtcars)
mpg cyl disp hp drat
Mazda RX4 21.0 6 160 110 3.90
Mazda RX4 Wag 21.0 6 160 110 3.90
Datsun 710 22.8 4 108 93 3.85
Hornet 4 Drive 21.4 6 258 110 3.08
Hornet Sportabout 18.7 8 360 175 3.15
Valiant 18.1 6 225 105 2.76
wt qsec vs am gear
Mazda RX4 2.620 16.46 0 1 4
Mazda RX4 Wag 2.875 17.02 0 1 4
Datsun 710 2.320 18.61 1 1 4
Hornet 4 Drive 3.215 19.44 1 0 3
Hornet Sportabout 3.440 17.02 0 0 3
Valiant 3.460 20.22 1 0 3
carb
Mazda RX4 4
Mazda RX4 Wag 4
Datsun 710 1
Hornet 4 Drive 1
Hornet Sportabout 2
Valiant 1
60 │ M. Reza Faisal & Dodon T. Nugrahadi
Jika parameter x diisi dengan nilai numerik feature mpg, maka akan
didapat grafik histogram sebagai berikut.
hist(mtcars[,1])
atau
hist(mtcars$mpg)
Gambar 53. Grafik hist(mtcars[,1])
density()
Fungsi density() berguna untuk melakukan estimasi kernel density.
Output fungsi ini dapat dibuat dalam bentuk grafik dengan cara seperti
contoh di bawah ini.
plot(density(mtcars$mpg))
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 61
Hasil dari kode di atas adalah sebagai berikut.
Gambar 54. Grafik density.
pie()
Fungsi pie() digunakan untuk membuat grafik pie. Sintaks fungsi ini
adalah sebagai berikut.
pie(x, labels = y)
Sebagai contoh adalah sebagai berikut.
pie(c(30,70), labels = c("wanita", "pria"))
62 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 55. Grafik pie()
Jika dimiliki obyek table maka akan lebih mudah untuk membuat grafik
pie. Sebagai contoh sebagai berikut.
pie(table(iris[,5]))
Gambar 56. Grafik pie dataset iris.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 63
barplot()
Fungsi barplot() digunakan untuk membuat grafik berbentuk bar.
Sintaks fungsi ini adalah sebagai berikut.
barplot(x)
Berikut adalah contoh penggunaan fungsi barplot().
barplot(mtcars$mpg)
Gambar 57. Grafik barplot vertical.
Untuk membuat grafik horizontal maka digunakan opsi horiz = TRUE
seperti contoh di bawah ini.
barplot(mtcars$mpg, horiz = TRUE)
Gambar 58. Grafik barplot horizontal.
64 │ M. Reza Faisal & Dodon T. Nugrahadi
boxplot()
Fungsi boxplot() berfungsi untuk membuat grafik box dan whisker dari
sekumpulan nilai. Contoh penggunaan fungsi ini adalah sebagai
berikut.
boxplot(iris[,1:4])
Gambar 59. Grafik fungsi boxplot().
par()
Fungsi par() dapat digunakan untuk membuat beberapa grafik hasil
fungsi-fungsi di atas dalam satu gambar. Sintaks dari fungsi par()
adalah sebagai berikut:
par(mfrow=c(jumlah_grafik_dalam_baris,
jumlah_grafik_dalam_kolom))
Sebagai contoh jika ingin membuat 2 output grafik dalam satu gambar
maka digunakan kode berikut.
par(mfrow=c(1,2))
plot(mtcars$wt,mtcars$mpg)
plot(mtcars$wt,mtcars$disp)
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 65
Gambar 60. Fungsi par() untuk membuat 2 grafik dalam 1 kolom.
Jika ingin membuat 3 grafik dalam 1 baris maka digunakan kode seperti
berikut.
par(mfrow=c(1,3))
plot(mtcars$wt,mtcars$mpg)
plot(mtcars$wt,mtcars$disp)
plot(mtcars$wt,mtcars$disp)
Gambar 61. Fungsi par() untuk membuat 3 grafik dalam 1 kolom.
66 │ M. Reza Faisal & Dodon T. Nugrahadi
Untuk membuat 4 grafik dalam 2 baris dan 2 kolom maka digunakan
kode berikut ini.
par(mfrow=c(2,2))
plot(mtcars$wt,mtcars$mpg)
plot(mtcars$wt,mtcars$disp)
plot(mtcars$wt,mtcars$mpg)
plot(mtcars$wt,mtcars$disp)
Gambar 62. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2
kolom.
3.12 Visualisasi Data
Pada sub bab sebelumnya telah diterangkan tentang fungsi plot() untuk
membuat grafik 2 dimensi. Diterangkan pula fungsi plot3d() untuk
membuat grafik 3 dimensi. Jika data memiliki lebih dari 3 feature, maka
perlu dipilih minimal 2 feature untuk membuat grafik 2 dimensi, atau
dipilih 3 feature untuk membuat grafik 3 dimensi. Artinya ada feature
yang tidak digunakan.
Jika ingin membuat grafik yang menggunakan informasi dari seluruh
feature dari dataset maka dapat digunakan Principal Component
Analysis (PCA).
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 67
Principal Component Analysis (PCA)
Principal Component Analysis adalah teknik untuk membangun
variable-variable baru yang merupakan kombinasi linear dari variable-
variable asli. Atau teknik yang digunakan untuk menyederhanakan
suatu data, dengan cara mentransformasi data secara linier sehingga
terbentuk sistem koordinat baru dengan varians maksimum. Jumlah
maximum dari variable-variable baru ini akan sama dengan jumlah dari
variable lama, dan variable-variable baru ini tidak saling berkorelasi
satu sama lain.
PCA dapat digunakan untuk mereduksi dimensi suatu data tanpa
mengurangi karakteristik data tersebut secara signifikan atau tetap
mempertahankan informasi yang terkandung di dalamnya.
Dengan penjelasan di atas, jika data memiliki feature lebih dari 3 maka
PCA dapat mereduksi feature menjadi 2 atau 3 feature saja. Sehingga
data dapat digambar pada grafik 2 dimensi atau 3 dimensi. Tetapi
keberhasilan PCA untuk menggambar data ke dalam 2 dimensi dan 3
dimensi tergantung data tersebut. Jadi ada kemungkinan PCA tidak
akan memberikan gambaran yang benar tentang sebaran data.
Implementasi PCA pada platform R adalah dengan menggunakan
fungsi prcomp(). Data input untuk fungsi ini adalah numerik. Sebagai
contoh, berikut ini adalah data iris.
> head(iris)
Sepal.Length Sepal.Width Petal.Length
1 5.1 3.5 1.4
2 4.9 3.0 1.4
3 4.7 3.2 1.3
4 4.6 3.1 1.5
5 5.0 3.6 1.4
6 5.4 3.9 1.7
Petal.Width Species
1 0.2 setosa
2 0.2 setosa
3 0.2 setosa
4 0.2 setosa
5 0.2 setosa
6 0.4 setosa
68 │ M. Reza Faisal & Dodon T. Nugrahadi
Kolom yang dapat digunakan sebagai input fungsi prcomp() adalah
kolom ke-1 sampai ke-4. Sehingga penggunaan fungsi prcomp() dapat
ditulis sebagai berikut.
iris.pca = prcomp(iris[,-5]) #seluruh kolom, kecuali
kolom ke-5
atau
iris.pca = prcomp(iris[,1:4]) #kolom ke-1 sampai ke-4
Fungsi ini menghasilkan 4 output. Output yang pertama adalah standar
deviasi principal component. Output ini dapat dilihat dengan cara di
bawah ini.
> iris.pca$sdev
[1] 2.0562689 0.4926162 0.2796596 0.1543862
Output kedua adalah matrix variable loading. Kode di bawah ini
digunakan untuk melihat output ini.
> iris.pca$rotation
PC1 PC2 PC3 PC4
Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872
Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231
Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390
Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574
Output ketiga adalah nilai rotasi data. Output ini dapat dilihat dengan
menggunakan kode berikut. Jumlah data output ini sesuai dengan
jumlah data pada dataset iris yaitu 150 instance.
> iris.pca$x
PC1 PC2 PC3 PC4
[1,] -2.684125626 -0.319397247 0.027914828 0.0022624371
[2,] -2.714141687 0.177001225 0.210464272 0.0990265503
[3,] -2.888990569 0.144949426 -0.017900256 0.0199683897
. . .
[149,] 1.900941614 -0.116627959 -0.723251563 0.0445953047
[150,] 1.390188862 0.282660938 -0.362909648 -0.1550386282
Output yang terakhir adalah nilai center. Nilai center dapat dilihat
dengan perintah berikut.
> iris.pca$center
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758000 1.199333
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 69
Visualisasi 2D
Untuk membuat visualisasi grafik 2D digunakan fungsi biplot() seperti
contoh berikut ini.
biplot(iris.pca)
Hasilnya akan dapat dilihat pada gambar di bawah ini.
Gambar 63. Grafik visualisasi 2D dengan fungsi biplot().
Untuk menghasilkan grafik yang lebih bagus dapat digunakan fungsi
pca2d(). Fungsi ini dimiliki oleh package pca3d. Install package pca3d
dengan perintah berikut ini.
70 │ M. Reza Faisal & Dodon T. Nugrahadi
install.packages("pca3d")
Kemudian muat package dengan perintah berikut.
library(pca3d)
Untuk membuat grafik 2D output fungsi prcomp() digunakan kode di
bawah ini.
pca2d(iris.pca, group = iris[,5])
Parameter group diisi dengan feature dataset yang menyimpan label setiap
instance. Berikut adalah grafik yang dihasilkan.
Gambar 64. Grafik 2 dimensi fungsi pca2d().
Visualisasi 3D
Untuk membuat grafik 3 dimensi digunakan fungsi pca3d() dari
package pca3d yang telah digunakan pada sub bab sebelumnya.
Kode di bawah ini adalah contoh penggunaan fungsi pca3d().
pca3d(iris.pca, group = iris[,5])
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 71
Gambar 65. Grafik 3 dimensi fungsi pca3d()
Grafik 3 dimensi di atas dapat dilihat dari sisi yang diinginkan user.
User juga dapat melakukan zoom in dan zoom out.
3.13 Help
Platform R memberikan fungsi help() untuk menampilkan dokumentasi
suatu fungsi. Sintaks fungsi ini adalah sebagai berikut.
help(FunctionName)
Berikut ini adalah contoh penggunaan fungsi help().
72 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 66. Output fungsi help() pada R Tools for Visual Studio.
Gambar 67. Output fungsi help() pada RStudio.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 73
Bab IV Pengantar Klasifikasi
Pada bab ini akan dijelaskan pengantar klasifikasi meliputi definisi dan
cara kerja klasifikasi. Penjelasan tentang karakteristik data yang dapat
digunakan serta istilah-istilah yang umum digunakan. Pembahasan
yang terakhir adalah langkah-langkah pengembangan aplikasi
klasifikasi yang umum dilakukan.
4.1 Definisi
Klasifikasi adalah salah satu teknik machine learning. Pada bab
sebelumnya telah disebutkan bahwa teknik ini termasuk ke dalam tipe
supervised learning. Istilah klasifikasi didapat dari tujuan utama
teknik ini untuk memprediksi sebuah kategori dari input data.
Sebelum melakukan proses prediksi, terlebih dahulu dilakukan proses
pembelajaran. Proses pembelajaran memerlukan data. Data yang
digunakan pada proses pembelajaran disebut data latih atau data
training. Sedangkan data yang digunakan pada proses predeksi disebut
data uji atau data testing.
Kasus klasifikasi dapat dibedakan berdasarkan tipe masalah yang
umumnya ditemui, yaitu:
1. Klasifikasi 1 class.
2. Klasifikasi 2 class (binary).
3. Klasifikasi multiclass, terdapat lebih dari 2 class.
4.2 Data
Tidak semua data dapat digunakan pada teknik klasifikasi. Di bawah
ini adalah contoh input data yang dapat digunakan untuk teknik
klasifikasi.
74 │ M. Reza Faisal & Dodon T. Nugrahadi
Data di bawah ini merupakan dataset yang telah ada di lingkungan R.
Dataset Titanic ini berisi catatan korban kecelakaan kapal Titanic.
Dataset terdiri atas 3 feature yaitu Class, Sex, Age dan satu target
variable yaitu Survived. Dan nilai-nilai pada masing-masing feature
adalah nominal. Dataset ini memiliki dua kategori/class yaitu No
sebanyak 16 instance dan Yes sebanyak 16 instance.
Class Sex Age Survived
1st Male Child No
2nd Male Child No
3rd Male Child No
Crew Male Child No
1st Female Child No
2nd Female Child No
3rd Female Child No
Crew Female Child No
1st Male Adult No
2nd Male Adult No
3rd Male Adult No
Crew Male Adult No
1st Female Adult No
2nd Female Adult No
3rd Female Adult No
Crew Female Adult No
1st Male Child Yes
2nd Male Child Yes
3rd Male Child Yes
Crew Male Child Yes
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 75
Class Sex Age Survived
1st Female Child Yes
2nd Female Child Yes
3rd Female Child Yes
Crew Female Child Yes
1st Male Adult Yes
2nd Male Adult Yes
3rd Male Adult Yes
Crew Male Adult Yes
1st Female Adult Yes
2nd Female Adult Yes
3rd Female Adult Yes
Crew Female Adult Yes
Tabel 1. Dataset Titanic.
Contoh data yang kedua adalah dataset Iris. Dataset iris adalah dataset
yang tersedia pada platform R. Dataset ini terdiri atas empat feature
yaitu Sepal.Length, Sepal.Width, Petal.Length, Petal.Width dan sebuah
target variable yaitu Species. Target variable Species bernilai nominal
sedangkan feature-feature lainnya bernilai numerik. Jumlah kategori
adalah 3 yaitu setosa, versicolor dan virginica. Jumlahs instance yang
dimiliki oleh dataset iris adalah 150 instance, 50 instace adalah kategori
setosa, 50 instance adalah kategori versicolor dan 50 instance sisanya
adalah virginica.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
5 3.3 1.4 0.2 setosa
. . .
76 │ M. Reza Faisal & Dodon T. Nugrahadi
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
7 3.2 4.7 1.4 versicolor
6.4 3.2 4.5 1.5 versicolor
6.9 3.1 4.9 1.5 versicolor
5.5 2.3 4 1.3 versicolor
6.5 2.8 4.6 1.5 versicolor
. . .
6.3 3.3 6 2.5 virginica
5.8 2.7 5.1 1.9 virginica
7.1 3 5.9 2.1 virginica
6.3 2.9 5.6 1.8 virginica
6.5 3 5.8 2.2 virginica
Tabel 2. Dataset iris.
Contoh data yang lain adalah mtcars. Dataset mtcars juga telah tersedia
di lingkungan R.
cyl hp wt am
Mazda RX4 6 110 2.62 1
Mazda RX4 Wag 6 110 2.875 1
Datsun 710 4 93 2.32 1
Hornet 4 Drive 6 110 3.215 0
Hornet Sportabout 8 175 3.44 0
Valiant 6 105 3.46 0
Duster 360 8 245 3.57 0
Merc 240D 4 62 3.19 0
Merc 230 4 95 3.15 0
Merc 280 6 123 3.44 0
Merc 280C 6 123 3.44 0
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 77
cyl hp wt am
Merc 450SE 8 180 4.07 0
Merc 450SL 8 180 3.73 0
Merc 450SLC 8 180 3.78 0
Cadillac Fleetwood 8 205 5.25 0
Lincoln Continental 8 215 5.424 0
Chrysler Imperial 8 230 5.345 0
Fiat 128 4 66 2.2 1
Honda Civic 4 52 1.615 1
Toyota Corolla 4 65 1.835 1
Toyota Corona 4 97 2.465 0
Dodge Challenger 8 150 3.52 0
AMC Javelin 8 150 3.435 0
Camaro Z28 8 245 3.84 0
Pontiac Firebird 8 175 3.845 0
Fiat X1-9 4 66 1.935 1
Porsche 914-2 4 91 2.14 1
Lotus Europa 4 113 1.513 1
Ford Pantera L 8 264 3.17 1
Ferrari Dino 6 175 2.77 1
Maserati Bora 8 335 3.57 1
Volvo 142E 4 109 2.78 1
Tabel 3. Dataset mtcars.
Dataset di atas terdiri atas 3 feature yaitu cyl, hp dan wt. Sedangkan am
adalah target variable yang menyatakan kategori/class. Pada dataset di
atas nilai feature dan target variable adalah numerik.
78 │ M. Reza Faisal & Dodon T. Nugrahadi
Dari tiga contoh data di atas, maka ciri khas dari data yang dapat
digunakan untuk proses klasifikasi adalah terdapatnya kolom atau
attribut sebagai target variable. Target variable berfungsi sebagai label
untuk setiap instance. Dengan adanya label tersebut maka dapat
diketahui kategori dari instance tersebut.
Kemudian pada contoh di atas juga diperkenalkan beberapa istilah yang
akan digunakan pada buku ini yaitu:
1. Instance, adalah sample atau record pada dataset.
2. Feature, adalah kolom atau attribut yang dimiliki oleh data.
4.3 Langkah-Langkah Pengembangan
Sub bab ini menjelaskan tentang langkah-langkah pengembangan
aplikasi klasifikasi. Berikut ini adalah urutan langkah-langkah tersebut:
1. Pengenalan data atau eksplorasi data.
2. Pembagian data.
3. Implementasi algoritma klasifikasi.
4. Pengukuran kinerja algoritma klasifikasi.
Pengenalan Data
Dengan mengenal data yang akan digunakan maka kita dapat
menentukan algoritma yang cocok digunakan. Pada buku ini proses ini
menggunakan cara yang sederhana yaitu:
1. Melihat struktur data, informasi yang didapatkan adalah jumlah
instance, jumlah feature, tipe data pada feature dan target
variable.
2. Melihat rangkuman data secara statistik.
3. Melihat sebaran instace-instance pada data dalam grafik 2
dimensi dan 3 dimensi. Proses ini bertujuan untuk melihat
sebaran data pada data space. Proses ini dapat memberikan
informasi overlapping antar class dan keberadaan sub cluster
pada class. Tapi tidak semua data bisa digambar dalam sebaran
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 79
data pada data space, karena proses ini dapat dilakukan jika tipe
data feature-feature adalah numerik.
Pembagian Data
Algoritma klasifikasi dapat melakukan prediksi setelah proses training
terlebih dahulu dilakukan. Proses training memerlukan data yang telah
tersedia. Dan setelah proses pembelajaran selesai maka data baru dapat
diprediksi.
Jika kita memiliki data maka ada tersebut harus dibagi menjadi dua
untuk melakukan proses pembelajaran dan pengujian. Jangan
menggunakan data yang sama untuk proses pembelajaran dan
pengujian.
Sebagai ilustrasi, kotak abu-abu di bawah ini adalah data yang dimiliki.
Jika dimiliki data dengan 100 instance maka jangan menggunakan 100
instance pada proses training, kemudian menggunakan 100 instace itu
lagi untuk proses pengujian
Gambar 68. Data yang dimiliki.
Data harus dibagi menjadi dua, misal 80 instace untuk proses training
dan 20 instace untuk pengujian.
Gambar 69. Data dibagi menjadi data training dan testing.
Teknik pembagian data training dan data testing yang umum
digunakan untuk menguji algoritma klasifikasi adalah cross validation.
Cross Validation
Sub bab ini akan memberikan penjelasan sederhana tentang cara kerja
cross validation. Misal data dibagi menjadi 2 bagian seperti pada
gambar di bawah ini.
80 │ M. Reza Faisal & Dodon T. Nugrahadi
Gambar 70. Membagi data menjadi 2.
Maka teknik cross validation akan melakukan proses pembelajaran dan
pengujian sebanyak 2 kali. Pertama, proses pembelajaran akan
menggunakan data kotak abu-abu. Kemudian melakukan proses
pengujian menggunakan data kotak hitam. Kedua, proses pembelajaran
akan menggunakan data kotak hitam. Kemudian melakukan proses
pengujian menggunakan data kotak abu-abu. Kinerja metode klasifikasi
di atas adalah rata-rata kinerja dari dua proses pembelajaran dan
pengujian.
Dari penjelasan singkat di atas, dapat dilihat semua data digunakan
sebagai data training dan testing. Sehingga algoritma klasifikasi yang
digunakan lebih teruji dan nilai kinerja yang didapat lebih valid.
Pada sub bab ini dibahas 2 teknik cross validation yaitu:
1. K-fold cross validation.
2. Leave-one-out cross validation.
K-Fold Cross Validation
K adalah bilangan bulat yang digunakan untuk membagi data. Jika nilai
k = 5 maka data akan dibagi 5 seperti gambar di bawah ini.
Gambar 71. Data dibagi 5 bagian.
Maka metode klasifikasi akan melakukan proses pembelajaran dan
pengujian sebanyak 5 kali.
Pertama, kotak kotak-kotak warna abu-abu akan menjadi data training.
Dan kotak warna hitam akan menjadi data testing.
Gambar 72. Data proses pertama.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 81
Kedua, kotak kedua akan menjadi data testing dan sisanya menjadi data
training.
Gambar 73. Data proses kedua.
Ketiga, kotak ketiga akan menjadi data testing dan sisanya menjadi data
training.
Gambar 74. Data proses ketiga.
Keempat, kotak keempat akan menjadi data testing dan sisanya menjadi
data training.
Gambar 75. Data proses keempat.
Kelima, kotak kelima akan menjadi data testing dan sisanya menjadi
data training.
Gambar 76. Data proses keempat.
Selanjutnya nilai kinerja 5 proses pembelajaran dan pengujian akan
dirata-ratakan sebagai nilai kinerja metode klasifikasi.
Pembagian data di atas harus memperhatikan jumlah kategori atau
kelas yang dimiliki data. Sebagai contoh dilakukan 5-fold cross
validation dataset iris. Dataset iris memiliki 50 instance kategori setosa,
50 instance versicolor dan 50 instance virginica. Maka pembagian data
akan seperti pada gambar di bawah ini.
82 │ M. Reza Faisal & Dodon T. Nugrahadi
30 instance
(10 setosa,
10 versicolor,
10 virginica)
30 instance
(10 setosa,
10 versicolor,
10 virginica)
30 instance
(10 setosa,
10 versicolor,
10 virginica)
30 instance
(10 setosa,
10 versicolor,
10 virginica)
30 instance
(10 setosa,
10 versicolor,
10 virginica)
Gambar 77. 5-fold cross validation data iris.
Contoh lain, jika dimiliki data sejumlah 100 instance dan 2 kategori.
Kategori “mayoritas” sejumlah 90 instace dan kategori “minoritas”
sebanyak 10 instace. Jika dilakukan 5-fold cross validation maka akan
didapat data seperti berikut.
20 instance
(18
mayoritas,
2 minoritas)
20 instance
(18
mayoritas,
2 minoritas)
20 instance
(18
mayoritas,
2 minoritas)
20 instance
(18
mayoritas,
2 minoritas)
20 instance
(18
mayoritas,
2 minoritas)
Gambar 78. 5-fold cross validation data contoh.
Pembagian data seperti cara di atas dapat dilakukan secara otomatis
dengan membuat program pada R. hal ini akan dibahas pada bab
selanjutnya.
Leave-one-out Cross Validation
Cara ini membuat 1 instance menjadi data testing dan sisanya menjadi
data training. Jika dataset iris yang memiliki 150 instance maka proses
pembelajaran dan pengujian akan dilakukan sebanyak 150 kali.
Implementasi Algoritma Klasifikasi
Setelah data dibagi menjadi data training dan data testing, selanjutnya
adalah implementasi algoritma klasifikasi. Pada tahap ini data training
akan digunakan oleh algoritma untuk belajar. Setelah proses belajar
selesai, maka data testing akan digunakan oleh algoritma klasifikasi.
Output dari algoritma tersebut hasil prediksi.
Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 83
Sebagai contoh, jika diketahui data training disimpan dalam obyek
data_training. Dan isi obyek data_training adalah seperti berikut.
F.1 F.2 F.3 F.4 F5 TV
1 5.1 3.5 1.4 0.2 class1
2 4.9 3.0 1.4 0.2 class2
3 4.7 3.2 1.3 0.2 class1
4 4.6 3.1 1.5 0.2 class1
5 5.0 3.6 1.4 0.2 class2
6 5.4 3.9 1.7 0.4 class1
7 5.1 3.5 1.4 0.2 class1
8 4.9 3.0 1.4 0.2 class2
9 4.7 3.2 1.3 0.2 class1
10 4.6 3.1 1.5 0.2 class1
Sedangkan jika data testing disimpan dalam obyek data_testing. Dan isi
obyek data_testing adalah sebagai berikut.
F.1 F.2 F.3 F.4 F5 TV
1 6.7 3.3 5.7 2.5 class1
2 6.7 3.0 5.2 2.3 class2
3 5.1 3.5 1.4 0.2 class1
4 6.7 3.0 5.2 2.3 class2
Jika fungsi algorithm() adalah algoritma klasifikasi maka berikut ini
adalah contoh pseudo code implementasi fungsi algorithm().
prediction = algorithm(data_training, data_testing)
Obyek prediction pada contoh pseudo code di atas berisi prediksi atas
data_testing. Hasil prediksi biasanya berisi nilai target variable dan
probabilitas prediksi.
> prediction
prediction probability
[1,] class1 1
[2,] class1 0.6
[3,] class1 1
[4,] class2 0.9
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn
Belajar datascience isbn

More Related Content

Similar to Belajar datascience isbn

Modul_Praktikum_Algoritma_and_Pemrograma.pdf
Modul_Praktikum_Algoritma_and_Pemrograma.pdfModul_Praktikum_Algoritma_and_Pemrograma.pdf
Modul_Praktikum_Algoritma_and_Pemrograma.pdf
Valentino Selayan
 
01 Silabus Mikroprosessor & Mikrokontroller.docx
01 Silabus Mikroprosessor & Mikrokontroller.docx01 Silabus Mikroprosessor & Mikrokontroller.docx
01 Silabus Mikroprosessor & Mikrokontroller.docx
damara15
 

Similar to Belajar datascience isbn (20)

Program kerja tkj_2020-2021
Program kerja tkj_2020-2021Program kerja tkj_2020-2021
Program kerja tkj_2020-2021
 
Buku jvv jilid 2 ok
Buku jvv jilid 2 okBuku jvv jilid 2 ok
Buku jvv jilid 2 ok
 
Modul_Praktikum_Algoritma_and_Pemrograma.pdf
Modul_Praktikum_Algoritma_and_Pemrograma.pdfModul_Praktikum_Algoritma_and_Pemrograma.pdf
Modul_Praktikum_Algoritma_and_Pemrograma.pdf
 
Tugas 3 MPPL Kerangka Acuan Kerja 2019
Tugas 3 MPPL Kerangka Acuan Kerja 2019Tugas 3 MPPL Kerangka Acuan Kerja 2019
Tugas 3 MPPL Kerangka Acuan Kerja 2019
 
CONTOH LAPORAN DLKM OPERASI SISTEM KOMPUTER IT-020-4
CONTOH LAPORAN DLKM OPERASI SISTEM KOMPUTER IT-020-4CONTOH LAPORAN DLKM OPERASI SISTEM KOMPUTER IT-020-4
CONTOH LAPORAN DLKM OPERASI SISTEM KOMPUTER IT-020-4
 
Tugas Akhir SI SLPK Pos Makassar
Tugas Akhir SI SLPK Pos MakassarTugas Akhir SI SLPK Pos Makassar
Tugas Akhir SI SLPK Pos Makassar
 
Tugas metpen
Tugas metpen Tugas metpen
Tugas metpen
 
01 Silabus Mikroprosessor & Mikrokontroller.docx
01 Silabus Mikroprosessor & Mikrokontroller.docx01 Silabus Mikroprosessor & Mikrokontroller.docx
01 Silabus Mikroprosessor & Mikrokontroller.docx
 
Tugas 3 kak 05111640000171
Tugas 3 kak 05111640000171Tugas 3 kak 05111640000171
Tugas 3 kak 05111640000171
 
Tugas mandiri konsep sistem informasi
Tugas mandiri  konsep sistem informasiTugas mandiri  konsep sistem informasi
Tugas mandiri konsep sistem informasi
 
Makalah perancangan web (website 5 k lapak)
Makalah perancangan web (website 5 k lapak) Makalah perancangan web (website 5 k lapak)
Makalah perancangan web (website 5 k lapak)
 
Project charter pt karyaindo konstruksi
Project charter pt karyaindo konstruksiProject charter pt karyaindo konstruksi
Project charter pt karyaindo konstruksi
 
sistem informasi LTTkab. tanah datar.pdf
sistem informasi LTTkab. tanah datar.pdfsistem informasi LTTkab. tanah datar.pdf
sistem informasi LTTkab. tanah datar.pdf
 
2015-25. m. ainur rofiq - remote dekstop pada ubuntu 12.04
2015-25. m. ainur rofiq - remote dekstop pada ubuntu 12.042015-25. m. ainur rofiq - remote dekstop pada ubuntu 12.04
2015-25. m. ainur rofiq - remote dekstop pada ubuntu 12.04
 
DESKRIPSI PERANCANGAN PERANGKAT LUNAK : SISTEM LISTRIK PINTAR (LINTAR)
DESKRIPSI PERANCANGAN PERANGKAT LUNAK : SISTEM LISTRIK PINTAR (LINTAR)DESKRIPSI PERANCANGAN PERANGKAT LUNAK : SISTEM LISTRIK PINTAR (LINTAR)
DESKRIPSI PERANCANGAN PERANGKAT LUNAK : SISTEM LISTRIK PINTAR (LINTAR)
 
Kerangka Acuan Kerja - MPPL
Kerangka Acuan Kerja - MPPLKerangka Acuan Kerja - MPPL
Kerangka Acuan Kerja - MPPL
 
Perencanaan proyek fp
Perencanaan proyek fpPerencanaan proyek fp
Perencanaan proyek fp
 
Perencanaan proyek fp
Perencanaan proyek fpPerencanaan proyek fp
Perencanaan proyek fp
 
28. teknologi dan informasi
28. teknologi dan informasi28. teknologi dan informasi
28. teknologi dan informasi
 
Perencanaan proyek si
Perencanaan proyek siPerencanaan proyek si
Perencanaan proyek si
 

Recently uploaded

Abortion pills in Jeddah+966543202731/ buy cytotec
Abortion pills in Jeddah+966543202731/ buy cytotecAbortion pills in Jeddah+966543202731/ buy cytotec
Abortion pills in Jeddah+966543202731/ buy cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
sonyaawitan
 
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Riyadh +966572737505 get cytotec
 
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerjaContoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
IniiiHeru
 
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.pptKeracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
DIGGIVIO2
 
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdshKISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
DosenBernard
 
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
TaufikTito
 
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
buktifisikskp23
 
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec AsliJual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
Jual Cytotec Asli 085225524732 Obat Penggugur Kandungan
 
undang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogorundang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogor
ritch4
 

Recently uploaded (20)

Materi Pajak Untuk BOS tahun 2024 untuk madrasah MI,MTS, dan MA
Materi Pajak Untuk BOS tahun 2024 untuk madrasah MI,MTS, dan MAMateri Pajak Untuk BOS tahun 2024 untuk madrasah MI,MTS, dan MA
Materi Pajak Untuk BOS tahun 2024 untuk madrasah MI,MTS, dan MA
 
Salinan PPT TATA BAHASA Bahasa Indonesia
Salinan PPT TATA BAHASA Bahasa IndonesiaSalinan PPT TATA BAHASA Bahasa Indonesia
Salinan PPT TATA BAHASA Bahasa Indonesia
 
PEMANTAUAN HEMODINAMIK.dalam keperawatan pptx
PEMANTAUAN HEMODINAMIK.dalam keperawatan pptxPEMANTAUAN HEMODINAMIK.dalam keperawatan pptx
PEMANTAUAN HEMODINAMIK.dalam keperawatan pptx
 
Abortion pills in Jeddah+966543202731/ buy cytotec
Abortion pills in Jeddah+966543202731/ buy cytotecAbortion pills in Jeddah+966543202731/ buy cytotec
Abortion pills in Jeddah+966543202731/ buy cytotec
 
Bimbingan Teknis Penyusunan Soal Pilihan Berganda 2024.pptx
Bimbingan Teknis Penyusunan Soal Pilihan Berganda  2024.pptxBimbingan Teknis Penyusunan Soal Pilihan Berganda  2024.pptx
Bimbingan Teknis Penyusunan Soal Pilihan Berganda 2024.pptx
 
materi konsep dan Model TRIASE Bencana.pptx
materi konsep dan Model TRIASE Bencana.pptxmateri konsep dan Model TRIASE Bencana.pptx
materi konsep dan Model TRIASE Bencana.pptx
 
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
4. PENGELOLAAN ALAT MEDIS BEKAS PAKAIhbnbbv PPI DASAR (1).pdf
 
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
Abortion pills in Kuwait salmiyah [+966572737505 ] Get Cytotec in Kuwait city...
 
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
514034136-Tugas-Modul-4-5-Komputer-Dan-Media-Pembelajaran.pptx
 
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerjaContoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
Contoh laporan K3 perusahaan pada tahun 2023 dgn analisis beban kerja
 
PPT PROFESI KEPENDIDIKAN kelompok 7.pptx
PPT PROFESI KEPENDIDIKAN kelompok 7.pptxPPT PROFESI KEPENDIDIKAN kelompok 7.pptx
PPT PROFESI KEPENDIDIKAN kelompok 7.pptx
 
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.pptKeracunan bahan kimia,ektasi,opiat,makanan.ppt
Keracunan bahan kimia,ektasi,opiat,makanan.ppt
 
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppTPERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
PERTEMUAN 4 himpunan dan fungsi logika fuzzy.ppT
 
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdshKISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
KISI-KISI USEK PJOK TA 2023-2024 anans ajaja jaja hdsh
 
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
15_Contoh_Surat_Lamaran_Kerja_Lengkap_de.pdf
 
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdfAlur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
Alur Pengajuan Surat Keterangan Pindah (Individu) lewat IKD.pdf
 
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
Telaah Kurikulum dan Buku Teks Mata Pelajaran Bahasa Indonesia Sekolah Dasar ...
 
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec AsliJual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
Jual Pil Penggugur Kandungan 085225524732 Obat Aborsi Cytotec Asli
 
contoh judul tesis untuk mahasiswa pascasarjana
contoh judul tesis untuk mahasiswa pascasarjanacontoh judul tesis untuk mahasiswa pascasarjana
contoh judul tesis untuk mahasiswa pascasarjana
 
undang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogorundang undang penataan ruang daerah kabupaten bogor
undang undang penataan ruang daerah kabupaten bogor
 

Belajar datascience isbn

  • 1. See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/312160783 Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R Book · February 2019 CITATION 1 READS 9,233 2 authors, including: Some of the authors of this publication are also working on these related projects: Effect of features Generated from additional segments in protein sequence classification View project IT Asset Management View project M Reza Faisal Universitas Lambung Mangkurat 52 PUBLICATIONS   67 CITATIONS    SEE PROFILE All content following this page was uploaded by M Reza Faisal on 28 March 2019. The user has requested enhancement of the downloaded file.
  • 2.
  • 3. Belajar DATA SCIENCE Klasifikasi dengan Bahasa Pemrograman R M. Reza Faisal Dodon T. Nugrahadi
  • 4. ii │ M. Reza Faisal & Dodon T. Nugrahadi Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R © 2019 M. Reza Faisal & Dodon T. Nugrahadi 270 halaman, 16,5 x 23 cm Katalog dalam Terbitan (KDT) Perpustakaan Nasional Republik Indonesia ISBN: 978-602-0950-59-4 Hak cipta dilindungi undang-undang. Dilarang memperbanyak sebagian atau seluruh isi buku ini dalam bentuk apa pun, baik secara elektronik, termasuk memfotokopi, merekam, atau dengan menggunakan sistem penyimpanan lainnya, tanpa izin tertulis dari penulis atau penerbit. Cetakan I: Februari 2019 Penerbit Scripta Cendekia Banjarbaru, Kalimantan Selatan, Indonesia E: scriptacendekia@gmail.com
  • 5. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ iii Daftar Isi Daftar Isi ................................................................................................iii Daftar Gambar....................................................................................... ix Bab I Pendahuluan..................................................................................1 1.1 Bagaimana Manusia Belajar Mengenali?...........................1 1.2 Kenapa Komputer Perlu Mempunyai Kemampuan Belajar Seperti Manusia?...................................................2 1.3 Machine Learning .................................................................2 Domain Model ................................................................................2 Definisi.............................................................................................4 Istilah-Istilah....................................................................................4 Tipe...................................................................................................6 Langkah-Langkah Implementasi..................................................8 1.5 Machine Learning & Data Mining......................................9 Bab II Pengantar Pemrograman R......................................................11 2.1 Installasi................................................................................11 Comprehensive R Archive Network (CRAN) .......................... 11 Microsoft R Archive Network (MRAN) ....................................17 2.2 Tool Pemrograman .............................................................22 RGui................................................................................................ 22 RStudio........................................................................................... 26 R Tools for Visual Studio............................................................. 32 Bab III Fungsi-Fungsi Dasar R............................................................35 3.1 Package.................................................................................35 Installasi Package..........................................................................35
  • 6. iv │ M. Reza Faisal & Dodon T. Nugrahadi Memuat Package .......................................................................... 36 3.2 Working Directory ............................................................. 37 Mendapatkan Working Directory.............................................. 37 Menentukan Working Directory................................................ 38 3.3 Dataset ................................................................................. 38 3.4 Menulis Data Ke File.......................................................... 39 write.csv()...................................................................................... 39 write.table() ................................................................................... 40 3.5 Membaca File Text ............................................................. 40 read.csv() ....................................................................................... 40 read.table()..................................................................................... 41 3.5 Membaca File Excel............................................................ 41 3.6 Akses Database................................................................... 42 Akses Database MySQL .............................................................. 42 Akses Database SQL Server........................................................ 43 3.7 Menampilkan Data............................................................. 44 head() ............................................................................................. 45 tail() ................................................................................................ 45 View()............................................................................................. 45 obyek$rowName .......................................................................... 47 3.8 Memfilter Data.................................................................... 48 obyek[,x:y]..................................................................................... 48 obyek[x:y,]..................................................................................... 48 obyek[x1:y1, x2:y2]....................................................................... 48 obyek[which(), ]............................................................................ 49 3.9 Menggabung Data.............................................................. 49 rbind() ............................................................................................ 49 cbind() ............................................................................................ 50 3.10 Explorasi Data................................................................... 51
  • 7. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ v dim() ............................................................................................... 51 names()........................................................................................... 51 str()..................................................................................................52 table().............................................................................................. 52 summary() ..................................................................................... 53 3.11 Grafik ..................................................................................54 plot() ............................................................................................... 54 scatterplot3().................................................................................. 56 plot3d()........................................................................................... 57 hist()................................................................................................ 59 density() ......................................................................................... 60 pie().................................................................................................61 barplot() ......................................................................................... 63 boxplot()......................................................................................... 64 par() ................................................................................................ 64 3.12 Visualisasi Data .................................................................66 Principal Component Analysis (PCA).......................................67 Visualisasi 2D................................................................................ 69 Visualisasi 3D................................................................................ 70 3.13 Help.....................................................................................71 Bab IV Pengantar Klasifikasi..............................................................73 4.1 Definisi..................................................................................73 4.2 Data .......................................................................................73 4.3 Langkah-Langkah Pengembangan...................................78 Pengenalan Data...........................................................................78 Pembagian Data............................................................................79 Implementasi Algoritma Klasifikasi ..........................................82 Pengukuran Kinerja Algoritma Klasifikasi............................... 84 Bab V Pengenalan & Pembagian Data...............................................91
  • 8. vi │ M. Reza Faisal & Dodon T. Nugrahadi 5.1 Pengenalan Data................................................................. 91 Dataset Iris..................................................................................... 91 Dataset Titanic .............................................................................. 97 Dataset Yeast............................................................................... 100 5.2 Pembagian Data................................................................ 105 Persiapan Working Directory................................................... 106 Data untuk Klasifikasi Binary Class ........................................ 106 Data untuk Klasifikasi Multi Class .......................................... 112 Bab VI Rancangan Aplikasi Klasifikasi ......................................... 115 6.1 Apa Langkah Selanjutnya? ............................................. 115 6.2 Rancangan Aplikasi ......................................................... 115 Rancangan Aplikasi 1 ................................................................ 116 Rancangan Aplikasi 2 ................................................................ 117 Rancangan Aplikasi 3 ................................................................ 117 Bab VII K-Nearest Neighbors (KNN)............................................... 121 7.1 Cara Kerja.......................................................................... 121 7.2 Persiapan ........................................................................... 122 7.3 Sintaks................................................................................ 122 7.4 Implementasi..................................................................... 123 Aplikasi 1..................................................................................... 123 Aplikasi 2..................................................................................... 126 Aplikasi 3..................................................................................... 134 7.5 Catatan............................................................................... 145 Bab VIII Naïve Bayes......................................................................... 147 8.1 Cara Kerja.......................................................................... 147 8.2 Persiapan ........................................................................... 152 8.3 Sintaks................................................................................ 152 8.4 Implementasi..................................................................... 154
  • 9. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ vii Aplikasi 1..................................................................................... 155 Aplikasi 2..................................................................................... 159 Aplikasi 3..................................................................................... 162 8.5 Catatan................................................................................166 Bab IX Support Vector Machine (SVM) ...........................................169 9.1 Cara Kerja...........................................................................169 9.2 Persiapan............................................................................171 9.3 Sintaks.................................................................................172 9.4 Implementasi .....................................................................173 Aplikasi 1..................................................................................... 173 Aplikasi 2..................................................................................... 176 Aplikasi 3..................................................................................... 180 9.5 Catatan................................................................................187 Bab X Decision Tree ............................................................................189 10.1 Cara Kerja.........................................................................189 10.2 Persiapan..........................................................................196 10.3 Sintaks...............................................................................196 10.4 Implementasi ...................................................................197 Aplikasi 1..................................................................................... 197 Aplikasi 2..................................................................................... 201 Aplikasi 3..................................................................................... 206 10.5 Catatan..............................................................................212 Bab XI Klasifikasi Kelas Tidak Seimbang ......................................213 11.1 Definisi & Efek Kelas Tidak Seimbang ........................213 KNN ............................................................................................. 214 Naïve Bayes................................................................................. 215 SVM .............................................................................................. 216 Decision Tree............................................................................... 218
  • 10. viii │ M. Reza Faisal & Dodon T. Nugrahadi 11.2 Solusi Masalah................................................................ 219 11.3 Dataset Class Tidak Seimbang ..................................... 220 11.4 Solusi Pendekatan Data................................................. 222 Undersampling........................................................................... 222 Oversampling ............................................................................. 232 Gabungan Undersampling & Oversampling ......................... 239 11.5 Solusi Pendekatan Algoritma....................................... 246 Bootstrap Aggregating (Bagging) ............................................ 246 Boosting ....................................................................................... 247 Stacking........................................................................................ 248 11.6 Catatan............................................................................. 249 Daftar Pustaka ................................................................................... 251 Tentang Penulis................................................................................... 253
  • 11. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ ix Daftar Gambar Gambar 1. Data, metode statistik dan kekuatan komputasi computer (sumber: Machine Learning with R)..................................................... 3 Gambar 2. Dataset iris.................................................................................... 5 Gambar 3. Halaman download R-3.3.2 for Windows............................. 12 Gambar 4. Window Select Setup Language. ............................................ 12 Gambar 5. Window Setup - Welcome. ...................................................... 13 Gambar 6. Window Setup - Informasi lisensi........................................... 13 Gambar 7. Windows Setup - Lokasi folder installasi. ............................. 14 Gambar 8. Window Setup - Pemilihan komponen.................................. 14 Gambar 9. Window Setup - Pemilihan opsi startup................................ 15 Gambar 10. Window Setup - Memilih lokasi folder Start Menu........... 15 Gambar 11. Window Setup - Pemilihan task tambahan......................... 16 Gambar 12. Windows Setup - Proses installasi........................................ 16 Gambar 13. Window informasi akhir proses installasi........................... 17 Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome. .......... 18 Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi. .................................................................................................................. 18 Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel Library. ................................................................................................... 19 Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel Library. ................................................................................................... 19 Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi.20 Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi. .................................................................................................................. 20 Gambar 20. Window Microsoft R Open 3.3.1 Setup - Proses instalasi.. 21 Gambar 21. Window Microsoft R Open 3.3.1 Setup – proses installasi selesai...................................................................................................... 21
  • 12. x │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 22. RGui. ......................................................................................... 22 Gambar 23. R Console.................................................................................. 23 Gambar 24. Window R Editor..................................................................... 24 Gambar 25. Menyimpan file script R......................................................... 24 Gambar 26. Eksekusi file script R............................................................... 25 Gambar 27. Window R Graphics................................................................ 26 Gambar 28. Window RStudio Setup - Welcome. ..................................... 27 Gambar 29. Window RStudio Setup - Lokasi installasi. ......................... 27 Gambar 30. Window RStudio Setup - Memilih lokasi folder Start Menu. .................................................................................................................. 28 Gambar 31. Window RStudio Setup - proses installasi........................... 28 Gambar 32. Window RStudio Setup - detail proses installasi................ 29 Gambar 33. Window RStudio Setup - Proses installasi selesai.............. 29 Gambar 34. Antarmuka RStudio................................................................ 30 Gambar 35. Fitur auto complete kode. ...................................................... 31 Gambar 36. Window Plots untuk menampilkan grafik.......................... 31 Gambar 37. Installasi R Tool 0.5 for Visual Studio 2015. ........................ 32 Gambar 38. Proses installasi R Tool 0.5 for Visual Studio. ..................... 33 Gambar 39. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai. 33 Gambar 40. Antarmuka R Tool for Visual Studio.................................... 34 Gambar 41. Proses installasi package pada R Tool for Visual Studio 2015. .................................................................................................................. 36 Gambar 42. Proses installasi package pada RStudio. .............................. 36 Gambar 43. Daftar dataset pada RStudio.................................................. 38 Gambar 44. Daftar dataset pada R Tools for Visual Studio.................... 39 Gambar 45. Output fungsi View() pada R Tool for Visual Studio. ....... 46 Gambar 46. Output fungsi View() pada RStudio..................................... 46 Gambar 47. Output fungsi View() pada RGui.......................................... 47
  • 13. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xi Gambar 48. Grafik plot(iris[,1], iris[,2])..................................................... 54 Gambar 49. Grafik plot(cars)....................................................................... 55 Gambar 50. Grafik plot(iris)........................................................................ 56 Gambar 51. Grafik scatterplot3d().............................................................. 57 Gambar 52. Grafik plot3d()......................................................................... 58 Gambar 53. Grafik hist(mtcars[,1])............................................................. 60 Gambar 54. Grafik density. ......................................................................... 61 Gambar 55. Grafik pie()............................................................................... 62 Gambar 56. Grafik pie dataset iris.............................................................. 62 Gambar 57. Grafik barplot vertical. ........................................................... 63 Gambar 58. Grafik barplot horizontal. ...................................................... 63 Gambar 59. Grafik fungsi boxplot()........................................................... 64 Gambar 60. Fungsi par() untuk membuat 2 grafik dalam 1 kolom....... 65 Gambar 61. Fungsi par() untuk membuat 3 grafik dalam 1 kolom....... 65 Gambar 62. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2 kolom. ..................................................................................................... 66 Gambar 63. Grafik visualisasi 2D dengan fungsi biplot(). ..................... 69 Gambar 64. Grafik 2 dimensi fungsi pca2d()............................................ 70 Gambar 65. Grafik 3 dimensi fungsi pca3d()............................................ 71 Gambar 66. Output fungsi help() pada R Tools for Visual Studio........ 72 Gambar 67. Output fungsi help() pada RStudio...................................... 72 Gambar 68. Data yang dimiliki. ................................................................. 79 Gambar 69. Data dibagi menjadi data training dan testing. .................. 79 Gambar 70. Membagi data menjadi 2........................................................ 80 Gambar 71. Data dibagi 5 bagian............................................................... 80 Gambar 72. Data proses pertama............................................................... 80 Gambar 73. Data proses kedua................................................................... 81 Gambar 74. Data proses ketiga................................................................... 81
  • 14. xii │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 75. Data proses keempat............................................................... 81 Gambar 76. Data proses keempat............................................................... 81 Gambar 77. 5-fold cross validation data iris. ............................................ 82 Gambar 78. 5-fold cross validation data contoh....................................... 82 Gambar 79. Kasus klasifikasi binary class................................................. 85 Gambar 80. Precision & recall..................................................................... 88 Gambar 81. Kurva Receiver Operation Characteristics (ROC) .............. 89 Gambar 82. Dataset iris ditampilkan dengan fungsi View().................. 92 Gambar 83. Sebaran data iris dalam 2 dimensi........................................ 94 Gambar 84. Sebaran data iris dalam 3 dimensi........................................ 94 Gambar 85. Sebaran data obyek iris2class pada ruang 2 dimensi......... 96 Gambar 86. Sebaran data obyek iris2class pada ruang 3 dimensi........ 96 Gambar 87. Dataset Titanic. ........................................................................ 98 Gambar 88. Web UCI Machine Learning Repository............................ 100 Gambar 89. Isi file yeast.data. ................................................................... 101 Gambar 90. Output fungsi View(yeast)................................................... 102 Gambar 91. Sebaran data yeast pada ruang 2 dimensi. ........................ 104 Gambar 92. Sebaran data yeast pada ruang 3 dimensi. ........................ 105 Gambar 93. Pembagian dataset iris2class................................................ 106 Gambar 94. Output dari kode program iris2class.5fold.crossvalidation.R ................................................................................................................ 108 Gambar 95. Pembagian data titanic. ........................................................ 109 Gambar 96. Output dari kode program titanic.kfold.crossvalidation.R ................................................................................................................ 111 Gambar 97. Pembagian data iris.............................................................. 112 Gambar 98. Alur proses aplikasi 1. .......................................................... 116 Gambar 99. Alur proses aplikasi 2. .......................................................... 117 Gambar 100. Alur proses aplikasi 3. ........................................................ 118
  • 15. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xiii Gambar 101. Cara kerja algoritma K-Nearest Neighbors (KNN)........ 121 Gambar 102. Grafik ROC Aplikasi 2 KNN. ............................................ 133 Gambar 103. Grafik ROC gabungan Aplikasi 3 KNN........................... 137 Gambar 104. Grafik ROC Aplikasi 2 Naïve Bayes................................. 162 Gambar 105. Grafik ROC gabungan Aplikasi 3 Naïve Bayes. ............. 164 Gambar 106. Sebaran instance class Women & Men............................. 169 Gambar 107. Hyperplane pada SVM...................................................... 170 Gambar 108. Hyperplane optimal............................................................ 171 Gambar 109. Kurva ROC kasus klasifikasi Titanic dengan SVM........ 179 Gambar 110. Grafik ROC kasus klasifikasi Iris dengan SVM. ............. 180 Gambar 111. Kurva ROC kasus dataset Titanic pada aplikasi 3. ........ 182 Gambar 112. Kurva ROC kasus dataset Irispada aplikasi 3................. 184 Gambar 113. Kurva ROC kasus dataset Iris pada kasus multiclass classification......................................................................................... 186 Gambar 114. Decision tree (pohon keputusan) data cuaca. ................. 189 Gambar 115. Pohon tahap 1. ..................................................................... 192 Gambar 116. Pohon tahap 2. ..................................................................... 193 Gambar 117. Pohon tahap 3. ..................................................................... 194 Gambar 118. Pohon tahap akhir............................................................... 195 Gambar 119. Decision tree dataset Iris. ................................................... 198 Gambar 120. Decision tree dataset Titanic.............................................. 200 Gambar 121. Kurva ROC aplikasi 2 fungsi J48() dataset Iris................ 204 Gambar 122. Kurva ROC aplikasi 2 fungsi J48() kasus Titanic............ 205 Gambar 123. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross validation kasus dataset Iris. ............................................................. 207 Gambar 124. Kurva ROC aplikasi 3 dengan fungsi J48() dan cross validation kasus dataset Titanic........................................................ 209 Gambar 125. Decision tree dataset iris 3 class........................................ 211
  • 16. xiv │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 126. Sebaran dataset hacide. ...................................................... 214 Gambar 127. Kurva ROC klasifikasi dataset hacide dengan KNN. .... 215 Gambar 128. Kurva ROC klasifikasi dataset hacide dengan Naïve Bayes. ................................................................................................................ 216 Gambar 129. Kurva ROC klasifikasi dataset hacide dengan SVM...... 217 Gambar 130. Kurva ROC klasifikasi dataset hacide dengan Decision Tree........................................................................................................ 219 Gambar 131. Kurva ROC untuk kasus klasifikasi dengan KNN dan undersampling..................................................................................... 224 Gambar 132. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan undersampling............................................................................. 227 Gambar 133. Kurva ROC untuk kasus klasifikasi dengan SVM dan undersampling..................................................................................... 229 Gambar 134. Kurva ROC untuk kasus klasifikasi dengan decision tree dan undersampling............................................................................. 231 Gambar 135. Kurva ROC untuk kasus klasifikasi dengan KNN dan oversampling. ...................................................................................... 234 Gambar 136. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan oversampling................................................................................ 235 Gambar 137. Kurva ROC untuk kasus klasifikasi dengan SVM dan oversampling. ...................................................................................... 236 Gambar 138. Kurva ROC untuk kasus klasifikasi dengan decision tree dan oversampling................................................................................ 238 Gambar 139. Kurva ROC untuk kasus klasifikasi dengan KNN dan gabungan oversampling dan undersampling................................. 241 Gambar 140. Kurva ROC untuk kasus klasifikasi dengan Naïve Bayes dan gabungan oversampling dan undersampling. ........................ 242 Gambar 141. Kurva ROC untuk kasus klasifikasi dengan SVM dan gabungan oversampling dan undersampling................................. 243 Gambar 142. Kurva ROC untuk kasus klasifikasi dengan decision tree dan gabungan oversampling dan undersampling. ........................ 245 Gambar 143. Skema teknik bagging......................................................... 246
  • 17. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ xv Gambar 144. Skema teknik boosting. ...................................................... 248 Gambar 145. Skema teknik stacking........................................................ 249
  • 18.
  • 19. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 1 Bab I Pendahuluan 1.1 Bagaimana Manusia Belajar Mengenali? Anak kecil mempunyai keingintahuan yang sangat tinggi. Saat seorang anak kecil dan orang tuanya duduk di depan rumah maka anak kecil tersebut mungkin akan bertanya tentang apa saja yang lewat di depan rumahnya. Saat mobil lewat, sang anak bertanya: “Itu apa?”. “Itu mobil nak”, jawab sang orang tua. Pertanyaan serupa mungkin diulang-ulang oleh sang anak sampai puluhan mobil lewat di depan rumahnya. Sampai suatu saat hal itu tidak akan ditanyakan lagi oleh sang anak. Karena sang anak telah mengenal ciri-ciri bermacam-macam mobil yang telah lewat di depan rumahnya. Suatu saat mungkin sang anak akan memiliki pertanyaan lain. Tetapi pertanyaannya masih berkaitan tentang mobil. Sang anak bertanya: “Itu mobil ya?”. Sang orang tua akan menjawab: “Iya nak” ketika yang lewat adalah mobil. Dan menjawab: “Bukan nak” ketika yang lewat bukan mobil. Hal yang sama mungkin akan terjadi lagi ketika sang anak melihat sepeda motor. Dan kembali sang anak akan berhenti bertanya ketika sang anak telah mengenal ciri-ciri bermacam-macam sepeda motor yang dia lihat. Ketika proses belajar pengenalan mobil dan sepeda motor selesai, maka sang anak akan dengan gampang mengklasifikasikan mana mobil dan sepeda motor. Cerita di atas adalah contoh sederhana supervised learning. Karena data tentang setiap mobil memiliki labelnya. Jika data tentang setiap mobil adalah setiap pertanyaan tentang mobil, maka label adalah jawaban sang orang tua.
  • 20. 2 │ M. Reza Faisal & Dodon T. Nugrahadi 1.2 Kenapa Komputer Perlu Mempunyai Kemampuan Belajar Seperti Manusia? Tetapi masalah yang dihadapi manusia tidak hanya masalah menentukan dan membedakan sepeda motor dan mobil saja. Banyak hal-hal serupa yang ingin diketahui oleh manusia sebagai contoh adalah bagaimana membedakan email spam dan email bukan spam. Jika manusia belajar mengidentifikasi email spam dan bukan seperti bagaimana sang anak di atas belajar, maka dengan mudah dapat membedakan email spam dan bukan. Tetapi masalahnya tidak mungkin untuk mempekerjakan manusia untuk memfilter email spam yang jumlahnya jutaan bahkan milyaran lebih email pada Yahoo! Mail atau Gmail. Karena manusia mempunyai kebatasan dalam hal kecepatan melakukan menghadapi jumlah yang banyak, selain itu keterbatasan stamina untuk bekerja dalam waktu yang lama atau tanpa istirahat. Selain masalah filter email spam juga ada masalah lain seperti: 1. Menentukan penipuan transaksi di bank. 2. Pada bidang bioinformatika terdapat masalah seperti klasifikasi kanker, DNA, genome dan lain-lain. 3. Klasifikasi lahan pada citra GIS. 4. Dan lain-lain. 1.3 Machine Learning Domain Model Pada sub bab pertama telah disebutkan bagaimana anak mengenali sesuatu. Manusia dapat melakukan hal karena otak mampu membuat model berdasarkan masalah yang dihadapi yang disebut domain model. Dengan model tersebut maka dapat dilakukan proses seperti: 1. Klasifikasi. 2. Prediksi. 3. Clustering.
  • 21. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 3 4. Explanation. Pada sub bab pertama terdapat dua domain yaitu “sepeda motor atau mobil” dan “email spam atau bukan”. Untuk membuat domain model dapat digunakan dua pendekatan yaitu: 1. Pendekatan basis pengetahuan (knowledge-based) Pendekatan ini dapat dilakukan jika ada seorang ahli di suatu domain yang memberikan pengetahuan eksplisit untuk mengidentifikasi sesuatu. Seorang ahli pada suatu domain lebih dikenal sebagai expert system. Jika pendekatan ini diimplementasikan pada perangkat lunak maka pembuat perangkat akan menjadi pemberi pengetahuan secara eksplisit tentang domain model. 2. Pendekatan data-driven Pendekatan ini memanfaatkan data yang telah ada untuk membangun konsep model secara implisit sehingga dapat digunakan untuk mengidentifikasi sesuatu. Pada buku ini akan berfokus pada pendekatan data-driven. Untuk membuat data menjadi domain model agar didapat informasi yang dapat digunakan untuk melakukan aksi maka digunakan metode- metode yang telah dikenal pada bidang statistik. Proses data dengan metode-metode statistik tersebut dibantu dengan bantuan kekuatan komputasi yang dimiliki oleh komputer. Gambar 1. Data, metode statistik dan kekuatan komputasi computer (sumber: Machine Learning with R).
  • 22. 4 │ M. Reza Faisal & Dodon T. Nugrahadi Karena menggunakan metode statistik maka proses di atas disebut statistical learning, tetapi lebih populer atau lebih dikenal dengan istilah machine learning. Definisi Mechine learning adalah bidang yang mempelajari pengembangan algoritma komputer untuk mengubah data menjadi aksi yang cerdas (Machine Learning with R). atau secara singkat dapat juga diartikan sebagai proses mengubah data menjadi informasi (Machine Learning in Action). Selain machine learning, juga sering didengar istilah data mining yang merupakan saudara kandungnya. Tetapi ada pendapat yang menyatakan tumpang tinding machine learning dan data mining dimana secara virtual pada seluruh data mining pasti melibatkan penggunaan machine learning tetapi tidak seluruh machine learning melibatkan data mining. Sebagai contoh machine learning digunakan untuk melakukan proses data mining data lalu lintas kendaraan bermotor untuk mendapatkan pola yang berhubungan dengan tingkat kecelakaan. Kemudian bedakan dengan bagaimana proses pembelajaran komputer untuk mengendarai mobil dimana hal tersebut murni machine learning tanpa ada data mining. Maka dapat ditarik kesimpulan singkat yaitu: 1. Machine learning berfokus pada bagaimana pembelajaran komputer menggunakan komputer untuk memecahkan masalah. 2. Data mining berfokus pada bagaimana pembelajaran komputer mengindentifikasi pola yang akan digunakan manusia untuk memecahkan masalah. Istilah-Istilah Sebelum membahas tentang machine learning lebih dalam, maka pada sub bab ini akan disebutkan dan diterangkan terminologi atau istilah- istilah yang umum digunakan.
  • 23. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 5 Dataset, Instance & Feature Dengan menggunakan pendekatan data-driven maka pembelajaran dapat dilakukan jika telah dimiliki data atau sering disebut sebagai dataset. Di bawah ini ditampilkan dataset iris yang terdiri atas 150 baris atau record yang akan lebih dikenal dengan istilah instance. … Gambar 2. Dataset iris. Pada dataset di atas dapat dilihat 5 kolom yaitu: 1. Sepal.Length. 2. Sepal.Width. 3. Petal.Length. 4. Petal.Width. 5. Species. Istilah yang digunakan untuk kolom adalah feature, artinya dataset di atas memiliki 5 feature. Pada beberapa algoritma, feature dapat dibedakan menjadi dua yaitu: feature dan target variable (target feature). Sebagai contoh jika dataset di atas diproses dengan algoritma klasifikasi maka target variable (target feature) adalah Species sedangkan sisanya adalah feature.
  • 24. 6 │ M. Reza Faisal & Dodon T. Nugrahadi Training Set & Test Set Dataset akan digunakan pada proses pembelajaran algoritma paling tidak terdapat dua tahap yang harus dilakukan, yaitu tahap training dan pengujian (test). Jika dimiliki 150 instance pada dataset maka harus dibagi menjadi dua. Data yang digunakan pada tahap training akan disebut dengan istilah training set. Sedangkan yang digunakan pada tahap pengujian disebut test set. Untuk teknik pembagian dataset menjadi training dan test set akan diterangkan pada bab yang lain. Tipe Machine learning dapat dibedakan menjadi dua tipe. Tipe yang dimaksudkan di sini adalah tipe algoritma yaitu: 1. Supervised learning. 2. Unsupervised learning. Supervised Learning Pembelajaran pada tipe ini telah diketahui apa yang akan diprediksi atau target variablenya. Sehingga tujuan membangun algoritma sudah jelas hal apa yang akan diprediksi. Oleh karena itu model yang dihasilkan dari tipe ini adalah model prediksi. Model prediksi digunakan untuk melakukan proses prediksi target variable (target feature) berdasarkan feature-feature lain pada suatu dataset. Algoritma pembelajaran yang dibangun mencoba untuk menemukan dan memodelkan hubungan antara target variable (target feature) tersebut dengan feature-feature lainnya. Klasifikasi adalah contoh task mechine learning tipe supervised untuk melakukan prediksi. Beberapa contoh penerapan klasifikasi adalah sebagai berikut: 1. Penentuan email adalah email spam. 2. Penentuan seseorang mengidap kanker.
  • 25. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 7 3. Penentuan kemenangan suatu tim sepakbola. Pada klasifikasi, target feature yang akan diprediksi adalah feature terkategori yang dikenal dengan istilah kelas (class) dan dapat dibagi menjadi kategori yang disebut dengan istilah level. Kasus klasifikasi dapat dibedakan berdasarkan tipe masalah yang umumnya ditemui, yaitu: 1. Klasifikasi 1 class. 2. Klasifikasi 2 class (binary). 3. Klasifikasi multiclass, terdapat lebih dari 2 class. Saat ini telah banyak teknik/metode klasifikasi yang dikembangkan untuk menyelesaikan masalah klasifikasi 2 class. Sehingga untuk menyelesaikan masalah klasifikasi multiclass dapat digunakan kombinasi teknik/metode yang biasa digunakan untuk menyelesaikan klasifikasi 2 class Supervised learning juga dapat digunakan untuk memprediksi data numerik. Task seperti ini dikenal dengan istilah regresi. Berikut ini adalah beberapa nama algoritma tipe supervised leaning yaitu: 1. K-Nearest Neighbors. 2. Naïve Bayes. 3. Suport Vector Machine. 4. Decision Trees. 5. Linear Regression. 6. Neural Network. Unsupervised Learning Unsupervised learning merupakan kebalikan dari tipe sebelumnya dimana tidak terdapat target variable (target feature) pada dataset. Model yang dihasilkan dari tipe ini adalah descriptive model. Salah satu task descriptive model untuk menemukan pola yang bisa mengidentifikasi asosiasi pada dataset. Contoh implementasinya dapat dilakukan pada menemukan pola pada proses analisis barang yang
  • 26. 8 │ M. Reza Faisal & Dodon T. Nugrahadi dibeli oleh pembeli pada suatu super market atau mini market. Tujuan dari analisis ini adalah untuk mengetahui barang-barang yang sering dibeli bersama-sama. Sebagai contoh jika pembeli membeli roti maka otomatis juga membeli keju dan susu kental manis. Atau jika pembeli membeli sabun cuci maka juga membeli pengharum pakaian. Dengan informasi pola tersebut maka pemilik super market dapat menggunakannya untuk membuat iklan diskon untuk kelompok barang tersebut, atau pemilik juga dapat membuat agar tata letak barang- barang tersebut dibuat berdekatan. Task descriptive model yang lain adalah mengelompokkan dataset ke dalam kelompok-kelompok yang homogen yang disebut dengan istilah clustering. Kelompok-kelompok homogen yang dihasilkan dari clustering perlu bantuan manusia untuk melakukan intepretasi hasil tersebut untuk menentukan atau mendeskripsikan apa isi dari kelompok-kelompok tersebut. Contoh unsupervised learning adalah: 1. Association rule. 2. K-Mean clustering. Langkah-Langkah Implementasi Berikut ini adalah langkah-langkah yang digunakan untuk melakukan implementasi machine learning untuk menyelesaikan kasus yang dihadapi. Terdapat 5 tahap yang dapat diterapkan pada pada setiap algoritma machine learning, yaitu: 1. Pengumpulan data. 2. Eksplorasi dan persiapan data, langkah eksplorasi data bertujuan untuk lebih mengenal data yang digunakan. Sedangkan langkah persiapan data bertujuan untuk meningkatkan kualitas data seperti menghilangkan data yang tidak diperlukan. Karena kualitas model yang dihasilkan sangat bergantung pada data yang digunakan. 3. Training/pelatihan model, langkah pembangunan model. Pada langkah ini digunakan training set sebagai input data.
  • 27. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 9 4. Evaluasi model, langkah evaluasi dilakukan untuk mengetahui performansi dari model yang dihasilkan maka model yang dihasilkan pada tahap sebelumnya akan diuji dengan menggunakan test set sebagai input data. 5. Perbaikan model, langkah ini diperlukan jika diinginkan performansi yang lebih baik. Ada beberapa cara yang dapat dilakukan untuk itu mendapatkan performansi yang lebih baik, diantaranya adalah mengganti tipe learning atau algoritma yang digunakan. Atau dengan cara melakukan perbaikan pada data yang digunakan baik dengan cara menambah data, mengurangi feature pada dataset dan lain-lain. 1.5 Machine Learning & Data Mining Berikut ini adalah penjelasan secara singkat keterkaitan atau hubungan antara machine learning dan data mining. Secara singkat, data mining menggunakan metode statistik untuk mencari pola tersembunyi pada database agar dapat menjelaskan suatu fenomena. Sedangkan machine learning menggunakan teknik-teknik data mining dan algoritma pembelajaran lainnya untuk membuat model dari hal-hal yang terjadi pada data untuk memprediksi kejadian selanjutnya. Selanjutnya machine learning akan digunakan pada bidang artificial intelligence untuk membuat model yang digunakan untuk pengenalan kebiasaan dan prediksi aksi sebagai contoh implementasi pada game atau mobil pintar yang bisa berjalan sendiri.
  • 28.
  • 29. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 11 Bab II Pengantar Pemrograman R R bukan saja bahasa tetapi juga lingkungan/environment untuk komputasi statistik dan grafik. R merupakan project GNU yang dikembangkan oleh Bell Laboratories (sebelumnya AT&T, sekarang Lucent Technologies). Team pengembang R adalah John Chamber dan teman-temannya. R menyediakan berbagai macam tool statistik dari linier dan memodelan non linier, uji statistik klasik, analisis time-series, klasifikasi, clustering dan lain-lain. R juga menyediakan tool teknik grafis yang bertujuan untuk menampilkan data yang telah diolah secara visual dalam bentuk grafik. R merupakan project open-source yang memungkinkan banyak pihak untuk memberikan kontribusi dalam proses pengembangan. 2.1 Installasi Comprehensive R Archive Network (CRAN) Installer atau source code R tersedia dalam beberapa platform yaitu Windows, Mac OS X dan Linux. Pada buku ini digunakan installer yang diunduh dari link berikut ini https://cran.r- project.org/bin/windows/base/.
  • 30. 12 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 3. Halaman download R-3.3.2 for Windows. Klik link “Download R.3.3.2 for Windows. Nama file installernya adalah R.3.3.2-win.exe. File ini berukuran sekitar 70MB. Setelah proses download selesai, klik double pada file R.3.3.2-win.exe. Langkah pertama adalah memilih bahasa yang digunakan. Gambar 4. Window Select Setup Language. Klik tombol OK, kemudian akan ditampilkan window yang berisi ucapan selamat datang seperti gambar di bawah ini.
  • 31. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 13 Gambar 5. Window Setup - Welcome. Klik tombol Next, kemudian akan ditampilkan informasi penting tentang lisensi. Gambar 6. Window Setup - Informasi lisensi.
  • 32. 14 │ M. Reza Faisal & Dodon T. Nugrahadi Klik tombol Next, kemudian akan ditampilkan window untuk memilih folder installasi. Klik Browse jika ingin mengubah lokasi folder installasi. Gambar 7. Windows Setup - Lokasi folder installasi. Klik Next, kemudian akan window pemilihan komponen untuk diinstall. Centang 32-bit Files jika menggunakan komputer dengan processor 32-bit. Atau centang 64-bit Files jika menggunakan komputer dengan processor 64-bit. Gambar 8. Window Setup - Pemilihan komponen.
  • 33. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 15 Klik Next, kemudian akan ditampilkan window untuk memilih opsi startup. Untuk memudahkan pilih No agar menggunakan opsi default startup. Gambar 9. Window Setup - Pemilihan opsi startup. Kemudian akan ditampilkan window untuk memilih lokasi folder Start Menu. Klik tombol Browse jika ingin menganti lokasi folder Start Menu. Gambar 10. Window Setup - Memilih lokasi folder Start Menu.
  • 34. 16 │ M. Reza Faisal & Dodon T. Nugrahadi Klik tombol Next, kemudian akan ditampilkan window untuk memilih task tambahan yang akan dilakukan pada proses installasi. Pilih task tambahan sesuai keinginan. Gambar 11. Window Setup - Pemilihan task tambahan. Klik tombol Next, kemudian proses installasi akan dilakukan. Gambar 12. Windows Setup - Proses installasi.
  • 35. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 17 Setelah proses installasi selesai maka akan ditampilkan window seperti gambar di bawah ini. Gambar 13. Window informasi akhir proses installasi. Klik tombol Finish untuk menutup proses installasi. Microsoft R Archive Network (MRAN) Platform R juga dapat diunduh dari Microsoft R Archive Network (MRAN). Nama platform R pada sumber ini adalah Microsoft R Open. Saat buku ini ditulis versi terbaru adalah 3.3.1. Platform R dari sumber ini telah dimodifikasi untuk meningkatkan kinerja komputasi multi- thread. Installer Microsoft R Open 3.3.1 dapat diunduh pada link berikut ini https://mran.revolutionanalytics.com/download/. Ukuran file installer adalah 149MB. Untuk memulai proses installasi, klik double pada file microsoft-r-open-3.3.1.msi.
  • 36. 18 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 14. Window Microsoft R Open 3.3.1 Setup – Welcome. Klik tombol Next, kemudian akan ditampilkan window informasi seperti gambar di bawah ini. Gambar 15. Window Microsoft R Open 3.3.1 Setup – Informasi lisensi. Centang checkbox I acknoledge the above licnesing information, kemudian klik tombol Next. Kemudian akan ditampilkan window opsi untuk menginstall Math Kernel Library.
  • 37. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 19 Gambar 16. Window Microsoft R Open 3.3.1 Setup – Install Math Kernel Library. Klik tombol Next, kemudian akan ditampilkan window lisensi Math Kernel Library. Centang checkbox I accept the MKL license terms. Gambar 17. Window Microsoft R Open 3.3.1 – Lisensi Math Kernel Library.
  • 38. 20 │ M. Reza Faisal & Dodon T. Nugrahadi Klik tombol Next, kemudian akan ditampilkan window untuk menentukan lokasi folder installasi. Klik tombol Change jika ingin mengubah folder installasi. Gambar 18. Window Microsoft R Open 3.3.1 Setup – Folder installasi. Klik tombol Next, kemudian akan ditampilkan window konfirmasi memulai installasi. Gambar 19. Window Microsoft R Open 3.3.1 Setup – Memulai installasi.
  • 39. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 21 Klik tombol Install, kemudian proses installasi dimulai. Gambar 20. Window Microsoft R Open 3.3.1 Setup - Proses instalasi. Window dibawah ini akan ditampilkan setelah proses installasi selesai. Klik tombol Finish untuk menutup window dan menyelesaikan proses installasi. Gambar 21. Window Microsoft R Open 3.3.1 Setup – proses installasi selesai.
  • 40. 22 │ M. Reza Faisal & Dodon T. Nugrahadi 2.2 Tool Pemrograman RGui RGui adalah tool pemrograman R. RGui merupakan bagian dari plotform R yang telah diinstall pada sub bab sebelumnya. RGui dapat dijalankan dengan memilih icon R x64 3.3.2 pada desktop atau memilih pada start menu. Antarmuka RGui dapat dilihat pada gambar di bawah ini. Gambar 22. RGui. Console Console atau R Console adalah window yang digunakan untuk mengeksekusi fungsi R. Pada console dapat dieksekusi lebih dari satu fungsi. Console ini juga dapat digunakan untuk mengeksekusi program yang disimpan di dalam file script R. R Console dapat dilihat pada gambar di atas. Berikut adalah contoh penggunaan R Console. Ketik kode berikut pada window R Console. print("hello world of R")
  • 41. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 23 Kemudian tekan tombol Enter. Maka hasilnya dapat dilihat pada gambar di bawah ini. Gambar 23. R Console. Editor Editor adalah window untuk mengetik kumpulan fungsi R atau program script R. Window ini tidak dapat digunakan untuk menjalankan fungsi R. Window editor dapat ditampilkan dengan cara memilih menu File > New script atau dengan menekan tombol Ctrl+N. Maka akan ditampilkan window R Editor. Tuliskan kode program seperti berikut pada window R Editor. for(i in 1:10) { print(paste(i,". hello world of R")) }
  • 42. 24 │ M. Reza Faisal & Dodon T. Nugrahadi Hasilnya dapat dilihat seperti pada gambar di bawah ini. Gambar 24. Window R Editor. Untuk menyimpan ke dalam file, pilih menu File > Save atau dengan cara menekan tombol Ctrl+S. Kemudian berikan nama file yaitu HelloWorld.R, seperti pada gambar di bawah ini. Gambar 25. Menyimpan file script R.
  • 43. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 25 Selanjutnya, pilih menu File > Source R Code. Kemudian pilih file HelloWorld.R. Makan akan dapat dilihat hasil seperti pada gambar di bawah ini. Gambar 26. Eksekusi file script R. Grafik RGui memiliki window grafik untuk menampilkan hasil dari fungsi menggambar grafik. Contoh fungsi untuk mengambar grafik adalah plot(). Di bawah ini adalah contoh penggunaan fungsi plot(). x = c(1,2,3,4) y = c(2,4,6,8) plot(x,y) Eksekusi setiap baris di atas pada window console. Maka akan ditampilkan window grafik seperti berikut ini.
  • 44. 26 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 27. Window R Graphics. RStudio RStudio tool pemrograman atau integrated development environment (IDE) bahasa R yang memiliki antarmuka lebih baik daripada RGui. RStudio memiliki 2 versi lisensi, yaitu Open Source Edition dan Commercial Edition. Installer RStudio dapat didownload di https://www.rstudio.com/products/RStudio/. RStudio tersedia untuk platform Windows, Mac OS X dan Linux versi Ubuntu dan Fedora. Installasi Versi RStudio saat buku ini ditulis adalah 1.0.44. Nama file installer untuk versi ini adalah RStudio-1.0.44.exe yang berukuran 82MB. Setelah proses download selesai, klik double pada file installer.
  • 45. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 27 Gambar 28. Window RStudio Setup - Welcome. Klik tombol Next, kemudian akan ditampilkan window untuk memilih lokasi installasi. Klik tombol Browse jika ingin menganti lokasi folder installasi. Gambar 29. Window RStudio Setup - Lokasi installasi.
  • 46. 28 │ M. Reza Faisal & Dodon T. Nugrahadi Klik tombol Next, kemudian akan ditampilkan window untuk memilih folder Start Menu. Gambar 30. Window RStudio Setup - Memilih lokasi folder Start Menu. Klik tombol Install, maka proses installasi dimulai. Gambar 31. Window RStudio Setup - proses installasi.
  • 47. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 29 Klik tombol Show details jika ingin melihat daftar file yang diinstall. Gambar 32. Window RStudio Setup - detail proses installasi. Setelah proses installasi selesai, maka akan ditampilkan window seperti pada gambar di bawah ini. Klik tombol Finish untuk mengakhiri proses installasi. Gambar 33. Window RStudio Setup - Proses installasi selesai.
  • 48. 30 │ M. Reza Faisal & Dodon T. Nugrahadi Antarmuka Antarmuka RStudio dapat dilihat pada gambar di bawah ini. Gambar 34. Antarmuka RStudio. RStudio memiliki window Editor, Console dan Plot (untuk menampilkan grafik) yang terintegrasi. Selain itu RStudio juga memiliki window Environment untuk menampilkan objek atau variable yang telah digunakan. RStudio juga memiliki fitur explorer untuk melihat daftar file dan daftar folder seperti yang terlihat pada tab Files di gambar di atas. Fitur ini dapat digunakan untuk membuat folder atau menghapus folder dan file. RStudio juga memiliki fitur auto complete kode seperti terlihat pada gambar di bawah ini.
  • 49. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 31 Gambar 35. Fitur auto complete kode. Berikut adalah contoh bagaimana RStudio menampilkan grafik pada window Plots. Gambar 36. Window Plots untuk menampilkan grafik.
  • 50. 32 │ M. Reza Faisal & Dodon T. Nugrahadi R Tools for Visual Studio R Tool for Visual Studio adalah extension pada Visual Studio. Extension ini dapat digunakan untuk membuat Visual Studio menjadi integrated development environment (IDE) untuk bahasa pemrograman R. R Tool for Visual Studio dapat diunduh di https://www.visualstudio.com/vs/rtvs/. Ekstensi ini berukuran 3,6MB dan memerlukan ruang hardisk sebesar 9MB untuk proses installasi. Saat buku ini ditulis, versi R Tool for Visual Studio adalah 0.5. Installasi Setelah installer selesai didownload. Klik double pada file installer. Maka akan ditampilkan window seperti gambar di bawah ini. Gambar 37. Installasi R Tool 0.5 for Visual Studio 2015. Klik tombol Install, maka proses installasi akan dilakukan seperti yang terlihat pada gambar di bawah ini.
  • 51. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 33 Gambar 38. Proses installasi R Tool 0.5 for Visual Studio. Setelah proses installasi selesai maka akan dilihat window seperti gambar di bawah ini. Gambar 39. Proses installasi R Tool 0.5 for Visual Studio 2015 selesai.
  • 52. 34 │ M. Reza Faisal & Dodon T. Nugrahadi Antarmuka Antarmuka R Tool for Visual Studio dapat dilihat pada gambar di bawah ini. R Tool for Visual Studio memiliki Editor, R Interactive yang berfungsi sebagai R Console, R Plot untuk menampilkan grafik dan Solution Explorer untuk menampilkan daftar folder dan file. R Tool for Visual Studio memiliki R Plot History untuk menampilkan daftar grafik yang telah dibuat. Gambar 40. Antarmuka R Tool for Visual Studio.
  • 53. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 35 Bab III Fungsi-Fungsi Dasar R Bab ini akan menjelaskan tentang fungsi-fungsi dasar R. Fungsi-fungsi yang dibahas akan berfokus pada fungsi untuk operasi data seperti membaca data dari file, memfilter data, mengabung data, menampilkan data ke layar, menulis data ke file dan menggambar data dalam grafik. Selain itu juga dibahas fungsi-fungsi pendukung lainnya. 3.1 Package Default lingkungan R telah memiliki banyak fungsi-fungsi yang dapat digunakan untuk berbagai keperluan. Lingkungan R dapat ditambahkan fungsi-fungsi baru. Fungsi-fungsi baru tersebut biasanya dalam bentuk package. Installasi Package Package-package tersebut disimpan pada server yang dapat diakses secara online. Proses installasi package hanya dapat dilakukan jika ada koneksi internet. Fungsi install.package() adalah fungsi untuk mengunduh dan menginstall package. Sintaks fungsi ini adalah sebagai berikut. install.packages(“NamaPackage”) Kode di bawah ini adalah contoh untuk menginstall package “kernlab”. install.packages("kernlab") Gambar di bawah ini adalah informasi yang dilihat setelah proses installasi package selesai.
  • 54. 36 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 41. Proses installasi package pada R Tool for Visual Studio 2015. Gambar 42. Proses installasi package pada RStudio. Memuat Package Fungsi-fungsi package hanya dapat digunakan jika package telah dimuat. Package harus dimuat setiap saat session baru dibuat atau setiap saat baru menjalankan tool pemrograman R. Fungsi untuk memuat package adalah library(). Sintaks fungsi ini adalah sebagai berikut. library(NamaPackage) atau library(“NamaPackage”)
  • 55. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 37 Berikut adalah contoh kode untuk memuat package “kernlab”. library("kernlab") 3.2 Working Directory Working directory atau direktori kerja adalah direktori/folder aktif pada suatu session. User hanya dapat mengakses file script R dan file data yang berada pada working direktory. Jika user ingin mengakses file di luar working directory maka user harus menulis path direktori/folder dan nama file. Kode di bawah ini adalah contoh untuk mengakses file pada working directory. read.csv("data.csv") Kode di bawah ini adalah contoh untuk mengakses file diluar working directory. read.csv("D:/Data/data_riset.csv") Mendapatkan Working Directory Untuk mendapatkan informasi working directory dapat digunakan fungsi getwd(). Di bawah ini adalah contoh penggunaan fungsi getwd() dan outputnya. > getwd() [1] "D:/Data/My Projects/Delete/HelloWorldR/HelloWorldR"
  • 56. 38 │ M. Reza Faisal & Dodon T. Nugrahadi Menentukan Working Directory Untuk menentukan working directory dapat digunakan fungsi setwd(). Sintaks fungsi ini adalah sebagai berikut. setwd(“path_absolute”) Kode di bawah ini adalah contoh penggunaan fungsi setwd() dan outputnya. > setwd("C:/") > getwd() [1] "C:/" 3.3 Dataset Platform R telah memiliki lebih 100 dataset yang dapat digunakan untuk latihan. Fungsi data() digunakan untuk melihat daftar dataset tersebut. Ketik fungsi data() pada window Console pada RStudio atau RGui maka hasilnya dapat dilihat pada gambar di bawah ini. Gambar 43. Daftar dataset pada RStudio.
  • 57. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 39 Gambar di bawah ini adalah output pada R Tool for Visual Studio. Gambar 44. Daftar dataset pada R Tools for Visual Studio. Iris adalah salah satu dataset yang umum digunakan sebagai latihan atau contoh pemrograman R. 3.4 Menulis Data Ke File Iris dataset akan digunakan pada contoh-contoh di sub bab ini. write.csv() Fungsi write.csv() untuk menulis file yang berisi nilai-nilai yang dipisahkan oleh koma. Format file yang dihasilkan adalah file text. Sintaks fungsi ini adalah sebagai berikut. write.csv(ObjectName, "FileName")
  • 58. 40 │ M. Reza Faisal & Dodon T. Nugrahadi Untuk menyimpan dataset iris ke file data.csv maka digunakan perintah berikut ini. write.csv(iris, "data.csv") write.table() Fungsi write.table() untuk menulis file yang berisi nilai-nilai yang dipisahkan oleh tab. Sintaks fungsi ini adalah sebagai berikut. write.table(ObjectName, "FileName") Untuk menyimpan dataset iris ke file data.txt maka digunakan perintah berikut ini. write.table(iris, "data.txt") 3.5 Membaca File Text Format file yang umum digunakan digunakan menyimpan data adalah file text yang berisi nilai-nilai yang dipisahkan oleh tanda koma atau tab. read.csv() Jika file text berisi nilai-nilai yang dipisahkan oleh tanda koma maka dapat digunakan fungsi read.csv(). Sintaks fungsi ini adalah sebagai berikut. ObjectName = read.csv("FileName")
  • 59. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 41 Sebagai contoh, untuk membaca file data.csv digunakan kode berikut. Obyek data_csv akan menyimpan data file data_penelitian.csv yang dibaca oleh fungsi ini. data_csv = read.csv("data.csv") read.table() Jika file text berisi nilai-nilai yang dipisahkan tab maka dapat digunakan fungsi read.table(). Sintaks fungsi ini adalah sebagai berikut. ObjectName = read.table("FileName") Sebagai contoh, untuk membaca file data.txt digunakan kode di bawah ini. data_txt = read.table("data.txt") Obyek data_txt akan menyimpan data file data_penelitian.txt yang dibaca oleh fungsi read.table(). 3.5 Membaca File Excel File Excel juga umum digunakan untuk menyimpan data. Untuk membaca file Excel diperlukan package “xslx”. Install package ini dengan perintah berikut. install.packages("xlsx") Setelah proses installasi package “xslx” selesai, muat library ini dengan perintah di bawah ini. library(xlsx)
  • 60. 42 │ M. Reza Faisal & Dodon T. Nugrahadi Fungsi yang digunakan untuk membaca file Excel adalah sebagai berikut. data_xlsx = read.xlsx("FileName", sheetName = "SheetName") Sebagai contoh, untuk membaca file data.xlsx digunakan perintah berikut ini. data_xlsx = read.xlsx("data.xlsx", sheetName = "Sheet1") Obyek data_xlsx akan menyimpan data file data.xlsx. 3.6 Akses Database Platform R juga dapat membaca data dari database server seperti MySQL dan SQL Server. Akses Database MySQL Untuk mengakses database MySQL pada platform R diperlukan package tambahan. Package yang dapat digunakan adalah RMySQL. Untuk menginstall package RMySQL digunakan perintah berikut. install.packages("RMySQL") Kemudian muat library RMySQL dengan perintah berikut. library(RMySQL) Langkah pertama sebelum melakukan operasi database adalah melakukan koneksi ke database dengan fungsi dbConnect(). Untuk melakukan koneksi ke database digunakan sintaks berikut.
  • 61. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 43 ObjectName = dbConnect(MySQL(), user='UserName', password='Password', dbname='DatabaseName', host='HostName') Sebagai contoh nama database adalah belajar_r, nama host adalah localhost, nama user adalah root dan password user adalah Rahasia. Maka perintah untuk melakukan koneksi adalah sebagai berikut. mydb = dbConnect(MySQL(), user='root', password='Rahasia', dbname='belajar_r', host='localhost') Untuk melihat daftar tabel pada database belajar_r digunakan fungsi dbListTables(). Berikut adalah contoh untuk menampilkan daftar tabel. > dbListTables(mydb) [1] "iris" Dari ouput perintah di atas, terdapat 1 tabel yaitu iris. Untuk mengeksekusi SQL query dapat digunakan fungsi dbSendQuery(). Sebagai contoh, untuk menampilkan data dari tabel iris dapat digunakan kode di bawah ini. rs = dbSendQuery(mydb, 'select * from iris') data_iris = fetch(rs, n=-1) Data dari tabel iris akan disimpan pada obyek data_iris. Untuk menampilkan isi data ke layar dapat dilakukan dengan mengetik obyek data_iris pada R console. Akses Database SQL Server Package tambahan yang digunakan untuk mengakses database SQL Server adalah RODBC. Kode di bawah ini untuk menginstall package RODBC. install.packages("RODBC") Untuk memuat library RODBC digunakan kode di bawah ini. library(RODBC)
  • 62. 44 │ M. Reza Faisal & Dodon T. Nugrahadi Untuk melakukan koneksi ke database digunakan fungsi odbcDriverConnect(). Sintaks fungsi odbcDriverConnect() adalah sebagai berikut. ObjectName = odbcDriverConnect('driver={SQL Server};server=HostName;database=DatabaseName;trusted_co nnection=true') Jika database server berada pada komputer yang sama dan nama database adalah BelajarR, maka digunakan kode berikut ini. myodbc = odbcDriverConnect('driver={SQL Server};server=.;database=BelajarR;trusted_connection=tr ue') Untuk membaca data pada tabel iris pada database BelajarR digunakan fungsi sqlQuery(). Contoh kode yang dapat digunakan adalah sebagai berikut. data_iris <- sqlQuery(myodbc, 'select * from iris') Ketik obyek data_iris pada R console untuk melihat isi data tabel iris. 3.7 Menampilkan Data Cara untuk menampilkan data adalah memanggil obyek yang digunakan untuk menyimpan data. Sebagai contoh, cara ini adalah untuk menampilkan data yang disimpan pada obyek data_txt. > data_txt = read.table("data.txt") > data_txt Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa ...
  • 63. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 45 head() Untuk menampilkan sejumlah data dari awal digunakan fungsi head(). Sintaks fungsi ini adalah sebagai berikut. head(ObjekName, RowNumber) Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak 5 row digunakan perintah ini. > head(data_txt, 5) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa tail() Untuk menampilkan sejumlah data dari akhir digunakan fungsi tail(). Sintaks fungsi ini adalah sebagai berikut. tail(ObjekName, RowNumber) Sebagai contoh, untuk menampilkan data dari obyek data_txt sebanyak 5 row digunakan perintah ini. > tail(data_txt, 5) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 146 6.7 3.0 5.2 2.3 virginica 147 6.3 2.5 5.0 1.9 virginica 148 6.5 3.0 5.2 2.0 virginica 149 6.2 3.4 5.4 2.3 virginica 150 5.9 3.0 5.1 1.8 virginica View() Fungsi View() digunakan untuk menampilkan data dalam bentuk tabel. Untuk menampilkan data dari obyek data_txt, gunakan perintah di bawah ini.
  • 64. 46 │ M. Reza Faisal & Dodon T. Nugrahadi View(data_txt) Hasilnya dapat dilihat pada gambar-gambar di bawah ini. Gambar 45. Output fungsi View() pada R Tool for Visual Studio. Gambar 46. Output fungsi View() pada RStudio.
  • 65. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 47 Gambar 47. Output fungsi View() pada RGui. obyek$rowName Pada gambar di atas dapat dilihat obyek data_txt memiliki 5 kolom. Nama kelima kolom itu adalah Sepal.Length, Sepal.Width, Petal.Length, Petal.Width dan Species. Cara untuk melihat seluruh nilai pada kolom Species dapat dilakukan dengan contoh di bawah ini. data_txt$Species Untuk menampilkan seluruh nilai pada kolom Sepal.Width digunakan contoh di bawah ini. data_txt$Sepal.Width
  • 66. 48 │ M. Reza Faisal & Dodon T. Nugrahadi 3.8 Memfilter Data obyek[,x:y] Jika data pada obyek terdiri atas 5 kolom, maka untuk menampilkan kolom 1 sampai 4 saja digunakan perintah di bawah ini. data_txt[,1:4] Jika ingin menampilkan kolom 1, kolom 3 dan kolom 5 saja dapat digunakan perintah berikut ini. data_txt[,c(1,3,5)] obyek[x:y,] Jika ingin menampilkan data pada obyek berdasarkan baris yang diinginkan, misal baris 13 sampai baris 23 maka digunakan perintah ini. data_txt[13:23,] Jika ingin menampilkan baris 1, baris 3 dan baris 5 saja maka digunakan perintah berikut. data_txt[c(1,3,5),] obyek[x1:y1, x2:y2] Jika ingin menampilkan data pada obyek baris 13 sampai 23 saja dan kolom yang ditampilkan hanya kolom 1 sampai 4 saja maka digunakan perintah berikut ini. data_txt[13:23, 1:4]
  • 67. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 49 Jika ingin menampilkan data pada baris 1, 3 dan 5 saja dan kolom 1, 3 dan 5 saja maka digunakan perintah berikut ini. data_txt[c(1,3,5), c(1,3,5)] obyek[which(), ] Untuk memfilter data berdasarkan suatu nilai pada sebuah kolom dapat digunakan fungsi which(). Berikut ini adalah contoh menampilkan data jika kolom Species bernilai setosa. data_txt[which(data_txt$Species == "setosa"),] 3.9 Menggabung Data rbind() Fungsi rbind() berfungsi untuk menggabung data dari dua obyek atau lebih. Sintaks fungsi ini adalah sebagai berikut. ObjectName = rbind(object1, object2, . . . , objectN) Obyek-obyek yang akan digabung harus memiliki jumlah kolom yang sama. Misal obyek data1 adalah sebagai berikut. > data1 = iris[5:10,] > data1 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa
  • 68. 50 │ M. Reza Faisal & Dodon T. Nugrahadi Dan misal obyek data2 adalah sebagai berikut. > data2 = iris[130:135,] > data2 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 130 7.2 3.0 5.8 1.6 virginica 131 7.4 2.8 6.1 1.9 virginica 132 7.9 3.8 6.4 2.0 virginica 133 6.4 2.8 5.6 2.2 virginica 134 6.3 2.8 5.1 1.5 virginica 135 6.1 2.6 5.6 1.4 virginica Gabungan obyek data1 dan obyek data2 digabung dengan fungsi rbind(), dan akan disimpan pada obyek data_all. > data_all = rbind(data1, data2) > data_all Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5.0 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa 130 7.2 3.0 5.8 1.6 virginica 131 7.4 2.8 6.1 1.9 virginica 132 7.9 3.8 6.4 2.0 virginica 133 6.4 2.8 5.6 2.2 virginica 134 6.3 2.8 5.1 1.5 virginica 135 6.1 2.6 5.6 1.4 virginica cbind() Fungsi cbind() untuk mengabungkan data pada obyek-obyek yang memiliki jumlah baris yang sama. Misal obyek data1 berisi data seperti berikut. > data1 = iris[1:5, 1] > data1 [1] 5.1 4.9 4.7 4.6 5.0 Dan data2 berisi data sebagai berikut. > data2 = iris[131:135, 1] > data2 [1] 7.4 7.9 6.4 6.3 6.1
  • 69. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 51 Obyek data_all berisi data gabungan data1 dan data2 yang digabung dengan fungsi cbind(). > data_all = cbind(data1, data2) > data_all data1 data2 [1,] 5.1 7.4 [2,] 4.9 7.9 [3,] 4.7 6.4 [4,] 4.6 6.3 [5,] 5.0 6.1 3.10 Explorasi Data Mengetahui informasi data yang akan diolah sangat diperlukan. Informasi itu dapat digunakan untuk menentukan strategi yang dipilih untuk mengolah data tersebut. Berikut ini adalah beberapa fungsi untuk mengetahui ukuran, struktur, atribut, summary dan lain-lain dim() Fungsi dim() dapat memberikan informasi ukuran dimensi data. Contoh fungsi dim() dapat dilihat di bawah ini. > dim(iris) [1] 150 5 Dari informasi di atas dapa diketahui iris dataset terdiri atas 150 baris dan 5 kolom. names() Fungsi names() memberikan informasi name kolom data. Contoh fungsi names() dapat dilihat di bawah ini. > names(iris) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
  • 70. 52 │ M. Reza Faisal & Dodon T. Nugrahadi str() Fungsi str() memberikan informasi struktur data. Kode di bawah ini adalah contoh penggunaan fungsi ini. > str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 ... Output fungsi ini memberikan informasi yang lebih lengkap dibandingkan fungsi dim() dan names(). Fungsi ini memberikan informasi tambahan berupa tipe data yang digunakan pada setiap kolom. table() Fungsi table() mempunyai banyak manfaat. Salah satunya berguna untuk melihat jumlah instance atau frekuensi pada masing-masing target variable. Sintaks untuk menggunakan fungsi ini adalah sebagai berikut. table(ObjectName[,ColumnNumber]) atau table(ObjectName$ColumnName) Contoh di bawah ini untuk melihat jumlah instance berdasarkan kolom Species. > table(iris[,5]) setosa versicolor virginica 50 50 50
  • 71. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 53 Atau dapat juga digunakan seperti contoh berikut ini. > table(iris$Species) setosa versicolor virginica 50 50 50 summary() Fungsi summary() memberikan informasi statistik ringkas dari data yang dimiliki sebuah obyek. Di bawah ini adalah contoh penggunaan fungsi ini dan outputnya. Sepal.Length Sepal.Width Min. :4.300 Min. :2.000 1st Qu.:5.100 1st Qu.:2.800 Median :5.800 Median :3.000 Mean :5.843 Mean :3.057 3rd Qu.:6.400 3rd Qu.:3.300 Max. :7.900 Max. :4.400 Petal.Length Petal.Width Min. :1.000 Min. :0.100 1st Qu.:1.600 1st Qu.:0.300 Median :4.350 Median :1.300 Mean :3.758 Mean :1.199 3rd Qu.:5.100 3rd Qu.:1.800 Max. :6.900 Max. :2.500 Species setosa :50 versicolor:50 virginica :50 Fungsi ini memberikan informasi statistik untuk setiap feature seperti nilai terkecil, nilai terbesar, median, mean dan kuartil.
  • 72. 54 │ M. Reza Faisal & Dodon T. Nugrahadi 3.11 Grafik Pada sub bab ini akan dijelaskan beberapa fungsi R untuk membuat grafik sebagai salah satu cara mengenal dan eksplorasi data. plot() Fungsi plot() untuk membuat titik dari nilai sumbu x dan sumbu y. Sintaks umum fungsi plot() adalah sebagai berikut. plot(x, y) Parameter x dan y berisi nilai-nilai numerik. Sebagai contoh, parameter x diisi dengan nilai-nilai numerik dari kolom ke-1 dataset iris. Dan parameter y diisi dengan nilai-nilai dari kolom ke-2 dataset iris. plot(iris[,1], iris[,2]) Output dari fungsi ini adalah sebagai berikut. Gambar 48. Grafik plot(iris[,1], iris[,2])
  • 73. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 55 Jika dataset hanya terdiri atas 2 feature saja, sebagai contoh dataset cars. > head(cars) speed dist 1 4 2 2 4 10 3 7 4 4 7 22 5 8 16 6 9 10 . . . Maka fungsi plot() dapat digunakan dengan cara berikut ini. plot(cars) Output dari kode di atas adalah sebagai berikut. Gambar 49. Grafik plot(cars). Jika cara diatas digunakan pada dataset yang terdiri lebih dari 2 feature, sebagai contoh dataset iris yang memiliki 5 feature, maka fungsi plot() akan secara otomatis membuat banyak grafik. Grafik akan berisi kombinasi seperti pada gambar di bawah ini.
  • 74. 56 │ M. Reza Faisal & Dodon T. Nugrahadi plot(iris) Gambar 50. Grafik plot(iris). scatterplot3() Untuk membuat plot 3 dimensi diperlukan package tambahan yaitu scatterplot3d. Langkah pertama adalah menginstall package ini dengan fungsi berikut. install.packages("scatterplot3d") Kemudian muat package ini dengan fungsi di bawah ini. library(scatterplot3d) Fungsi untuk membuat plot 3 dimensi adalah scatterplot3d(). Sintaks dari fungsi ini adalah sebagai berikut. scatterplot3d(x,y,z, main="YourTitle")
  • 75. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 57 Sebagai contoh untuk membuat plot 3 dimensi dari data mtcars digunakan kode di bawah ini. attach(mtcars) scatterplot3d(wt,disp,mpg, main="3D Scatterplot") Gambar 51. Grafik scatterplot3d(). plot3d() Fungsi ini juga dapat digunakan untuk membuat grafik 3 dimensi. Kelebihan fungsi ini adalah interaksi user. User dapat melihat grafik dari sudut yang diinginkan dengan cara memutar ke arah yang diinginkan. Langkah pertama untuk menggunakan fungsi ini adalah memuat package rgl. library(rgl)
  • 76. 58 │ M. Reza Faisal & Dodon T. Nugrahadi Sintaks dari fungsi plot3d() adalah sebagai berikut. plot3d(x, y, z) Untuk membuat plot dari data mtcars dapat dilihat pada kode di bawah ini. plot3d(wt, disp, mpg) Gambar 52. Grafik plot3d(). Gerakkan grafik dengan mengarahkan cursor mouse pada grafik. Kemudian klik tombol mouse sebelah kiri dan tahan. Kemudian gerakkan cursor ke kiri atau ke kanan, dan ke atas atau ke bawah.
  • 77. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 59 hist() Fungsi hist() digunakan untuk membuat grafik histogram. Grafik ini dapat memberikan informasi frekuensi distribusi data. Sintaks fungsi hist() adalah sebagai berikut. hist(x) Parameter x dapat diisi dengan obyek numerik. Selain dataset iris, platform R memiliki dataset lain yang dapat digunakan. Salah satunya adalah dataset mtcars. > head(mtcars) mpg cyl disp hp drat Mazda RX4 21.0 6 160 110 3.90 Mazda RX4 Wag 21.0 6 160 110 3.90 Datsun 710 22.8 4 108 93 3.85 Hornet 4 Drive 21.4 6 258 110 3.08 Hornet Sportabout 18.7 8 360 175 3.15 Valiant 18.1 6 225 105 2.76 wt qsec vs am gear Mazda RX4 2.620 16.46 0 1 4 Mazda RX4 Wag 2.875 17.02 0 1 4 Datsun 710 2.320 18.61 1 1 4 Hornet 4 Drive 3.215 19.44 1 0 3 Hornet Sportabout 3.440 17.02 0 0 3 Valiant 3.460 20.22 1 0 3 carb Mazda RX4 4 Mazda RX4 Wag 4 Datsun 710 1 Hornet 4 Drive 1 Hornet Sportabout 2 Valiant 1
  • 78. 60 │ M. Reza Faisal & Dodon T. Nugrahadi Jika parameter x diisi dengan nilai numerik feature mpg, maka akan didapat grafik histogram sebagai berikut. hist(mtcars[,1]) atau hist(mtcars$mpg) Gambar 53. Grafik hist(mtcars[,1]) density() Fungsi density() berguna untuk melakukan estimasi kernel density. Output fungsi ini dapat dibuat dalam bentuk grafik dengan cara seperti contoh di bawah ini. plot(density(mtcars$mpg))
  • 79. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 61 Hasil dari kode di atas adalah sebagai berikut. Gambar 54. Grafik density. pie() Fungsi pie() digunakan untuk membuat grafik pie. Sintaks fungsi ini adalah sebagai berikut. pie(x, labels = y) Sebagai contoh adalah sebagai berikut. pie(c(30,70), labels = c("wanita", "pria"))
  • 80. 62 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 55. Grafik pie() Jika dimiliki obyek table maka akan lebih mudah untuk membuat grafik pie. Sebagai contoh sebagai berikut. pie(table(iris[,5])) Gambar 56. Grafik pie dataset iris.
  • 81. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 63 barplot() Fungsi barplot() digunakan untuk membuat grafik berbentuk bar. Sintaks fungsi ini adalah sebagai berikut. barplot(x) Berikut adalah contoh penggunaan fungsi barplot(). barplot(mtcars$mpg) Gambar 57. Grafik barplot vertical. Untuk membuat grafik horizontal maka digunakan opsi horiz = TRUE seperti contoh di bawah ini. barplot(mtcars$mpg, horiz = TRUE) Gambar 58. Grafik barplot horizontal.
  • 82. 64 │ M. Reza Faisal & Dodon T. Nugrahadi boxplot() Fungsi boxplot() berfungsi untuk membuat grafik box dan whisker dari sekumpulan nilai. Contoh penggunaan fungsi ini adalah sebagai berikut. boxplot(iris[,1:4]) Gambar 59. Grafik fungsi boxplot(). par() Fungsi par() dapat digunakan untuk membuat beberapa grafik hasil fungsi-fungsi di atas dalam satu gambar. Sintaks dari fungsi par() adalah sebagai berikut: par(mfrow=c(jumlah_grafik_dalam_baris, jumlah_grafik_dalam_kolom)) Sebagai contoh jika ingin membuat 2 output grafik dalam satu gambar maka digunakan kode berikut. par(mfrow=c(1,2)) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp)
  • 83. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 65 Gambar 60. Fungsi par() untuk membuat 2 grafik dalam 1 kolom. Jika ingin membuat 3 grafik dalam 1 baris maka digunakan kode seperti berikut. par(mfrow=c(1,3)) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp) plot(mtcars$wt,mtcars$disp) Gambar 61. Fungsi par() untuk membuat 3 grafik dalam 1 kolom.
  • 84. 66 │ M. Reza Faisal & Dodon T. Nugrahadi Untuk membuat 4 grafik dalam 2 baris dan 2 kolom maka digunakan kode berikut ini. par(mfrow=c(2,2)) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp) plot(mtcars$wt,mtcars$mpg) plot(mtcars$wt,mtcars$disp) Gambar 62. Fungsi par() untuk membuat 4 grafik dalam 2 baris dan 2 kolom. 3.12 Visualisasi Data Pada sub bab sebelumnya telah diterangkan tentang fungsi plot() untuk membuat grafik 2 dimensi. Diterangkan pula fungsi plot3d() untuk membuat grafik 3 dimensi. Jika data memiliki lebih dari 3 feature, maka perlu dipilih minimal 2 feature untuk membuat grafik 2 dimensi, atau dipilih 3 feature untuk membuat grafik 3 dimensi. Artinya ada feature yang tidak digunakan. Jika ingin membuat grafik yang menggunakan informasi dari seluruh feature dari dataset maka dapat digunakan Principal Component Analysis (PCA).
  • 85. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 67 Principal Component Analysis (PCA) Principal Component Analysis adalah teknik untuk membangun variable-variable baru yang merupakan kombinasi linear dari variable- variable asli. Atau teknik yang digunakan untuk menyederhanakan suatu data, dengan cara mentransformasi data secara linier sehingga terbentuk sistem koordinat baru dengan varians maksimum. Jumlah maximum dari variable-variable baru ini akan sama dengan jumlah dari variable lama, dan variable-variable baru ini tidak saling berkorelasi satu sama lain. PCA dapat digunakan untuk mereduksi dimensi suatu data tanpa mengurangi karakteristik data tersebut secara signifikan atau tetap mempertahankan informasi yang terkandung di dalamnya. Dengan penjelasan di atas, jika data memiliki feature lebih dari 3 maka PCA dapat mereduksi feature menjadi 2 atau 3 feature saja. Sehingga data dapat digambar pada grafik 2 dimensi atau 3 dimensi. Tetapi keberhasilan PCA untuk menggambar data ke dalam 2 dimensi dan 3 dimensi tergantung data tersebut. Jadi ada kemungkinan PCA tidak akan memberikan gambaran yang benar tentang sebaran data. Implementasi PCA pada platform R adalah dengan menggunakan fungsi prcomp(). Data input untuk fungsi ini adalah numerik. Sebagai contoh, berikut ini adalah data iris. > head(iris) Sepal.Length Sepal.Width Petal.Length 1 5.1 3.5 1.4 2 4.9 3.0 1.4 3 4.7 3.2 1.3 4 4.6 3.1 1.5 5 5.0 3.6 1.4 6 5.4 3.9 1.7 Petal.Width Species 1 0.2 setosa 2 0.2 setosa 3 0.2 setosa 4 0.2 setosa 5 0.2 setosa 6 0.4 setosa
  • 86. 68 │ M. Reza Faisal & Dodon T. Nugrahadi Kolom yang dapat digunakan sebagai input fungsi prcomp() adalah kolom ke-1 sampai ke-4. Sehingga penggunaan fungsi prcomp() dapat ditulis sebagai berikut. iris.pca = prcomp(iris[,-5]) #seluruh kolom, kecuali kolom ke-5 atau iris.pca = prcomp(iris[,1:4]) #kolom ke-1 sampai ke-4 Fungsi ini menghasilkan 4 output. Output yang pertama adalah standar deviasi principal component. Output ini dapat dilihat dengan cara di bawah ini. > iris.pca$sdev [1] 2.0562689 0.4926162 0.2796596 0.1543862 Output kedua adalah matrix variable loading. Kode di bawah ini digunakan untuk melihat output ini. > iris.pca$rotation PC1 PC2 PC3 PC4 Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872 Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231 Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390 Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574 Output ketiga adalah nilai rotasi data. Output ini dapat dilihat dengan menggunakan kode berikut. Jumlah data output ini sesuai dengan jumlah data pada dataset iris yaitu 150 instance. > iris.pca$x PC1 PC2 PC3 PC4 [1,] -2.684125626 -0.319397247 0.027914828 0.0022624371 [2,] -2.714141687 0.177001225 0.210464272 0.0990265503 [3,] -2.888990569 0.144949426 -0.017900256 0.0199683897 . . . [149,] 1.900941614 -0.116627959 -0.723251563 0.0445953047 [150,] 1.390188862 0.282660938 -0.362909648 -0.1550386282 Output yang terakhir adalah nilai center. Nilai center dapat dilihat dengan perintah berikut. > iris.pca$center Sepal.Length Sepal.Width Petal.Length Petal.Width 5.843333 3.057333 3.758000 1.199333
  • 87. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 69 Visualisasi 2D Untuk membuat visualisasi grafik 2D digunakan fungsi biplot() seperti contoh berikut ini. biplot(iris.pca) Hasilnya akan dapat dilihat pada gambar di bawah ini. Gambar 63. Grafik visualisasi 2D dengan fungsi biplot(). Untuk menghasilkan grafik yang lebih bagus dapat digunakan fungsi pca2d(). Fungsi ini dimiliki oleh package pca3d. Install package pca3d dengan perintah berikut ini.
  • 88. 70 │ M. Reza Faisal & Dodon T. Nugrahadi install.packages("pca3d") Kemudian muat package dengan perintah berikut. library(pca3d) Untuk membuat grafik 2D output fungsi prcomp() digunakan kode di bawah ini. pca2d(iris.pca, group = iris[,5]) Parameter group diisi dengan feature dataset yang menyimpan label setiap instance. Berikut adalah grafik yang dihasilkan. Gambar 64. Grafik 2 dimensi fungsi pca2d(). Visualisasi 3D Untuk membuat grafik 3 dimensi digunakan fungsi pca3d() dari package pca3d yang telah digunakan pada sub bab sebelumnya. Kode di bawah ini adalah contoh penggunaan fungsi pca3d(). pca3d(iris.pca, group = iris[,5])
  • 89. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 71 Gambar 65. Grafik 3 dimensi fungsi pca3d() Grafik 3 dimensi di atas dapat dilihat dari sisi yang diinginkan user. User juga dapat melakukan zoom in dan zoom out. 3.13 Help Platform R memberikan fungsi help() untuk menampilkan dokumentasi suatu fungsi. Sintaks fungsi ini adalah sebagai berikut. help(FunctionName) Berikut ini adalah contoh penggunaan fungsi help().
  • 90. 72 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 66. Output fungsi help() pada R Tools for Visual Studio. Gambar 67. Output fungsi help() pada RStudio.
  • 91. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 73 Bab IV Pengantar Klasifikasi Pada bab ini akan dijelaskan pengantar klasifikasi meliputi definisi dan cara kerja klasifikasi. Penjelasan tentang karakteristik data yang dapat digunakan serta istilah-istilah yang umum digunakan. Pembahasan yang terakhir adalah langkah-langkah pengembangan aplikasi klasifikasi yang umum dilakukan. 4.1 Definisi Klasifikasi adalah salah satu teknik machine learning. Pada bab sebelumnya telah disebutkan bahwa teknik ini termasuk ke dalam tipe supervised learning. Istilah klasifikasi didapat dari tujuan utama teknik ini untuk memprediksi sebuah kategori dari input data. Sebelum melakukan proses prediksi, terlebih dahulu dilakukan proses pembelajaran. Proses pembelajaran memerlukan data. Data yang digunakan pada proses pembelajaran disebut data latih atau data training. Sedangkan data yang digunakan pada proses predeksi disebut data uji atau data testing. Kasus klasifikasi dapat dibedakan berdasarkan tipe masalah yang umumnya ditemui, yaitu: 1. Klasifikasi 1 class. 2. Klasifikasi 2 class (binary). 3. Klasifikasi multiclass, terdapat lebih dari 2 class. 4.2 Data Tidak semua data dapat digunakan pada teknik klasifikasi. Di bawah ini adalah contoh input data yang dapat digunakan untuk teknik klasifikasi.
  • 92. 74 │ M. Reza Faisal & Dodon T. Nugrahadi Data di bawah ini merupakan dataset yang telah ada di lingkungan R. Dataset Titanic ini berisi catatan korban kecelakaan kapal Titanic. Dataset terdiri atas 3 feature yaitu Class, Sex, Age dan satu target variable yaitu Survived. Dan nilai-nilai pada masing-masing feature adalah nominal. Dataset ini memiliki dua kategori/class yaitu No sebanyak 16 instance dan Yes sebanyak 16 instance. Class Sex Age Survived 1st Male Child No 2nd Male Child No 3rd Male Child No Crew Male Child No 1st Female Child No 2nd Female Child No 3rd Female Child No Crew Female Child No 1st Male Adult No 2nd Male Adult No 3rd Male Adult No Crew Male Adult No 1st Female Adult No 2nd Female Adult No 3rd Female Adult No Crew Female Adult No 1st Male Child Yes 2nd Male Child Yes 3rd Male Child Yes Crew Male Child Yes
  • 93. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 75 Class Sex Age Survived 1st Female Child Yes 2nd Female Child Yes 3rd Female Child Yes Crew Female Child Yes 1st Male Adult Yes 2nd Male Adult Yes 3rd Male Adult Yes Crew Male Adult Yes 1st Female Adult Yes 2nd Female Adult Yes 3rd Female Adult Yes Crew Female Adult Yes Tabel 1. Dataset Titanic. Contoh data yang kedua adalah dataset Iris. Dataset iris adalah dataset yang tersedia pada platform R. Dataset ini terdiri atas empat feature yaitu Sepal.Length, Sepal.Width, Petal.Length, Petal.Width dan sebuah target variable yaitu Species. Target variable Species bernilai nominal sedangkan feature-feature lainnya bernilai numerik. Jumlah kategori adalah 3 yaitu setosa, versicolor dan virginica. Jumlahs instance yang dimiliki oleh dataset iris adalah 150 instance, 50 instace adalah kategori setosa, 50 instance adalah kategori versicolor dan 50 instance sisanya adalah virginica. Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2 setosa 4.9 3 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 5 3.3 1.4 0.2 setosa . . .
  • 94. 76 │ M. Reza Faisal & Dodon T. Nugrahadi Sepal.Length Sepal.Width Petal.Length Petal.Width Species 7 3.2 4.7 1.4 versicolor 6.4 3.2 4.5 1.5 versicolor 6.9 3.1 4.9 1.5 versicolor 5.5 2.3 4 1.3 versicolor 6.5 2.8 4.6 1.5 versicolor . . . 6.3 3.3 6 2.5 virginica 5.8 2.7 5.1 1.9 virginica 7.1 3 5.9 2.1 virginica 6.3 2.9 5.6 1.8 virginica 6.5 3 5.8 2.2 virginica Tabel 2. Dataset iris. Contoh data yang lain adalah mtcars. Dataset mtcars juga telah tersedia di lingkungan R. cyl hp wt am Mazda RX4 6 110 2.62 1 Mazda RX4 Wag 6 110 2.875 1 Datsun 710 4 93 2.32 1 Hornet 4 Drive 6 110 3.215 0 Hornet Sportabout 8 175 3.44 0 Valiant 6 105 3.46 0 Duster 360 8 245 3.57 0 Merc 240D 4 62 3.19 0 Merc 230 4 95 3.15 0 Merc 280 6 123 3.44 0 Merc 280C 6 123 3.44 0
  • 95. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 77 cyl hp wt am Merc 450SE 8 180 4.07 0 Merc 450SL 8 180 3.73 0 Merc 450SLC 8 180 3.78 0 Cadillac Fleetwood 8 205 5.25 0 Lincoln Continental 8 215 5.424 0 Chrysler Imperial 8 230 5.345 0 Fiat 128 4 66 2.2 1 Honda Civic 4 52 1.615 1 Toyota Corolla 4 65 1.835 1 Toyota Corona 4 97 2.465 0 Dodge Challenger 8 150 3.52 0 AMC Javelin 8 150 3.435 0 Camaro Z28 8 245 3.84 0 Pontiac Firebird 8 175 3.845 0 Fiat X1-9 4 66 1.935 1 Porsche 914-2 4 91 2.14 1 Lotus Europa 4 113 1.513 1 Ford Pantera L 8 264 3.17 1 Ferrari Dino 6 175 2.77 1 Maserati Bora 8 335 3.57 1 Volvo 142E 4 109 2.78 1 Tabel 3. Dataset mtcars. Dataset di atas terdiri atas 3 feature yaitu cyl, hp dan wt. Sedangkan am adalah target variable yang menyatakan kategori/class. Pada dataset di atas nilai feature dan target variable adalah numerik.
  • 96. 78 │ M. Reza Faisal & Dodon T. Nugrahadi Dari tiga contoh data di atas, maka ciri khas dari data yang dapat digunakan untuk proses klasifikasi adalah terdapatnya kolom atau attribut sebagai target variable. Target variable berfungsi sebagai label untuk setiap instance. Dengan adanya label tersebut maka dapat diketahui kategori dari instance tersebut. Kemudian pada contoh di atas juga diperkenalkan beberapa istilah yang akan digunakan pada buku ini yaitu: 1. Instance, adalah sample atau record pada dataset. 2. Feature, adalah kolom atau attribut yang dimiliki oleh data. 4.3 Langkah-Langkah Pengembangan Sub bab ini menjelaskan tentang langkah-langkah pengembangan aplikasi klasifikasi. Berikut ini adalah urutan langkah-langkah tersebut: 1. Pengenalan data atau eksplorasi data. 2. Pembagian data. 3. Implementasi algoritma klasifikasi. 4. Pengukuran kinerja algoritma klasifikasi. Pengenalan Data Dengan mengenal data yang akan digunakan maka kita dapat menentukan algoritma yang cocok digunakan. Pada buku ini proses ini menggunakan cara yang sederhana yaitu: 1. Melihat struktur data, informasi yang didapatkan adalah jumlah instance, jumlah feature, tipe data pada feature dan target variable. 2. Melihat rangkuman data secara statistik. 3. Melihat sebaran instace-instance pada data dalam grafik 2 dimensi dan 3 dimensi. Proses ini bertujuan untuk melihat sebaran data pada data space. Proses ini dapat memberikan informasi overlapping antar class dan keberadaan sub cluster pada class. Tapi tidak semua data bisa digambar dalam sebaran
  • 97. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 79 data pada data space, karena proses ini dapat dilakukan jika tipe data feature-feature adalah numerik. Pembagian Data Algoritma klasifikasi dapat melakukan prediksi setelah proses training terlebih dahulu dilakukan. Proses training memerlukan data yang telah tersedia. Dan setelah proses pembelajaran selesai maka data baru dapat diprediksi. Jika kita memiliki data maka ada tersebut harus dibagi menjadi dua untuk melakukan proses pembelajaran dan pengujian. Jangan menggunakan data yang sama untuk proses pembelajaran dan pengujian. Sebagai ilustrasi, kotak abu-abu di bawah ini adalah data yang dimiliki. Jika dimiliki data dengan 100 instance maka jangan menggunakan 100 instance pada proses training, kemudian menggunakan 100 instace itu lagi untuk proses pengujian Gambar 68. Data yang dimiliki. Data harus dibagi menjadi dua, misal 80 instace untuk proses training dan 20 instace untuk pengujian. Gambar 69. Data dibagi menjadi data training dan testing. Teknik pembagian data training dan data testing yang umum digunakan untuk menguji algoritma klasifikasi adalah cross validation. Cross Validation Sub bab ini akan memberikan penjelasan sederhana tentang cara kerja cross validation. Misal data dibagi menjadi 2 bagian seperti pada gambar di bawah ini.
  • 98. 80 │ M. Reza Faisal & Dodon T. Nugrahadi Gambar 70. Membagi data menjadi 2. Maka teknik cross validation akan melakukan proses pembelajaran dan pengujian sebanyak 2 kali. Pertama, proses pembelajaran akan menggunakan data kotak abu-abu. Kemudian melakukan proses pengujian menggunakan data kotak hitam. Kedua, proses pembelajaran akan menggunakan data kotak hitam. Kemudian melakukan proses pengujian menggunakan data kotak abu-abu. Kinerja metode klasifikasi di atas adalah rata-rata kinerja dari dua proses pembelajaran dan pengujian. Dari penjelasan singkat di atas, dapat dilihat semua data digunakan sebagai data training dan testing. Sehingga algoritma klasifikasi yang digunakan lebih teruji dan nilai kinerja yang didapat lebih valid. Pada sub bab ini dibahas 2 teknik cross validation yaitu: 1. K-fold cross validation. 2. Leave-one-out cross validation. K-Fold Cross Validation K adalah bilangan bulat yang digunakan untuk membagi data. Jika nilai k = 5 maka data akan dibagi 5 seperti gambar di bawah ini. Gambar 71. Data dibagi 5 bagian. Maka metode klasifikasi akan melakukan proses pembelajaran dan pengujian sebanyak 5 kali. Pertama, kotak kotak-kotak warna abu-abu akan menjadi data training. Dan kotak warna hitam akan menjadi data testing. Gambar 72. Data proses pertama.
  • 99. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 81 Kedua, kotak kedua akan menjadi data testing dan sisanya menjadi data training. Gambar 73. Data proses kedua. Ketiga, kotak ketiga akan menjadi data testing dan sisanya menjadi data training. Gambar 74. Data proses ketiga. Keempat, kotak keempat akan menjadi data testing dan sisanya menjadi data training. Gambar 75. Data proses keempat. Kelima, kotak kelima akan menjadi data testing dan sisanya menjadi data training. Gambar 76. Data proses keempat. Selanjutnya nilai kinerja 5 proses pembelajaran dan pengujian akan dirata-ratakan sebagai nilai kinerja metode klasifikasi. Pembagian data di atas harus memperhatikan jumlah kategori atau kelas yang dimiliki data. Sebagai contoh dilakukan 5-fold cross validation dataset iris. Dataset iris memiliki 50 instance kategori setosa, 50 instance versicolor dan 50 instance virginica. Maka pembagian data akan seperti pada gambar di bawah ini.
  • 100. 82 │ M. Reza Faisal & Dodon T. Nugrahadi 30 instance (10 setosa, 10 versicolor, 10 virginica) 30 instance (10 setosa, 10 versicolor, 10 virginica) 30 instance (10 setosa, 10 versicolor, 10 virginica) 30 instance (10 setosa, 10 versicolor, 10 virginica) 30 instance (10 setosa, 10 versicolor, 10 virginica) Gambar 77. 5-fold cross validation data iris. Contoh lain, jika dimiliki data sejumlah 100 instance dan 2 kategori. Kategori “mayoritas” sejumlah 90 instace dan kategori “minoritas” sebanyak 10 instace. Jika dilakukan 5-fold cross validation maka akan didapat data seperti berikut. 20 instance (18 mayoritas, 2 minoritas) 20 instance (18 mayoritas, 2 minoritas) 20 instance (18 mayoritas, 2 minoritas) 20 instance (18 mayoritas, 2 minoritas) 20 instance (18 mayoritas, 2 minoritas) Gambar 78. 5-fold cross validation data contoh. Pembagian data seperti cara di atas dapat dilakukan secara otomatis dengan membuat program pada R. hal ini akan dibahas pada bab selanjutnya. Leave-one-out Cross Validation Cara ini membuat 1 instance menjadi data testing dan sisanya menjadi data training. Jika dataset iris yang memiliki 150 instance maka proses pembelajaran dan pengujian akan dilakukan sebanyak 150 kali. Implementasi Algoritma Klasifikasi Setelah data dibagi menjadi data training dan data testing, selanjutnya adalah implementasi algoritma klasifikasi. Pada tahap ini data training akan digunakan oleh algoritma untuk belajar. Setelah proses belajar selesai, maka data testing akan digunakan oleh algoritma klasifikasi. Output dari algoritma tersebut hasil prediksi.
  • 101. Belajar Data Science: Klasifikasi dengan Bahasa Pemrograman R │ 83 Sebagai contoh, jika diketahui data training disimpan dalam obyek data_training. Dan isi obyek data_training adalah seperti berikut. F.1 F.2 F.3 F.4 F5 TV 1 5.1 3.5 1.4 0.2 class1 2 4.9 3.0 1.4 0.2 class2 3 4.7 3.2 1.3 0.2 class1 4 4.6 3.1 1.5 0.2 class1 5 5.0 3.6 1.4 0.2 class2 6 5.4 3.9 1.7 0.4 class1 7 5.1 3.5 1.4 0.2 class1 8 4.9 3.0 1.4 0.2 class2 9 4.7 3.2 1.3 0.2 class1 10 4.6 3.1 1.5 0.2 class1 Sedangkan jika data testing disimpan dalam obyek data_testing. Dan isi obyek data_testing adalah sebagai berikut. F.1 F.2 F.3 F.4 F5 TV 1 6.7 3.3 5.7 2.5 class1 2 6.7 3.0 5.2 2.3 class2 3 5.1 3.5 1.4 0.2 class1 4 6.7 3.0 5.2 2.3 class2 Jika fungsi algorithm() adalah algoritma klasifikasi maka berikut ini adalah contoh pseudo code implementasi fungsi algorithm(). prediction = algorithm(data_training, data_testing) Obyek prediction pada contoh pseudo code di atas berisi prediksi atas data_testing. Hasil prediksi biasanya berisi nilai target variable dan probabilitas prediksi. > prediction prediction probability [1,] class1 1 [2,] class1 0.6 [3,] class1 1 [4,] class2 0.9