Property Blog

Born and raised on the outskirts of Vancouver, British Columbia, I enjoy typical BC activities such as Water skiing, fishing and camping. I have been in sales my whole life and have now expanded my…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




PROJECT REPORT

===============================================================

Berdasarkan fakta dan data tersebut menjadi sangat penting untuk mengetahui di awal pasien yang memiliki sakit jantung atau tidak, karena dengan mengetahui hal tersebut lebih awal dengan tepat dan akurat maka tenaga medis seperti dokter dapat mengambil tindakan yang tepat dan akurat pula sebelum kondisi pasien menjadi parah dan menyebabkan kematian. Selain itu penyakit jantung juga berdampak secara sosial dan ekonomi karena biaya dan obat-obatan yang cukup mahal, lamanya waktu pemeriksaan,perawatan dan pengobatan, medical check-up dan hal penunjang lain yang diperlukan dalam proses penyembuhan. Oleh karena itu penting sekali dicatat bahwa upaya pencegahan melalui deteksi dini faktor risiko dan upaya pengendaliannya sangat penting dilakukan.

===============================================================

Menjelaskan pernyataan masalah latar belakang:

Menjelaskan tujuan dari pernyataan masalah:

===============================================================

Dataset ini cukup bersih dan isi kolom-kolom sudah sesuai dengan tipe data tetapi terdapat beberapa sel pada tabel yang bisa dipastikan terjadi salah pengisian data karena terdapat nilai yang tidak seharusnya. Pada dataset ini berisi 918 data kumpulan data penyakit jantung dengan 12 variabel yang terdiri dari 7 variabel numerik bertipe integer(6),dan float(1), serta variabel kategorikal bertipe object(5).

Dataset yang digunakan untuk kurasinya adalah:

Adapun variabel-variabel yang terdapat pada dataset adalah :

Berikut penjelasan beberapa istilah medis diatas :

===============================================================

Tabel 1. Analisis Deskriptif pada Dataset

Jika diperhatikan pada tabel diatas, nilai min untuk RestingBP dan Cholesterol adalah 0. Ini merupakan kesalahan pengisian data, karena tidak mungkin ada pasien yang tidak memliki kadar kolesterol dan/atau tidak memiliki tekanan darah. Maka harus diketahui dulu berapa banyak jumlah nilai yang salah tersebut, dan setelah dilakukan pelacakan nilai 0 (nol) pada kolom RestingBP dan kolom Cholesterol ditemukan terdapat 1 buah sel bernilai 0 (nol) pada kolom RestingBP dan 172 buah sel berisi nilai 0 (nol) pada kolom Cholesterol.

Karena banyak nilai yang bernilai 0 pada variabel Cholesterol, maka kita drop saja baris yang berisi nilai 0 pada kolom cholesterol. Sebenarnya kita bisa menggunakan teknik lain, yaitu mengganti nilai tersebut dengan nilai mean atau rata-rata, tapi karena data sakit jantung adalah data sensitif dan variabel yang berkorelasi sangat banyak maka menurut hemat saya sangat berisiko untuk mengganti data dengan mean misalnya karena tidak akan menggambarkan kondisi yang sebenarnya dan bisa menyebabkan bias pada hasilnya. Begitu juga dengan nilai 0 pada RestingBP, kita buang saja dengan .drop(). Sehingga hasilnya menjadi seperti ini :

Tabel 2. Analisis Deskriptif pada Dataset Setelah Nilai 0 Dibuang

Dari tabel dan histogram diatas dapat diperoleh beberapa informasi, antara lain :

Pada diagram diatas ditemukan beberapa informasi berikut :

Dari hasil diatas dapat dilihat variabel apa saja yang berkorelasi kuat secara berurutan dari yang kuat sampai yang lemah dengan variabel ‘HeartDisease’. Variabel Oldpeak/Depression yang secara sederhana bisa ditafsirkan adalah tingkat stess, memiliki korelasi yang paling tinggi dengan penyakit jantung daripada variabel lain dalam dataset ini. Setalah itu diikuti variabel MaxHR atau detak jantung yang dicapai, artinya jumlah detak jantung yang dicapai oleh pasien dapat mengindikasikan apakah pasien mengalami penyakit jantung atau tidak.

===============================================================

Data preparation merupakan tahapan penting dalam proses pengembangan model machine learning. Ini adalah tahap di mana kita melakukan proses transformasi pada data sehingga menjadi bentuk yang cocok untuk proses pemodelan. Ada beberapa tahapan pada data preparation pada proyek ini yaitu encoding data, split dataset, dan standarisasi/normalisasi.

Teknik Data Preparation yang Dilakukan adalah sebagai berikut:

