Setelah menyelesaikan bab ini, Anda mampu:
Klasifikasi merupakan kelompok supervised learning atau pembelajaran yang memiliki target variabel (dengan supervisi) dengan target berupa data bertipe kategorikal/factor. Klasifikasi merupakan penempatan objek-objek ke salah satu dari beberapa kategori kelas yang telah ditetapkan sebelumnya.
Penerapan klasifikasi: Sebagai contoh, pendeteksian pesan email spam berdasarkan header dan isi atau mengklasifikasikan galaksi berdasarkan bentuk-bentuknya. Contoh yang lainnya, kita dapat membangun model klasifikasi untuk mengkategorikan aplikasi pinjaman bank sebagai kategori aman atau berisiko.
Decision tree adalah pembelajaran pohon keputusan dari tupel pelatihan berlabel kelas. Pohon keputusan adalah struktur pohon seperti bagan alur, di mana setiap node internal (nonleaf node) menunjukkan tes pada atribut, setiap cabang mewakili hasil tes, dan setiap node daun (atau terminal node) memegang label kelas. Node paling atas di pohon adalah node root.
numerik: 1,2,3 4 10,15 kategorikal/ faktor jika ada 10 data (1,2,3) jenis kelamin: 10 orang, perempuan dan laki-laki tua, muda sedang besar, kecil target Y: mamalia dan non-mamalia variabel/target/atribut (x)
Studi kasus: Misalkan Anda seorang yang bekerja pada perusahaan distributor bunga hias. Anda diminta untuk membuat sebuah model yang dapat menentukan jenis bunga iris. Maka Anda diharuskan membuat sebuah model klasifikasi. Perusahaan Anda memiliki data berbagai macam atribut bunga iris dengan berbagai tipe. Anda dapat menggunakan data tersebut untuk membuat model.
Secara umum, ada tiga algoritma di dalam decision tree, ID3, C4.5, dan CART (Classification and Regression Trees). Pada kesempatan kali ini, kita akan membahas decision tree default dengan algoritma ID3. Pada ID3, untuk mendapatkan variabel apa yang akan menjadi root atau internal node, dilihat dari nilai entropy yang tertinggi atau information gain terendah. Adapun formulasi dari entropy dan information gain dijelaskan di bawah ini:
\[Entrophy(S) = \sum-p_ilog_2(p_i)\]
di mana: - S adalah segmen data yang diberikan - c adalah jumlah dari level kategori - pi adalah proporsi dari nilai pada kelas ke-i
Sedangkan information gain mengikuti formulasi berikut:
\[InformationGain(F) = Entrophy(S_1)-Entrophy(S_2)\]
information gain: seberapa informatif variabel tersebut terhadap keputusan kita information gain berbanding terbaik dengan entropi
#install.packages("dplyr")
#install.packages("caret")
#install.packages("party")
data iris –> Y: data bunga jenis sentosa, virginia dan versicolor X : sepal.length, sepal.width, petal.length dan petal.width
Pada kasus kali ini, kita akan membahas penerapan klasifikasi pada
dataset iris. Iris merupakan dataset built in yang sudah di sediakan
oleh R, sehingga dengan kita memanggil object iris
datasetnya sudah siap untuk digunakan
iris
## 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
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 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
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 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
Kita akan melakukan cross validation (membagi data menjadi bagian-bagian tertentu). Pada kesempatan kali ini, kita membagi dtaa menjadi 2, yakni data train dan test dengan proporsi data train adalah 80% dan data test 20%.
set.seed(100)
idx_iris <- sample(nrow(iris), nrow(iris)*0.8)
train_iris <- iris[idx_iris,]
test_iris <- iris[-idx_iris,]
Cek hasil partisi pada data train
head(train_iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 102 5.8 2.7 5.1 1.9 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 4 4.6 3.1 1.5 0.2 setosa
## 55 6.5 2.8 4.6 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
Model decision tree yang akan kita buat kali ini merupakan model dari
library party kit. Adapun fungsi yang bisa digunakan adalah
ctree(). Sebelumnya, kita load terlebih dahulu library yang
digunakan
#install.packages("party")
#install.packages("caret")
library(caret) # mengevaluasi model dengan confusion matrix
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Loading required package: lattice
library(partykit) # pemodelan decision tree
## Loading required package: grid
## Loading required package: libcoin
## Loading required package: mvtnorm
Pembuatan model fungsi untuk menjalankan decisition tree ID3: ctree()
model_iris <- ctree(formula = Species ~ ., data = train_iris)
Untuk membuat visualisasi dari model yang sudah dibuat, kita bisa menggunakan fungsi plot().
plot(model_iris)
Dari hasil pemodelan kita bisa mengetahui jika petal length ≤ 1.9 maka termasuk spesies sentosa. Ada 39 observasi yang mengikuti aturan tersebut. Jika petal length > 1.9 maka dilihat lagi petal width. Jika petal width > 1.7 maka termasuk spesies virginica dan begitu seterusnya.
Selanjutnya model yang telah dibuat digunakan untuk memprediksi data baru
pred_iris <- predict(model_iris, test_iris)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
pred_result <- cbind(test_iris, pred_iris)
pred_result
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species pred_iris
## 1 5.1 3.5 1.4 0.2 setosa setosa
## 6 5.4 3.9 1.7 0.4 setosa setosa
## 10 4.9 3.1 1.5 0.1 setosa setosa
## 11 5.4 3.7 1.5 0.2 setosa setosa
## 13 4.8 3.0 1.4 0.1 setosa setosa
## 21 5.4 3.4 1.7 0.2 setosa setosa
## 33 5.2 4.1 1.5 0.1 setosa setosa
## 34 5.5 4.2 1.4 0.2 setosa setosa
## 38 4.9 3.6 1.4 0.1 setosa setosa
## 39 4.4 3.0 1.3 0.2 setosa setosa
## 50 5.0 3.3 1.4 0.2 setosa setosa
## 64 6.1 2.9 4.7 1.4 versicolor versicolor
## 67 5.6 3.0 4.5 1.5 versicolor versicolor
## 72 6.1 2.8 4.0 1.3 versicolor versicolor
## 73 6.3 2.5 4.9 1.5 versicolor versicolor
## 74 6.1 2.8 4.7 1.2 versicolor versicolor
## 76 6.6 3.0 4.4 1.4 versicolor versicolor
## 77 6.8 2.8 4.8 1.4 versicolor versicolor
## 79 6.0 2.9 4.5 1.5 versicolor versicolor
## 84 6.0 2.7 5.1 1.6 versicolor versicolor
## 90 5.5 2.5 4.0 1.3 versicolor versicolor
## 101 6.3 3.3 6.0 2.5 virginica virginica
## 103 7.1 3.0 5.9 2.1 virginica virginica
## 106 7.6 3.0 6.6 2.1 virginica virginica
## 108 7.3 2.9 6.3 1.8 virginica virginica
## 109 6.7 2.5 5.8 1.8 virginica virginica
## 117 6.5 3.0 5.5 1.8 virginica virginica
## 131 7.4 2.8 6.1 1.9 virginica virginica
## 134 6.3 2.8 5.1 1.5 virginica versicolor
## 145 6.7 3.3 5.7 2.5 virginica virginica
Tabel di atas menampilkan semua variabel data iris ditambah dengan variabel prediksi iris. Pada lima data pertama ini ditunjukkan bahwa semua spesies hasil prediksi benar dengan spesies data aktualnya.
Pada kasus klasifikasi, banyak evaluasi yang bisa digunakan. Pada
kasus kali ini, kamu akan menggunakan sebuah
confusion matrix untuk melihat seberapa baik model dalam
memprediksi data yang belum ia lihat. Terdapat beberapa metric yang bisa
diperhatikan dalam confusion matrix, pada kesempatan kali ini, kita akan
membahas mengenai metric akurasi.
confusionMatrix(pred_iris, test_iris$Species)
## Confusion Matrix and Statistics
##
## Reference
## Prediction setosa versicolor virginica
## setosa 11 0 0
## versicolor 0 10 1
## virginica 0 0 8
##
## Overall Statistics
##
## Accuracy : 0.9667
## 95% CI : (0.8278, 0.9992)
## No Information Rate : 0.3667
## P-Value [Acc > NIR] : 4.476e-12
##
## Kappa : 0.9497
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: setosa Class: versicolor Class: virginica
## Sensitivity 1.0000 1.0000 0.8889
## Specificity 1.0000 0.9500 1.0000
## Pos Pred Value 1.0000 0.9091 1.0000
## Neg Pred Value 1.0000 1.0000 0.9545
## Prevalence 0.3667 0.3333 0.3000
## Detection Rate 0.3667 0.3333 0.2667
## Detection Prevalence 0.3667 0.3667 0.2667
## Balanced Accuracy 1.0000 0.9750 0.9444
Akurasi = jumlah benar / jumlah data
29/30
## [1] 0.9666667
Dari hasil confusion matrix di atas, didapat akurasi 0.9667 atau model kita memiliki akurasi 96.67% terhadap data test.
Selanjutnya juga diperlukan untuk mengecek model yang dibuat dengan menggunakan data train. Hal ini digunakan untuk mengetahui kondisi apakah model mengalami under-fitting atau over-fitting.
underfitting: akurasi pada data train rendah dan akurasi data test rendah overfitting: akurasi pada data train tinggi dan akurasi pada datatest rendah
pred_iris_train <- predict(model_iris, train_iris)
confusionMatrix(pred_iris_train, train_iris$Species)
## Confusion Matrix and Statistics
##
## Reference
## Prediction setosa versicolor virginica
## setosa 39 0 0
## versicolor 0 39 4
## virginica 0 1 37
##
## Overall Statistics
##
## Accuracy : 0.9583
## 95% CI : (0.9054, 0.9863)
## No Information Rate : 0.3417
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.9375
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: setosa Class: versicolor Class: virginica
## Sensitivity 1.000 0.9750 0.9024
## Specificity 1.000 0.9500 0.9873
## Pos Pred Value 1.000 0.9070 0.9737
## Neg Pred Value 1.000 0.9870 0.9512
## Prevalence 0.325 0.3333 0.3417
## Detection Rate 0.325 0.3250 0.3083
## Detection Prevalence 0.325 0.3583 0.3167
## Balanced Accuracy 1.000 0.9625 0.9449
Dari hasil confusion matrix di atas, didapat bahwa akurasi pada data train adalah 0.9583 atau 95.83% dan data test 96.67 %, artinya model_iris yang kita buat sudah cukup appropriate-fitting (sesuai keinginan), sehingga tidak perlu dilakukan tuning model.
Tugas: heart disease heart.csv mengklasifikasikan orang yang tergolong Health atau Not Health menggunakan dataset heart disease keterangan kolom: 1.age 2. sex 3. chest pain type (4 values) 4. resting blood pressure 5. serum cholestoral in mg/dl 6. fasting blood sugar > 120 mg/dl 7. resting electrocardiographic results (values 0,1,2) 8. maximum heart rate achieved 9. exercise induced angina 10.oldpeak = ST depression induced by exercise relative to rest 11. the slope of the peak exercise ST segment 12. number of major vessels (0-3) colored by flourosopy 13. thal: 3 = normal; 6 = fixed defect; 7 = reversable defect 14. target
target dijadikan sebagai variabel Y
heart <- read.csv("heart.csv")
heart
## age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal
## 1 63 1 3 145 233 1 0 150 0 2.3 0 0 1
## 2 37 1 2 130 250 0 1 187 0 3.5 0 0 2
## 3 41 0 1 130 204 0 0 172 0 1.4 2 0 2
## 4 56 1 1 120 236 0 1 178 0 0.8 2 0 2
## 5 57 0 0 120 354 0 1 163 1 0.6 2 0 2
## 6 57 1 0 140 192 0 1 148 0 0.4 1 0 1
## 7 56 0 1 140 294 0 0 153 0 1.3 1 0 2
## 8 44 1 1 120 263 0 1 173 0 0.0 2 0 3
## 9 52 1 2 172 199 1 1 162 0 0.5 2 0 3
## 10 57 1 2 150 168 0 1 174 0 1.6 2 0 2
## 11 54 1 0 140 239 0 1 160 0 1.2 2 0 2
## 12 48 0 2 130 275 0 1 139 0 0.2 2 0 2
## 13 49 1 1 130 266 0 1 171 0 0.6 2 0 2
## 14 64 1 3 110 211 0 0 144 1 1.8 1 0 2
## 15 58 0 3 150 283 1 0 162 0 1.0 2 0 2
## 16 50 0 2 120 219 0 1 158 0 1.6 1 0 2
## 17 58 0 2 120 340 0 1 172 0 0.0 2 0 2
## 18 66 0 3 150 226 0 1 114 0 2.6 0 0 2
## 19 43 1 0 150 247 0 1 171 0 1.5 2 0 2
## 20 69 0 3 140 239 0 1 151 0 1.8 2 2 2
## 21 59 1 0 135 234 0 1 161 0 0.5 1 0 3
## 22 44 1 2 130 233 0 1 179 1 0.4 2 0 2
## 23 42 1 0 140 226 0 1 178 0 0.0 2 0 2
## 24 61 1 2 150 243 1 1 137 1 1.0 1 0 2
## 25 40 1 3 140 199 0 1 178 1 1.4 2 0 3
## 26 71 0 1 160 302 0 1 162 0 0.4 2 2 2
## 27 59 1 2 150 212 1 1 157 0 1.6 2 0 2
## 28 51 1 2 110 175 0 1 123 0 0.6 2 0 2
## 29 65 0 2 140 417 1 0 157 0 0.8 2 1 2
## 30 53 1 2 130 197 1 0 152 0 1.2 0 0 2
## 31 41 0 1 105 198 0 1 168 0 0.0 2 1 2
## 32 65 1 0 120 177 0 1 140 0 0.4 2 0 3
## 33 44 1 1 130 219 0 0 188 0 0.0 2 0 2
## 34 54 1 2 125 273 0 0 152 0 0.5 0 1 2
## 35 51 1 3 125 213 0 0 125 1 1.4 2 1 2
## 36 46 0 2 142 177 0 0 160 1 1.4 0 0 2
## 37 54 0 2 135 304 1 1 170 0 0.0 2 0 2
## 38 54 1 2 150 232 0 0 165 0 1.6 2 0 3
## 39 65 0 2 155 269 0 1 148 0 0.8 2 0 2
## 40 65 0 2 160 360 0 0 151 0 0.8 2 0 2
## 41 51 0 2 140 308 0 0 142 0 1.5 2 1 2
## 42 48 1 1 130 245 0 0 180 0 0.2 1 0 2
## 43 45 1 0 104 208 0 0 148 1 3.0 1 0 2
## 44 53 0 0 130 264 0 0 143 0 0.4 1 0 2
## 45 39 1 2 140 321 0 0 182 0 0.0 2 0 2
## 46 52 1 1 120 325 0 1 172 0 0.2 2 0 2
## 47 44 1 2 140 235 0 0 180 0 0.0 2 0 2
## 48 47 1 2 138 257 0 0 156 0 0.0 2 0 2
## 49 53 0 2 128 216 0 0 115 0 0.0 2 0 0
## 50 53 0 0 138 234 0 0 160 0 0.0 2 0 2
## 51 51 0 2 130 256 0 0 149 0 0.5 2 0 2
## 52 66 1 0 120 302 0 0 151 0 0.4 1 0 2
## 53 62 1 2 130 231 0 1 146 0 1.8 1 3 3
## 54 44 0 2 108 141 0 1 175 0 0.6 1 0 2
## 55 63 0 2 135 252 0 0 172 0 0.0 2 0 2
## 56 52 1 1 134 201 0 1 158 0 0.8 2 1 2
## 57 48 1 0 122 222 0 0 186 0 0.0 2 0 2
## 58 45 1 0 115 260 0 0 185 0 0.0 2 0 2
## 59 34 1 3 118 182 0 0 174 0 0.0 2 0 2
## 60 57 0 0 128 303 0 0 159 0 0.0 2 1 2
## 61 71 0 2 110 265 1 0 130 0 0.0 2 1 2
## 62 54 1 1 108 309 0 1 156 0 0.0 2 0 3
## 63 52 1 3 118 186 0 0 190 0 0.0 1 0 1
## 64 41 1 1 135 203 0 1 132 0 0.0 1 0 1
## 65 58 1 2 140 211 1 0 165 0 0.0 2 0 2
## 66 35 0 0 138 183 0 1 182 0 1.4 2 0 2
## 67 51 1 2 100 222 0 1 143 1 1.2 1 0 2
## 68 45 0 1 130 234 0 0 175 0 0.6 1 0 2
## 69 44 1 1 120 220 0 1 170 0 0.0 2 0 2
## 70 62 0 0 124 209 0 1 163 0 0.0 2 0 2
## 71 54 1 2 120 258 0 0 147 0 0.4 1 0 3
## 72 51 1 2 94 227 0 1 154 1 0.0 2 1 3
## 73 29 1 1 130 204 0 0 202 0 0.0 2 0 2
## 74 51 1 0 140 261 0 0 186 1 0.0 2 0 2
## 75 43 0 2 122 213 0 1 165 0 0.2 1 0 2
## 76 55 0 1 135 250 0 0 161 0 1.4 1 0 2
## 77 51 1 2 125 245 1 0 166 0 2.4 1 0 2
## 78 59 1 1 140 221 0 1 164 1 0.0 2 0 2
## 79 52 1 1 128 205 1 1 184 0 0.0 2 0 2
## 80 58 1 2 105 240 0 0 154 1 0.6 1 0 3
## 81 41 1 2 112 250 0 1 179 0 0.0 2 0 2
## 82 45 1 1 128 308 0 0 170 0 0.0 2 0 2
## 83 60 0 2 102 318 0 1 160 0 0.0 2 1 2
## 84 52 1 3 152 298 1 1 178 0 1.2 1 0 3
## 85 42 0 0 102 265 0 0 122 0 0.6 1 0 2
## 86 67 0 2 115 564 0 0 160 0 1.6 1 0 3
## 87 68 1 2 118 277 0 1 151 0 1.0 2 1 3
## 88 46 1 1 101 197 1 1 156 0 0.0 2 0 3
## 89 54 0 2 110 214 0 1 158 0 1.6 1 0 2
## 90 58 0 0 100 248 0 0 122 0 1.0 1 0 2
## 91 48 1 2 124 255 1 1 175 0 0.0 2 2 2
## 92 57 1 0 132 207 0 1 168 1 0.0 2 0 3
## 93 52 1 2 138 223 0 1 169 0 0.0 2 4 2
## 94 54 0 1 132 288 1 0 159 1 0.0 2 1 2
## 95 45 0 1 112 160 0 1 138 0 0.0 1 0 2
## 96 53 1 0 142 226 0 0 111 1 0.0 2 0 3
## 97 62 0 0 140 394 0 0 157 0 1.2 1 0 2
## 98 52 1 0 108 233 1 1 147 0 0.1 2 3 3
## 99 43 1 2 130 315 0 1 162 0 1.9 2 1 2
## 100 53 1 2 130 246 1 0 173 0 0.0 2 3 2
## 101 42 1 3 148 244 0 0 178 0 0.8 2 2 2
## 102 59 1 3 178 270 0 0 145 0 4.2 0 0 3
## 103 63 0 1 140 195 0 1 179 0 0.0 2 2 2
## 104 42 1 2 120 240 1 1 194 0 0.8 0 0 3
## 105 50 1 2 129 196 0 1 163 0 0.0 2 0 2
## 106 68 0 2 120 211 0 0 115 0 1.5 1 0 2
## 107 69 1 3 160 234 1 0 131 0 0.1 1 1 2
## 108 45 0 0 138 236 0 0 152 1 0.2 1 0 2
## 109 50 0 1 120 244 0 1 162 0 1.1 2 0 2
## 110 50 0 0 110 254 0 0 159 0 0.0 2 0 2
## 111 64 0 0 180 325 0 1 154 1 0.0 2 0 2
## 112 57 1 2 150 126 1 1 173 0 0.2 2 1 3
## 113 64 0 2 140 313 0 1 133 0 0.2 2 0 3
## 114 43 1 0 110 211 0 1 161 0 0.0 2 0 3
## 115 55 1 1 130 262 0 1 155 0 0.0 2 0 2
## 116 37 0 2 120 215 0 1 170 0 0.0 2 0 2
## 117 41 1 2 130 214 0 0 168 0 2.0 1 0 2
## 118 56 1 3 120 193 0 0 162 0 1.9 1 0 3
## 119 46 0 1 105 204 0 1 172 0 0.0 2 0 2
## 120 46 0 0 138 243 0 0 152 1 0.0 1 0 2
## 121 64 0 0 130 303 0 1 122 0 2.0 1 2 2
## 122 59 1 0 138 271 0 0 182 0 0.0 2 0 2
## 123 41 0 2 112 268 0 0 172 1 0.0 2 0 2
## 124 54 0 2 108 267 0 0 167 0 0.0 2 0 2
## 125 39 0 2 94 199 0 1 179 0 0.0 2 0 2
## 126 34 0 1 118 210 0 1 192 0 0.7 2 0 2
## 127 47 1 0 112 204 0 1 143 0 0.1 2 0 2
## 128 67 0 2 152 277 0 1 172 0 0.0 2 1 2
## 129 52 0 2 136 196 0 0 169 0 0.1 1 0 2
## 130 74 0 1 120 269 0 0 121 1 0.2 2 1 2
## 131 54 0 2 160 201 0 1 163 0 0.0 2 1 2
## 132 49 0 1 134 271 0 1 162 0 0.0 1 0 2
## 133 42 1 1 120 295 0 1 162 0 0.0 2 0 2
## 134 41 1 1 110 235 0 1 153 0 0.0 2 0 2
## 135 41 0 1 126 306 0 1 163 0 0.0 2 0 2
## 136 49 0 0 130 269 0 1 163 0 0.0 2 0 2
## 137 60 0 2 120 178 1 1 96 0 0.0 2 0 2
## 138 62 1 1 128 208 1 0 140 0 0.0 2 0 2
## 139 57 1 0 110 201 0 1 126 1 1.5 1 0 1
## 140 64 1 0 128 263 0 1 105 1 0.2 1 1 3
## 141 51 0 2 120 295 0 0 157 0 0.6 2 0 2
## 142 43 1 0 115 303 0 1 181 0 1.2 1 0 2
## 143 42 0 2 120 209 0 1 173 0 0.0 1 0 2
## 144 67 0 0 106 223 0 1 142 0 0.3 2 2 2
## 145 76 0 2 140 197 0 2 116 0 1.1 1 0 2
## 146 70 1 1 156 245 0 0 143 0 0.0 2 0 2
## 147 44 0 2 118 242 0 1 149 0 0.3 1 1 2
## 148 60 0 3 150 240 0 1 171 0 0.9 2 0 2
## 149 44 1 2 120 226 0 1 169 0 0.0 2 0 2
## 150 42 1 2 130 180 0 1 150 0 0.0 2 0 2
## 151 66 1 0 160 228 0 0 138 0 2.3 2 0 1
## 152 71 0 0 112 149 0 1 125 0 1.6 1 0 2
## 153 64 1 3 170 227 0 0 155 0 0.6 1 0 3
## 154 66 0 2 146 278 0 0 152 0 0.0 1 1 2
## 155 39 0 2 138 220 0 1 152 0 0.0 1 0 2
## 156 58 0 0 130 197 0 1 131 0 0.6 1 0 2
## 157 47 1 2 130 253 0 1 179 0 0.0 2 0 2
## 158 35 1 1 122 192 0 1 174 0 0.0 2 0 2
## 159 58 1 1 125 220 0 1 144 0 0.4 1 4 3
## 160 56 1 1 130 221 0 0 163 0 0.0 2 0 3
## 161 56 1 1 120 240 0 1 169 0 0.0 0 0 2
## 162 55 0 1 132 342 0 1 166 0 1.2 2 0 2
## 163 41 1 1 120 157 0 1 182 0 0.0 2 0 2
## 164 38 1 2 138 175 0 1 173 0 0.0 2 4 2
## 165 38 1 2 138 175 0 1 173 0 0.0 2 4 2
## 166 67 1 0 160 286 0 0 108 1 1.5 1 3 2
## 167 67 1 0 120 229 0 0 129 1 2.6 1 2 3
## 168 62 0 0 140 268 0 0 160 0 3.6 0 2 2
## 169 63 1 0 130 254 0 0 147 0 1.4 1 1 3
## 170 53 1 0 140 203 1 0 155 1 3.1 0 0 3
## 171 56 1 2 130 256 1 0 142 1 0.6 1 1 1
## 172 48 1 1 110 229 0 1 168 0 1.0 0 0 3
## 173 58 1 1 120 284 0 0 160 0 1.8 1 0 2
## 174 58 1 2 132 224 0 0 173 0 3.2 2 2 3
## 175 60 1 0 130 206 0 0 132 1 2.4 1 2 3
## 176 40 1 0 110 167 0 0 114 1 2.0 1 0 3
## 177 60 1 0 117 230 1 1 160 1 1.4 2 2 3
## 178 64 1 2 140 335 0 1 158 0 0.0 2 0 2
## 179 43 1 0 120 177 0 0 120 1 2.5 1 0 3
## 180 57 1 0 150 276 0 0 112 1 0.6 1 1 1
## 181 55 1 0 132 353 0 1 132 1 1.2 1 1 3
## 182 65 0 0 150 225 0 0 114 0 1.0 1 3 3
## 183 61 0 0 130 330 0 0 169 0 0.0 2 0 2
## 184 58 1 2 112 230 0 0 165 0 2.5 1 1 3
## 185 50 1 0 150 243 0 0 128 0 2.6 1 0 3
## 186 44 1 0 112 290 0 0 153 0 0.0 2 1 2
## 187 60 1 0 130 253 0 1 144 1 1.4 2 1 3
## 188 54 1 0 124 266 0 0 109 1 2.2 1 1 3
## 189 50 1 2 140 233 0 1 163 0 0.6 1 1 3
## 190 41 1 0 110 172 0 0 158 0 0.0 2 0 3
## 191 51 0 0 130 305 0 1 142 1 1.2 1 0 3
## 192 58 1 0 128 216 0 0 131 1 2.2 1 3 3
## 193 54 1 0 120 188 0 1 113 0 1.4 1 1 3
## 194 60 1 0 145 282 0 0 142 1 2.8 1 2 3
## 195 60 1 2 140 185 0 0 155 0 3.0 1 0 2
## 196 59 1 0 170 326 0 0 140 1 3.4 0 0 3
## 197 46 1 2 150 231 0 1 147 0 3.6 1 0 2
## 198 67 1 0 125 254 1 1 163 0 0.2 1 2 3
## 199 62 1 0 120 267 0 1 99 1 1.8 1 2 3
## 200 65 1 0 110 248 0 0 158 0 0.6 2 2 1
## 201 44 1 0 110 197 0 0 177 0 0.0 2 1 2
## 202 60 1 0 125 258 0 0 141 1 2.8 1 1 3
## 203 58 1 0 150 270 0 0 111 1 0.8 2 0 3
## 204 68 1 2 180 274 1 0 150 1 1.6 1 0 3
## 205 62 0 0 160 164 0 0 145 0 6.2 0 3 3
## 206 52 1 0 128 255 0 1 161 1 0.0 2 1 3
## 207 59 1 0 110 239 0 0 142 1 1.2 1 1 3
## 208 60 0 0 150 258 0 0 157 0 2.6 1 2 3
## 209 49 1 2 120 188 0 1 139 0 2.0 1 3 3
## 210 59 1 0 140 177 0 1 162 1 0.0 2 1 3
## 211 57 1 2 128 229 0 0 150 0 0.4 1 1 3
## 212 61 1 0 120 260 0 1 140 1 3.6 1 1 3
## 213 39 1 0 118 219 0 1 140 0 1.2 1 0 3
## 214 61 0 0 145 307 0 0 146 1 1.0 1 0 3
## 215 56 1 0 125 249 1 0 144 1 1.2 1 1 2
## 216 43 0 0 132 341 1 0 136 1 3.0 1 0 3
## 217 62 0 2 130 263 0 1 97 0 1.2 1 1 3
## 218 63 1 0 130 330 1 0 132 1 1.8 2 3 3
## 219 65 1 0 135 254 0 0 127 0 2.8 1 1 3
## 220 48 1 0 130 256 1 0 150 1 0.0 2 2 3
## 221 63 0 0 150 407 0 0 154 0 4.0 1 3 3
## 222 55 1 0 140 217 0 1 111 1 5.6 0 0 3
## 223 65 1 3 138 282 1 0 174 0 1.4 1 1 2
## 224 56 0 0 200 288 1 0 133 1 4.0 0 2 3
## 225 54 1 0 110 239 0 1 126 1 2.8 1 1 3
## 226 70 1 0 145 174 0 1 125 1 2.6 0 0 3
## 227 62 1 1 120 281 0 0 103 0 1.4 1 1 3
## 228 35 1 0 120 198 0 1 130 1 1.6 1 0 3
## 229 59 1 3 170 288 0 0 159 0 0.2 1 0 3
## 230 64 1 2 125 309 0 1 131 1 1.8 1 0 3
## 231 47 1 2 108 243 0 1 152 0 0.0 2 0 2
## 232 57 1 0 165 289 1 0 124 0 1.0 1 3 3
## 233 55 1 0 160 289 0 0 145 1 0.8 1 1 3
## 234 64 1 0 120 246 0 0 96 1 2.2 0 1 2
## 235 70 1 0 130 322 0 0 109 0 2.4 1 3 2
## 236 51 1 0 140 299 0 1 173 1 1.6 2 0 3
## 237 58 1 0 125 300 0 0 171 0 0.0 2 2 3
## 238 60 1 0 140 293 0 0 170 0 1.2 1 2 3
## 239 77 1 0 125 304 0 0 162 1 0.0 2 3 2
## 240 35 1 0 126 282 0 0 156 1 0.0 2 0 3
## 241 70 1 2 160 269 0 1 112 1 2.9 1 1 3
## 242 59 0 0 174 249 0 1 143 1 0.0 1 0 2
## 243 64 1 0 145 212 0 0 132 0 2.0 1 2 1
## 244 57 1 0 152 274 0 1 88 1 1.2 1 1 3
## 245 56 1 0 132 184 0 0 105 1 2.1 1 1 1
## 246 48 1 0 124 274 0 0 166 0 0.5 1 0 3
## 247 56 0 0 134 409 0 0 150 1 1.9 1 2 3
## 248 66 1 1 160 246 0 1 120 1 0.0 1 3 1
## 249 54 1 1 192 283 0 0 195 0 0.0 2 1 3
## 250 69 1 2 140 254 0 0 146 0 2.0 1 3 3
## 251 51 1 0 140 298 0 1 122 1 4.2 1 3 3
## 252 43 1 0 132 247 1 0 143 1 0.1 1 4 3
## 253 62 0 0 138 294 1 1 106 0 1.9 1 3 2
## 254 67 1 0 100 299 0 0 125 1 0.9 1 2 2
## 255 59 1 3 160 273 0 0 125 0 0.0 2 0 2
## 256 45 1 0 142 309 0 0 147 1 0.0 1 3 3
## 257 58 1 0 128 259 0 0 130 1 3.0 1 2 3
## 258 50 1 0 144 200 0 0 126 1 0.9 1 0 3
## 259 62 0 0 150 244 0 1 154 1 1.4 1 0 2
## 260 38 1 3 120 231 0 1 182 1 3.8 1 0 3
## 261 66 0 0 178 228 1 1 165 1 1.0 1 2 3
## 262 52 1 0 112 230 0 1 160 0 0.0 2 1 2
## 263 53 1 0 123 282 0 1 95 1 2.0 1 2 3
## 264 63 0 0 108 269 0 1 169 1 1.8 1 2 2
## 265 54 1 0 110 206 0 0 108 1 0.0 1 1 2
## 266 66 1 0 112 212 0 0 132 1 0.1 2 1 2
## 267 55 0 0 180 327 0 2 117 1 3.4 1 0 2
## 268 49 1 2 118 149 0 0 126 0 0.8 2 3 2
## 269 54 1 0 122 286 0 0 116 1 3.2 1 2 2
## 270 56 1 0 130 283 1 0 103 1 1.6 0 0 3
## 271 46 1 0 120 249 0 0 144 0 0.8 2 0 3
## 272 61 1 3 134 234 0 1 145 0 2.6 1 2 2
## 273 67 1 0 120 237 0 1 71 0 1.0 1 0 2
## 274 58 1 0 100 234 0 1 156 0 0.1 2 1 3
## 275 47 1 0 110 275 0 0 118 1 1.0 1 1 2
## 276 52 1 0 125 212 0 1 168 0 1.0 2 2 3
## 277 58 1 0 146 218 0 1 105 0 2.0 1 1 3
## 278 57 1 1 124 261 0 1 141 0 0.3 2 0 3
## 279 58 0 1 136 319 1 0 152 0 0.0 2 2 2
## 280 61 1 0 138 166 0 0 125 1 3.6 1 1 2
## 281 42 1 0 136 315 0 1 125 1 1.8 1 0 1
## 282 52 1 0 128 204 1 1 156 1 1.0 1 0 0
## 283 59 1 2 126 218 1 1 134 0 2.2 1 1 1
## 284 40 1 0 152 223 0 1 181 0 0.0 2 0 3
## 285 61 1 0 140 207 0 0 138 1 1.9 2 1 3
## 286 46 1 0 140 311 0 1 120 1 1.8 1 2 3
## 287 59 1 3 134 204 0 1 162 0 0.8 2 2 2
## 288 57 1 1 154 232 0 0 164 0 0.0 2 1 2
## 289 57 1 0 110 335 0 1 143 1 3.0 1 1 3
## 290 55 0 0 128 205 0 2 130 1 2.0 1 1 3
## 291 61 1 0 148 203 0 1 161 0 0.0 2 1 3
## 292 58 1 0 114 318 0 2 140 0 4.4 0 3 1
## 293 58 0 0 170 225 1 0 146 1 2.8 1 2 1
## 294 67 1 2 152 212 0 0 150 0 0.8 1 0 3
## 295 44 1 0 120 169 0 1 144 1 2.8 0 0 1
## 296 63 1 0 140 187 0 0 144 1 4.0 2 2 3
## 297 63 0 0 124 197 0 1 136 1 0.0 1 0 2
## 298 59 1 0 164 176 1 0 90 0 1.0 1 2 1
## 299 57 0 0 140 241 0 1 123 1 0.2 1 0 3
## 300 45 1 3 110 264 0 1 132 0 1.2 1 0 3
## 301 68 1 0 144 193 1 1 141 0 3.4 1 2 3
## 302 57 1 0 130 131 0 1 115 1 1.2 1 1 3
## 303 57 0 1 130 236 0 0 174 0 0.0 1 1 2
## target
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
## 7 1
## 8 1
## 9 1
## 10 1
## 11 1
## 12 1
## 13 1
## 14 1
## 15 1
## 16 1
## 17 1
## 18 1
## 19 1
## 20 1
## 21 1
## 22 1
## 23 1
## 24 1
## 25 1
## 26 1
## 27 1
## 28 1
## 29 1
## 30 1
## 31 1
## 32 1
## 33 1
## 34 1
## 35 1
## 36 1
## 37 1
## 38 1
## 39 1
## 40 1
## 41 1
## 42 1
## 43 1
## 44 1
## 45 1
## 46 1
## 47 1
## 48 1
## 49 1
## 50 1
## 51 1
## 52 1
## 53 1
## 54 1
## 55 1
## 56 1
## 57 1
## 58 1
## 59 1
## 60 1
## 61 1
## 62 1
## 63 1
## 64 1
## 65 1
## 66 1
## 67 1
## 68 1
## 69 1
## 70 1
## 71 1
## 72 1
## 73 1
## 74 1
## 75 1
## 76 1
## 77 1
## 78 1
## 79 1
## 80 1
## 81 1
## 82 1
## 83 1
## 84 1
## 85 1
## 86 1
## 87 1
## 88 1
## 89 1
## 90 1
## 91 1
## 92 1
## 93 1
## 94 1
## 95 1
## 96 1
## 97 1
## 98 1
## 99 1
## 100 1
## 101 1
## 102 1
## 103 1
## 104 1
## 105 1
## 106 1
## 107 1
## 108 1
## 109 1
## 110 1
## 111 1
## 112 1
## 113 1
## 114 1
## 115 1
## 116 1
## 117 1
## 118 1
## 119 1
## 120 1
## 121 1
## 122 1
## 123 1
## 124 1
## 125 1
## 126 1
## 127 1
## 128 1
## 129 1
## 130 1
## 131 1
## 132 1
## 133 1
## 134 1
## 135 1
## 136 1
## 137 1
## 138 1
## 139 1
## 140 1
## 141 1
## 142 1
## 143 1
## 144 1
## 145 1
## 146 1
## 147 1
## 148 1
## 149 1
## 150 1
## 151 1
## 152 1
## 153 1
## 154 1
## 155 1
## 156 1
## 157 1
## 158 1
## 159 1
## 160 1
## 161 1
## 162 1
## 163 1
## 164 1
## 165 1
## 166 0
## 167 0
## 168 0
## 169 0
## 170 0
## 171 0
## 172 0
## 173 0
## 174 0
## 175 0
## 176 0
## 177 0
## 178 0
## 179 0
## 180 0
## 181 0
## 182 0
## 183 0
## 184 0
## 185 0
## 186 0
## 187 0
## 188 0
## 189 0
## 190 0
## 191 0
## 192 0
## 193 0
## 194 0
## 195 0
## 196 0
## 197 0
## 198 0
## 199 0
## 200 0
## 201 0
## 202 0
## 203 0
## 204 0
## 205 0
## 206 0
## 207 0
## 208 0
## 209 0
## 210 0
## 211 0
## 212 0
## 213 0
## 214 0
## 215 0
## 216 0
## 217 0
## 218 0
## 219 0
## 220 0
## 221 0
## 222 0
## 223 0
## 224 0
## 225 0
## 226 0
## 227 0
## 228 0
## 229 0
## 230 0
## 231 0
## 232 0
## 233 0
## 234 0
## 235 0
## 236 0
## 237 0
## 238 0
## 239 0
## 240 0
## 241 0
## 242 0
## 243 0
## 244 0
## 245 0
## 246 0
## 247 0
## 248 0
## 249 0
## 250 0
## 251 0
## 252 0
## 253 0
## 254 0
## 255 0
## 256 0
## 257 0
## 258 0
## 259 0
## 260 0
## 261 0
## 262 0
## 263 0
## 264 0
## 265 0
## 266 0
## 267 0
## 268 0
## 269 0
## 270 0
## 271 0
## 272 0
## 273 0
## 274 0
## 275 0
## 276 0
## 277 0
## 278 0
## 279 0
## 280 0
## 281 0
## 282 0
## 283 0
## 284 0
## 285 0
## 286 0
## 287 0
## 288 0
## 289 0
## 290 0
## 291 0
## 292 0
## 293 0
## 294 0
## 295 0
## 296 0
## 297 0
## 298 0
## 299 0
## 300 0
## 301 0
## 302 0
## 303 0
Gunakan syntax berikut untuk menginisiasi variabel
heart <- heart %>%
mutate_if(is.integer, as.factor) %>%
mutate(sex = factor(sex, levels = c(0,1), labels = c("Female","Male")),
fbs =factor(fbs, levels = c(0,1), labels = c("False","True")),
exang = factor(exang, levels = c(0,1), labels = c("No","Yes")),
target = factor(target, levels = c(0,1),
labels = c("Health","Not Health")))
head(heart)
## age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal
## 1 63 Male 3 145 233 True 0 150 No 2.3 0 0 1
## 2 37 Male 2 130 250 False 1 187 No 3.5 0 0 2
## 3 41 Female 1 130 204 False 0 172 No 1.4 2 0 2
## 4 56 Male 1 120 236 False 1 178 No 0.8 2 0 2
## 5 57 Female 0 120 354 False 1 163 Yes 0.6 2 0 2
## 6 57 Male 0 140 192 False 1 148 No 0.4 1 0 1
## target
## 1 Not Health
## 2 Not Health
## 3 Not Health
## 4 Not Health
## 5 Not Health
## 6 Not Health
Gunakan syntax berikut untuk cross validation
set.seed(250)
idx_heart <- sample(nrow(heart), nrow(heart)*0.8)
train_heart <- heart[idx_heart,]
test_heart <- heart[-idx_heart,]
library(caret) # mengevaluasi model dengan confusion matrix
library(party) # pemodelan decision tree
## Loading required package: modeltools
## Loading required package: stats4
## Loading required package: strucchange
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
##
## Attaching package: 'party'
## The following object is masked from 'package:dplyr':
##
## where
## The following objects are masked from 'package:partykit':
##
## cforest, ctree, ctree_control, edge_simple, mob, mob_control,
## node_barplot, node_bivplot, node_boxplot, node_inner, node_surv,
## node_terminal, varimp
model_heart <- ctree(formula = target ~ ., data = train_heart)
plot(model_heart)
pred_heart <- predict(model_heart, test_heart)
pred_result1 <- cbind(test_heart, pred_heart)
pred_result1
## age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca
## 2 37 Male 2 130 250 False 1 187 No 3.5 0 0
## 7 56 Female 1 140 294 False 0 153 No 1.3 1 0
## 8 44 Male 1 120 263 False 1 173 No 0.0 2 0
## 10 57 Male 2 150 168 False 1 174 No 1.6 2 0
## 20 69 Female 3 140 239 False 1 151 No 1.8 2 2
## 21 59 Male 0 135 234 False 1 161 No 0.5 1 0
## 24 61 Male 2 150 243 True 1 137 Yes 1.0 1 0
## 28 51 Male 2 110 175 False 1 123 No 0.6 2 0
## 37 54 Female 2 135 304 True 1 170 No 0.0 2 0
## 38 54 Male 2 150 232 False 0 165 No 1.6 2 0
## 43 45 Male 0 104 208 False 0 148 Yes 3.0 1 0
## 46 52 Male 1 120 325 False 1 172 No 0.2 2 0
## 48 47 Male 2 138 257 False 0 156 No 0.0 2 0
## 49 53 Female 2 128 216 False 0 115 No 0.0 2 0
## 53 62 Male 2 130 231 False 1 146 No 1.8 1 3
## 56 52 Male 1 134 201 False 1 158 No 0.8 2 1
## 72 51 Male 2 94 227 False 1 154 Yes 0.0 2 1
## 77 51 Male 2 125 245 True 0 166 No 2.4 1 0
## 78 59 Male 1 140 221 False 1 164 Yes 0.0 2 0
## 80 58 Male 2 105 240 False 0 154 Yes 0.6 1 0
## 81 41 Male 2 112 250 False 1 179 No 0.0 2 0
## 90 58 Female 0 100 248 False 0 122 No 1.0 1 0
## 117 41 Male 2 130 214 False 0 168 No 2.0 1 0
## 123 41 Female 2 112 268 False 0 172 Yes 0.0 2 0
## 133 42 Male 1 120 295 False 1 162 No 0.0 2 0
## 136 49 Female 0 130 269 False 1 163 No 0.0 2 0
## 138 62 Male 1 128 208 True 0 140 No 0.0 2 0
## 144 67 Female 0 106 223 False 1 142 No 0.3 2 2
## 162 55 Female 1 132 342 False 1 166 No 1.2 2 0
## 164 38 Male 2 138 175 False 1 173 No 0.0 2 4
## 168 62 Female 0 140 268 False 0 160 No 3.6 0 2
## 169 63 Male 0 130 254 False 0 147 No 1.4 1 1
## 170 53 Male 0 140 203 True 0 155 Yes 3.1 0 0
## 188 54 Male 0 124 266 False 0 109 Yes 2.2 1 1
## 190 41 Male 0 110 172 False 0 158 No 0.0 2 0
## 192 58 Male 0 128 216 False 0 131 Yes 2.2 1 3
## 194 60 Male 0 145 282 False 0 142 Yes 2.8 1 2
## 204 68 Male 2 180 274 True 0 150 Yes 1.6 1 0
## 207 59 Male 0 110 239 False 0 142 Yes 1.2 1 1
## 214 61 Female 0 145 307 False 0 146 Yes 1.0 1 0
## 217 62 Female 2 130 263 False 1 97 No 1.2 1 1
## 225 54 Male 0 110 239 False 1 126 Yes 2.8 1 1
## 226 70 Male 0 145 174 False 1 125 Yes 2.6 0 0
## 236 51 Male 0 140 299 False 1 173 Yes 1.6 2 0
## 241 70 Male 2 160 269 False 1 112 Yes 2.9 1 1
## 243 64 Male 0 145 212 False 0 132 No 2.0 1 2
## 244 57 Male 0 152 274 False 1 88 Yes 1.2 1 1
## 248 66 Male 1 160 246 False 1 120 Yes 0.0 1 3
## 250 69 Male 2 140 254 False 0 146 No 2.0 1 3
## 257 58 Male 0 128 259 False 0 130 Yes 3.0 1 2
## 264 63 Female 0 108 269 False 1 169 Yes 1.8 1 2
## 265 54 Male 0 110 206 False 0 108 Yes 0.0 1 1
## 272 61 Male 3 134 234 False 1 145 No 2.6 1 2
## 277 58 Male 0 146 218 False 1 105 No 2.0 1 1
## 280 61 Male 0 138 166 False 0 125 Yes 3.6 1 1
## 283 59 Male 2 126 218 True 1 134 No 2.2 1 1
## 284 40 Male 0 152 223 False 1 181 No 0.0 2 0
## 287 59 Male 3 134 204 False 1 162 No 0.8 2 2
## 292 58 Male 0 114 318 False 2 140 No 4.4 0 3
## 293 58 Female 0 170 225 True 0 146 Yes 2.8 1 2
## 301 68 Male 0 144 193 True 1 141 No 3.4 1 2
## thal target pred_heart
## 2 2 Not Health Not Health
## 7 2 Not Health Not Health
## 8 3 Not Health Not Health
## 10 2 Not Health Not Health
## 20 2 Not Health Not Health
## 21 3 Not Health Health
## 24 2 Not Health Not Health
## 28 2 Not Health Not Health
## 37 2 Not Health Not Health
## 38 3 Not Health Not Health
## 43 2 Not Health Not Health
## 46 2 Not Health Not Health
## 48 2 Not Health Not Health
## 49 0 Not Health Not Health
## 53 3 Not Health Not Health
## 56 2 Not Health Not Health
## 72 3 Not Health Not Health
## 77 2 Not Health Not Health
## 78 2 Not Health Not Health
## 80 3 Not Health Not Health
## 81 2 Not Health Not Health
## 90 2 Not Health Not Health
## 117 2 Not Health Not Health
## 123 2 Not Health Not Health
## 133 2 Not Health Not Health
## 136 2 Not Health Not Health
## 138 2 Not Health Not Health
## 144 2 Not Health Health
## 162 2 Not Health Not Health
## 164 2 Not Health Not Health
## 168 2 Health Health
## 169 3 Health Health
## 170 3 Health Health
## 188 3 Health Health
## 190 3 Health Health
## 192 3 Health Health
## 194 3 Health Health
## 204 3 Health Not Health
## 207 3 Health Health
## 214 3 Health Health
## 217 3 Health Not Health
## 225 3 Health Health
## 226 3 Health Health
## 236 3 Health Health
## 241 3 Health Not Health
## 243 1 Health Health
## 244 3 Health Health
## 248 1 Health Not Health
## 250 3 Health Not Health
## 257 3 Health Health
## 264 2 Health Health
## 265 2 Health Health
## 272 2 Health Not Health
## 277 3 Health Health
## 280 2 Health Health
## 283 1 Health Not Health
## 284 3 Health Health
## 287 2 Health Not Health
## 292 1 Health Health
## 293 1 Health Health
## 301 3 Health Health
confusionMatrix(pred_heart, test_heart$target)
## Confusion Matrix and Statistics
##
## Reference
## Prediction Health Not Health
## Health 23 2
## Not Health 8 28
##
## Accuracy : 0.8361
## 95% CI : (0.7191, 0.9185)
## No Information Rate : 0.5082
## P-Value [Acc > NIR] : 9.418e-08
##
## Kappa : 0.6731
##
## Mcnemar's Test P-Value : 0.1138
##
## Sensitivity : 0.7419
## Specificity : 0.9333
## Pos Pred Value : 0.9200
## Neg Pred Value : 0.7778
## Prevalence : 0.5082
## Detection Rate : 0.3770
## Detection Prevalence : 0.4098
## Balanced Accuracy : 0.8376
##
## 'Positive' Class : Health
##
pred_heart_train <- predict(model_heart, train_heart)
confusionMatrix(pred_heart_train, train_heart$target)
## Confusion Matrix and Statistics
##
## Reference
## Prediction Health Not Health
## Health 75 11
## Not Health 32 124
##
## Accuracy : 0.8223
## 95% CI : (0.7682, 0.8683)
## No Information Rate : 0.5579
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.6323
##
## Mcnemar's Test P-Value : 0.002289
##
## Sensitivity : 0.7009
## Specificity : 0.9185
## Pos Pred Value : 0.8721
## Neg Pred Value : 0.7949
## Prevalence : 0.4421
## Detection Rate : 0.3099
## Detection Prevalence : 0.3554
## Balanced Accuracy : 0.8097
##
## 'Positive' Class : Health
##
lanjutkan tahapan sesuai materi dan lakukan analisis untuk hasil yang diperoleh