Melakukan Encoding data dengan One Hot Encoding karena terdapat data kategorikal yang akan diolah. Komputer tidak bisa mengolah data kategorikal sehingga kita perlu mengubahnya menjadi bentuk bilangan.

Pada tahap ini dataset dibagi menjadi data latih/train(x) dan data uji/test(y) dengan melakukan Train Test Split. Tahapan ini sangat penting karena machine learning pada dasarnya adalah memerintahkan komputer untuk mempelajari pola-pola pada data yang telah ada, mempelajari data secara historis, menciptakan dan menyimpan pengalaman belajar, meyimpulkan hubungan dari pola yang telah diciptakan tersebut. Setelah itu model menggunakan pola tersebut pada data baru yang belum pernah dilihat, lalu melakukan prediksi berdasarkan pengalaman belajarnya sebelumnya.

Dalam proyek ini, x(fitur) = semua variabel selain variabel ‘HeartDisease’, dan y(target) = variabel ‘HeartDisease’. Komposisi data latih dan data test adalah 70% data latih dan 30% data uji/test.

Tahap selanjutnya adalah melakukan normalisasi data menggunakan StandarScaler(). Normalisasi ini umumnya berguna untuk algoritma klasifikasi. Normalisasi data penting untuk memastikan konsistensi dan kualitas data karena apabila data-data pada dataset memiliki skala atau rentang yang berbeda, atau misalnya terjadi ketimpangan dimana ada data yang terlampau tinggi dan ada yang terlampau rendah maka dapat menyebabkan penyimpangan yang besar pada data. Jadi normalisasi memastikan data berada pada skala yang sama.memastikan data tetap konsisten.

Sebagai sampel, inilah 5 kolom teratas dari dataset setelah semua proses pada data preparation selesai dilakukan :

Tabel 4. Hasil Normalisasi Dataset.

===============================================================

Pada tahap ini beberapa model machine learning akan digunakan untuk mempelajari data. Model yang digunakan dan diuji pada proyek ini adalah :

Gambar 3. Visualisasi Cara Kerja Random Forest.

Untuk mendapatkan hasil yang maksimal dan mendekati keakuratan tertinggi yang ingin dicapai terkadang diperlukan pengaturan parameter dari model. Berikut ini parameter yang dapat diatur/dituning dari Random Forest :

Untuk menggunakan Random Forest dapat menggunakan langkah berikut :

Algoritma KNN menggunakan ‘kesamaan fitur’ untuk memprediksi nilai dari setiap data yang baru. Dengan kata lain, setiap data baru diberi nilai berdasarkan seberapa mirip titik tersebut dalam set pelatihan. KNN bekerja dengan membandingkan jarak satu sampel ke sampel pelatihan lain dengan memilih sejumlah k tetangga terdekat (dengan k adalah sebuah angka positif)[9] . Secara default, metriks penentuan jaraknya adalah euclidean. Terdapat beberapa teknik untuk menghitung jarak suatu data ke data tetangga terdekat lain menggunakan metrik, yaitu Euclidean Distance, Manhattan Distance, Hamming Distance, Minkowski Distance.

Gambar 4. Visualisasi Cara Kerja K — Nearest Neighbor.

Dari gambar di atas, ada sejumlah data point yang terbagi menjadi dua kelas yaitu A (biru) dan B (kuning). Misalnya ada data baru (hitam) yang akan kita prediksi kelasnya menggunakan algoritma KNN. Dari contoh di atas, nilai K yang digunakan adalah 3. Setelah dihitung jarak antara titik hitam ke masing-masing data point lainnya, didapatkan 3 titik terdekat yang terdiri dari 2 titik kuning dan satu titik biru seperti yang diilustrasikan di dalam kotak merah, maka kelas untuk data baru (titik hitam) adalah B (kuning).

Untuk menggunakan K — Nearest Neighbor dapat menggunakan langkah berikut :

Kelebihan :

Gambar 5. Visualisasi Cara Kerja Decision Tree.

Untuk menggunakan DecisionTreeClassifier dapat menggunakan langkah berikut :

Cara kerja dari metode Support Vector Machine khususnya pada masalah non-linear adalah dengan memasukkan konsep kernel ke dalam ruang berdimensi tinggi. Tujuannya adalah untuk mencari hyperplane atau pemisah yang dapat memaksimalkan jarak (margin) antar kelas data. Untuk menemukan hyperplane terbaik, kita dapat mengukur margin kemudian mencari titik maksimalnya. Proses pencarian hyperplane yang terbaik ini adalah ini dari metode Support Vector Machine ini. Jenis kernel pada Support Vector Machine adalah kernel Linear, Polynomial, Radial Basis Function (RBF) atau Gaussian dan Sigmoid.

Berikut illustrasi cara kerja SVM[17] :

Gambar 6. Visualisasi Cara Kerja Support Vector Machine (SVM).

Parameter yang akan dicari nilai optimalnya adalah parameter C untuk jarak margin dan gamma untuk percepatan fungsi pada kernel RBF untuk mendapatkan akurasi classifier model klasifikasi yang optimal. Nilai C yang besar berarti akan memberikan penalti yang lebih besar terhadap error klasifikasi tersebut.

Untuk menggunakan SVM dapat menggunakan langkah berikut :

Dari 4 model yang akan dilatih, Random Forest dipilih sebagai model terbaik sebagai solusi karena memiliki kelebihan yang lebih sesuai jika diterapkan kepada dataset pada proyek ini dibandingkan dengan model yang lain, berikut penjelasannya :

===============================================================

Karena permasalahan yang ingin diselesaikan pada proyek ini adalah kasus klasifikasi, maka akan digunakan juga metrik evaluasi yang sesuai dengan kasus klasifikasi.

Confusion Matrix merupakan alat untuk mengukur seberapa akurat sebuah prediksi dilakukan oleh model. Confusion Matrix secara khusus digunakan untuk menyelesaikan kasus klasifikasi. Nilai hasil dari prediksi model akan langsung dibandingkan dengan data yang sebenarnya(nilai aktual). Hasil prediksi ditampilkan dalam bentuk angka dalam jumlah sebenarnya . Oleh karena itu Confusion Matrix memiliki 4 tabel dengan kombinasi berbeda dari nilai prediksi dan nilai aktual. Isi dari keempat tabel terseut adalah :

True Positive (TP) : Jumlah data yang bernilai Positif dan diprediksi benar sebagai Positif.

False Positive (FP) : Jumlah data yang bernilai Negatif tetapi diprediksi sebagai Positif.

False Negative (FN) : Jumlah data yang bernilai Positif tetapi diprediksi sebagai Negatif.

True Negative (TN) : Jumlah data yang bernilai Negatif dan diprediksi benar sebagai Negatif.

Classification Report merupakan penampil metrik evalusi. Ia menampilkan metrik evaluasi seperti Accuracy (akurasi), Precision, Recall, dan F1-Score atau F-Measure secara langsung dalam bentuk angka-angka final, sehingga tidak perlu lagi menghitung metrik evaluasi secara manual dari hasil keluaran Confusion Matrix.

Gambar 7. Visualisasi Accuracy pada Tabel Confusion Matrix.

Nilai accuracy dapat diperoleh dengan persamaan : Accuracy = (TP+TN)/(TP+FP+FN+TN)

Gambar 8. Visualisasi Precision pada Tabel Confusion Matrix.

Nilai accuracy dapat diperoleh dengan persamaan : Precision = (TP) / (TP + FP)

Nilai accuracy dapat diperoleh dengan persamaan : Recall = TP / (TP + FN)

Nilai F1-Score atau dikenal juga dengan nama F-Measure didapatkan dari hasil Precision dan Recall antara kategori hasil prediksi dengan kategori sebenarnya. F-1 Score menggambarkan perbandingan rata-rata precision dan recall yang dibobotkan.

Nilai accuracy dapat diperoleh dengan persamaan : F-1 Score = (2 * Recall * Precision) / (Recall + Precision)

===============================================================

Gambar 10. Tampilan Akurasi Prediksi Model Random Forest.

Akurasi model Random Forest sudah baik. Model sudah bisa mendeteksi semua pasien yang memilki penyakit jantung, tetapi salah mendeteksi seseorang yang sebenarnya sehat dianggap memiliki penyakit jantung. Jumlah prediksi TP model dibandingkan dengan semua pasien yang benar-benar sakit jantung adalah 105, inilah kenapa nilai Recall class 1 menjadi 1.00 dan precision 0.99. Kesalahan model seperti ini tidak membahayakan karena misalnya nanti terjadi setelah model di deploy tidak akan terlalu berisiko karena pasien yang tidak sakit jantung yang didiagnosa sakit jantung oleh model akan diproses lebih lanjut oleh tenaga kesehatan. Tidak ada resiko jantung apapun yang mengancamnya.

Gambar 11. Tampilan Akurasi Prediksi Model K-Nearest Neighbor

Akurasi model sudah mendekati 90%. Terdapat banyak kesalah model dalam memprediksi data. Kemampuan prediksi model untuk memprediksi pasien yang memiliki penyakit jantung dibandingkan semua pasien yang memiliki penyakit jantung hanya 0,86(precision class=1). Model dengan akurasi seperti ini akan sangat berbahaya jika sampai di deploy karena nanti 11 dari 105 pasien yang sebenarnya memiliki penyakit jantung dianggap sehat oleh model. Hal ini tentunya akan sangat membahayakan bagi pasien. Akibat yang ditimbulkan dari kesalahan prediksi ini adalah pasien yang salah diprediksi oleh model sangat mungkin akan mendapatkan keterlambatan penanganan, karena ternyata pasien sudah mengalami sakit jantung yang parah dan tidak terdeteksi sebelumnya.

Gambar 12. Tampilan Akurasi Prediksi Model Decision Tree.

Akurasi model adalah 100%. Mendapatkan akurasi skor 1 yang bisa ditafsirkan akurasi model 100% akurat. Tetapi pada kenyataannya nilai 1 bukanlah nilai yang ideal. Ini bukanlah hal yang bagus karena tidak ada model yang benar- benar bisa memprediksi secara tepat. Dikhawatirkan model tersebut mengalami overfitting dan terdapat masalah pada model.

Gambar 13. Tampilan Akurasi Prediksi Model Support Vector Machine

Model memiliki akurasi yang tinggi tetapi berada dibawah akurasi model Random Forest. Model memiliki kesalahan prediksi yang tidak membahayakan pasien penyakit jantung. Model mendapatkan nilai metrik precision sebesar 1 untuk class 0 dan 0.95 untuk class 1 karena model mendeteksi 6 orang yang sehat dianggap memiliki penyakit jantung, dan memprediksi dengan tepat semua orang yang memiliki penyakit jantung(recall class 1= 1.00). Ini adalah model yang lumayan baik dan dapat dipertimbangkan untuk di deploy jika bisa ditingkatkan sedikit lagi akurasi modelnya.

Berdasarkan analisis model yang telah dilakukan, maka diperoleh keyakinan berdasarkan metrik-metrik dan visualisasi pendukung bahwa model terbaik yang dapat digunakan sebagai solution statement untuk proyek ini adalah Random Forest dengan beberapa pertimbangan penting berikut :

Model Random Forest yang telah selesai di training dan di uji mendapatkan nilai akurasi tertinggi dibandingkan model yang diuji dengan kasus serta dataset yang sama serta proses yang sama. Model ini memiliki kesalahan prediksi yang nyatanya tidak berisiko kepada pasien yang akan menjadi pengguna nantinya karena model mampu mendeteksi semua pasien yang memiliki penyakit jantung. Meskipun salah memprediksi 1 pasien dari 105 pasien yang sehat dan dianggap memiliki penyakit jantung. Sebaliknya jika akuirasi tinggi tetapi memprediksi bahwa ada pasien yang memiliki penyakit jantung tetapi dianggap sehat, maka model perlu di tuning diulang, ditraining atau bahkan tidak digunakan jika hasilnya tidak memiliki perbedaan.

Sebagai tambahan, untuk mendapatkan data yang lebih akurat dan kualitas prediksi yang lebih baik maka sebenarnya dibutuhkan lebih banyak lagi data untuk dipelajari oleh model machine learning. Variabel-variabel dalam dataset yang digunakan pada proyek ini sangat terbatas dan masih banyak memiliki data yang tidak lengkap sehingga secara tidak langsung akan mempengaruhi kualitas hasil yang diterima.

Referensi

[5] A. Rohman, “KOMPORASI METODE KLASIFIKASI DATA MINING UNTUK PREDIKSI PENYAKIT,” Jurnal Neo Teknika Vol. 2 №2, vol. 2, no. Desember 2016, pp. 21–28, 2016.

[8] H. Ma’ruf, “Penerapan Data Science pada Marketing (Customer Churn Prediction-Python) — Part 2,” 11 Oktober 2020. [Online]. Available: https://hafizmrf3.medium.com/penerapan-data-science-pada-marketing-customer-churn-prediction- python-part-2-c34cdd4bb790. [Diakses 28 November 2022].

[9] P. . D. Putra and D. P. Rini, “Prediksi Penyakit Jantung dengan,” in Prosiding Annual Research Seminar 2019, 2019

[17] Samsudiney, “Penjelasan Sederhana tentang Apa Itu SVM?,” 25 Juli 2019. [Online]. Available: https://medium.com/@samsudiney/penjelasan-sederhana-tentang-apa-itu-svm-149fec72bd02. [Diakses 28 November 2022].

Add a comment

Related posts:

Con un destino hacia ti

Con un destino hacia ti. Quiero que conozcas la verdad sobre mi piel, la desnudez con la que mi mente carga la idea de ti y el esplendor que existe en esta ruta de….

You Can Sell Anything

The novelty of instant life and comic book styled creatures in your bedroom is too hard for any child to resist. For only the low, low amount of your week’s pocket money, you can be the proud owner…

Bitcoin Price Fluctuated With These 2 News!

Bitcoin price tested $30,000 after Fed Chairman Jerome Powell’s fresh statements about rate hikes. During the move, the SEC’s change to the Ark Invest application is on the agenda…Fed’s Jerome…