Laporan Akhir UAS
Laporan Akhir UAS
Laporan Akhir UAS
Disusun Oleh:
Rendi Agus Sucipto 210411100071
Wendy Adji Firmansyah 210411100089
Muhammad Sofa Adiyat Suryono 210411100230
d ( x , y )= √ ❑
dimana, (1)
n (2)
d ( x , y )=∑ ¿ xi − y i
i=1
dimana,
d = jarak antara x dan y
x = data pusat klaster
y = data pada atribut
i = setiap data
n = jumlah data
xi = data pada pusat klaster ke i
yi = data pada setiap data ke i
( )
n ❑
∑|x i− y i|
p
d ( x , y )=
i=1
(3)
dimana,
d = jarak antara x dan y
x = data pusat klaster
y = data pada atribut
i = setiap data
n = jumlah data
xi = data pada pusat klaster ke i
yi = data pada setiap data ke i
2.2.8. Streamlit
Streamlit merupakan library Python yang digunakan untuk membuat
model kemudian dibangun menjadi berbasis web dan mudah digunakan (Prasetyo
& Laksana, 2022). Dalam penggunaan Streamlit ini tidak diperlukan pengetahuan
banyak hal seperti web development, CSS, HTML, atau Javascript, melainkan
hanya menggunakan bahasa pemrograman Python.
a. Input Data
Mengimport dataset penyakit Diabetes Mellitus ke dalam program
python.
b. Pembersihan Data (Pre – Processing Data)
Pada tahap ini dilakukan proses cleaning data yakni memproses
missing value yang terdapat pada dataset. Terdapat beberapa cara untuk
mengatasi missing value, seperti menghapus objek yang memiliki atribut
missing value¸ mengganti missing value dengan nilai rata – rata tiap
variabel, atau menggantinya dengan nilai yang paling sering muncul pada
tiap variabel. Pada penelitian ini, kami menggunakan nilai rata – rata pada
tiap variabel untuk mengatasi missing value tersebut.
c. Tranformasi Data
Pada tahap ini dilakukan proses normalisasi data yaitu membuat
data bernilai dari rentang 0 hingga 1, proses ini bertujuan untuk membantu
mengorganisis data ke dalam bentuk yang lebih efisien, konsisten, dan
berguna pada analisis dan pengolahan lebih lanjut. Sebelum normalisasi,
perlu adanya nilai tertinggi dan terendah pada masing – masing variabel.
Setelah ditentukan nilai tertinggi dan terendah, kemudian dicari nilai baru
menggunakan rumus berikut.
Xold− Xmin
Xnew= (4)
Xmax− Xmin
d. Data Mining
Setelah melakukan tahapan – tahapan di atas, dilakukan proses
data mining menggunakan algoritma yang dipilih antara KNN, Naïve
Bayes, SVM, atau Random Forest. Dilakukan pembagian data training dan
data testing dengan skala 80:20, sehingga diperoleh data training sebanyak
96 dan data testing sebanyak 24 data. Setelah pembagian tersebut,
dilakukan penghitungan jarak antara data training terhadap data testing.
e. Penampilan Akurasi, Presisi, Recall, dan F measure
Setelah melalui tahapan – tahapan sebelumnya, dapat diperoleh
seberapa besar akurasi, presisi, recall, dan F measure yang tercipta dari
tiap – tiap metode yang telah diterapkan. Akurasi diartikan sebagai tingkat
kedekatan antara nilai aktual dengan nilai prediksi. Presisi diartika sebagai
rasio item relevan yang dipilih terhadap semua item yang terpilih. Recall
diartikan sebagai rasio dari item relevan yang dipilih terhadap total jumlah
item relevan yang ada. Sedangkan measure atau kadang disebut juga F1-
Score adalah harmonic mean antara nilai presisi dan recall.
f. Penampilan Grafik
Data ditampilkan dalam bentuk grafik performa dan tabel
confussion matrix.
g. Input Data Baru
Langkah selanjutnya, kami akan melakukan prediksi pada data
baru dengan menginputkan variabel – variabel pada data tersebut.
h. Prediksi Data Baru
kemudian data yang telah diinputkan dilakukan normalisasi
berdasarkan data yang telah ada sebelumnya dan menerapkan algoritma
yang dipilih sebelumnya hingga diperoleh prediksi atau target pada data
tersebut.
a. Input data
Mengimport dataset penyakit Diabetes Mellitus ke dalam Orange.
b. Preprocessing
Pada tahap ini dilakukan pembersihan data dengan mengganti
Missing Value dengan nilai rata – rata serta dilakukan normalisasi data
dengan rentang 0 hingga 1.
c. Data sampler
Pada tahap ini dilakukan pembagian data training dan data testing
dengan skala 80:20, sehingga diperoleh data training sebanyak 96 dan data
testing sebanyak 24 data.
d. Proses Data Mining
Proses data mining dilakukan dengan membandingkan empat
algoritma atau metode yaitu KNN (menggunakan Euclidean dengan nilai
K = 5), Naïve Bayes, SVM, serta Random Forest.
e. Prediction
Setelah melalui tahapan – tahapan sebelumnya, dapat diperoleh
seberapa besar akurasi, presisi, recall, dan F measure yang tercipta dari
tiap – tiap metode yang telah diterapkan.
f. Confussion Matrix
Pada fitur ini, data divisualisasikan dalam bentuk tabel dengan
empat kombinasi berbeda dari nilai prediksi dan nilai aktual.
g. Scatter Plot
Pada fitur ini, data divisualisasikan dalam bentuk grafik
penyebaran.
3.3. Dataset
Data yang digunakan dalam penelitian ini adalah data rekam medis
pasien penyakit diabetes mellitus sebanyak 120 data. Data diperoleh dari RSUD
Syarifah Ambami Rato Ebu Bangkalan. Data ini memiliki enam variabel yaitu
usia, glukosa, tekanan darah, ketebalan kulit, insulin, dan Body Mass Index (BMI)
serta satu target penyakit yang bernilai Diabetes Mellitus dan penyakit lain selain
Diabetes Mellitus (NonDiabetes Mellitus). Berikut merupakan dataset yang
digunakan dalam penelitian ini.
Gambar 3.4 Dataset Penyakit Diabetes Mellitus
Pada gambar 4.2 diatas, fitur yang terdapat di dalam widget data. Source
untuk mengambil dan memilih data yang akan diproses atau dipergunakan,
File Type untuk memilih tipe atau ekstensi dari file yang digunakan seperti
excel, csv, dan lain lain. Selanjutnya, terdapat fitur Columns yang
menunjukkan kolom kolom yang terdapat di dalam file yang pakai. Pada
bagian ini, user dapat mengatur tampilan data yang akan digunakan seperti
mengubah nama kolom, mengubah tipe data dari setiap kolom dan
mengatur role dari setiap kolom seperti features atau target. Pada bagian
kolom yang dipergunakan sebagai target klasifikasi atau prediksi, tipe data
yang digunakan adalah categorical dengan role target.
II. Prepocessing Data. Pada tahapan ini, data dilakukan preprocessing
sebelum benar benar dapat digunakan. Hal ini untuk menghindari
kecacatan data seperti missing value ataupun ketimpangan data besar.
Oleh karena itu, diperlukan processing data agar data yang digunakan bisa
diolah dengan baik.
Gambar 4. 3. Prepocessing Data
Pada bagian ini terdapat bebearapa fitur yang terlihat seperti pada gambar
4.3. Fitur fitur yang tersedia dapat membantu dalam proses preprocessing
data seperti cleaning data dan lain lain.
Pada dataset yang digunakan, masih terdapat missing value untuk setiap
kolom. Maka dari itu, preprocessing data yang pertama dilakukan adalah
melakukan pengisian pada missing value. Ada beberapa metode yang bisa
dipilih seperti average atau rata rata, replace with random value, dan
remove row. Metode yang digunakan adalah dengan menggunakan
average atau rata rata.
Setelah missing value terisi dan dataset memiliki nilai yang lengkap, maka
langkah berikutnya adalah normalisasi data untuk setiap fitur. Terdapat
beberapa pilihan normalisasi data. Normalisasi data yang dipilih yaitu,
Normalize to interval [0, 1]. Fitur ini merubah nilai data menjadi nilai
angka antara 0 sampai 1. Hal ini untuk menghindari ketimpangan data
yang besar pada setiap data di dalam fitur atau variabel.
III. Data Sampler. Data sample digunakan untuk membagi dataset menjadi dua
kelompok data. Biasanya tujuan pembagiannya adalah untuk menentukan
data testing dan data training.
Gambar 4. 4. Data Sampler
Pada gambar 4.5, ditunjukkan fitur untuk untuk widget kNN. Jumlah
neighbour yang dipilih adalah 7. Untuk metric atau jarak yang digunakan
adalah euclidean distance. Hasil pengujian dengan menggunakan metode
metric yang berbeda menghasilkan nilai akhir yang berbeda pula.
Metode pembanding yang pertama adalah Naïve Bayes. Metode ini tidak
memerlukan pengaturan khusus seperti pada metode-metode lainnya.
Gambar 4. 6. SVM
Metode selanjutnya adalah metode SVM. Metode ini memiliki fitur yang
lebih banyak dibandingkan metode lain. Terdapat kolom SVM type,
Kernel, dan Optimization Parameters. Pada bagian SVM Type, nilai Cost
diatur di angka 2. Kernel yang digunakan adalah kernel RBF.
Gambar 4. 7. Random Forest
Pada metode Random Forest, fitur yang disediakan cukup banyak. Jumlah
trees atau pohon diatur di angka 15. Hal ini dilakukan karena jumlah
optimal trees adalah 15 trees.
Pada tabel hasil pengujian didapatkan nilai nilai akhir dari prediksi. CA
menunjukkan nilai akurasi, Prec menunjukkan nilai precision, F1
menunjukkan nilai F, dan nilai Recall. Pada nilai akurasi, nilai tertinggi
ditunjukkan oleh metode kNN dengan K = 7 dan Random Forest dengan
jumlah 15 trees.
Selanjutnya pada kolom F1, didapatkan nilai tertinggi adalah metode kNN
dan Random Forest. Begitu juga untuk kolom precision dan recall. Ini
menunjukkan bahwa metode yang digunakan pada penelitian ini yaitu
kNN memiliki nilai akurasi tertinggi dibandingkan metode
pembandingnya.
VI. Visualization. Pada bagian ini, dilakukan dua output visual dari data yaitu
Confussion Matrix dan Line Plot Grafik. Confussion matrix digunakan
untuk menampilkan performa klasifikasi ke dalam bentuk table atau
matrix.
Pada gambar 4.13, ditunjukkan line plot untuk metode kNN. Line
berwarna merah menunjukkan target class 1 sedangkan line biru
menunjukkan target class 0.
4.1.2. Python
Pengujian nilai akurasi dapat dilakukan dengan memanfaatkan bahasa
pemrograman. Bahasa yang biasa dilakukan dalam pengolahan data adalah bahasa
Python. Hal ini dikarenakan Python memiliki banyak sekali library yang
mendukung Machine Learning termasuk klasifikasi atau prediksi ini. Library yang
biasa digunakan untuk Machine Learning diantaranya adalah ScikitLearn, Pandas,
Numpy, Matplotlib, dll. Library ini berguna dalam pemrosesan data mentah
sampai menjadi data yang memiliki insight. Sedangkan untuk menampilkan hasil
dapat menggunakan IDE seperti Visual Studio Code, Pycharm, dan lainnya atau
juga dapat menggunakan library Streamlit yang berbasis web.
Pada langkah pertama pengujian, yang perlu dilakukan adalah meyiapkan
data yang akan diolah. Selanjutnya, memanggil setiap library yang diperlukan.
Library yang diperlukan dalam mencari nilai akurasi adalah Pandas dan
ScikitLearn. Data yang akan digunakan dalam pemrosesan prediksi perlu
dipanggil terlebih dahulu dengan menggunakan library pandas.
Pada gambar 4.17 diatas, algoritma yang ingin dicari nilai akurasinya
dituliskan ke dalam satu variabel. Metode yang digunakan adalah kNN dengan
menggunakan method KNeighborsClassifier. Parameter yang digunakan adalah
nilai K yang ditunjukkan pada parameter n_neighbors dan metric euclidean yang
menunjukkan metode penghitungan jarak yang digunakan.
Selanjutnya, membuat variabel untuk menampung xTrain, xTest, yTrain,
yTest dengan memanfaatkan method train_test_split. Lalu, berikutnya adalah
menentukan training data dan memasukkannya ke dalam algoritma atau metode
yang digunakan. Langkah berikutnya adalah melakukan prediksi dengan
menggunakan fungsi .predict dengan parameter xTest yaitu data testing. Untuk
menentukan nilai akurasi, dapat menggunakan fungsi ‘accuracy_score’ dengan
parameter data testing asli dengan data testing hasil prediksi. Sistem penggunaan
fungsi ini adalah untuk membandingkan antara data test dengan data hasil
prediksi.
4.2. Aplikasi Sistem
Penggunaan metode klasifikasi untuk memprediksi data dapat
diimplementasikan ke dalam sebuah sistem. Sistem ini ditujukan agar prediksi
data dapat lebih mudah. Data juga dapat divisualisasikan ke dalam bentuk GUI.
Pengembangan sistem prediksi berbasis GUI ini dapat menggunakan bahasa
pemrograman Python. Python memiliki banyak library machine learning yang
dapat digunakan untuk memprediksi data dan library GUI untuk menampilkan
data ke dalam bentuk visual.
4.2.1. Library
Untuk meng-implementasikan prediksi ke dalam bentuk visual, diperlukan
library library di dalam python untuk melakukan proses pengolahan data sampai
menjadi bentuk data visual. Library python yang digunakan untuk melakukan
klasifikasi atau prediksi data adalah sebagai berikut.
a. Streamlit. Library ini merupakan library berbasis web untuk melakukan
visualisasi data.
b. Scikitlearn. Library ini digunakan untuk melakukan proses data dari data
mentah sampai ke hasil prediksi atau klasifikasi.
c. Pandas. Library ini digunakan untuk melakukan prepocessing data.
d. Numpy. Library ini digunakan untuk mengolah data menjadi sebuah
grafik performa.
e. Matplotlib. Library ini digunakan untuk visualisasi data ke dalam bentuk
grafik ataupun confussion matrix
f. Seaborn. Sama halnya dengan matplotlib, metode ini juga akan digunakan
untuk visualisasi data.
Untuk langkah pada gambar 4.19, dilakukan untuk memberi judul pada
halaman streamlit. Judul yang diberikan adalah GUI Prediksi Diabetes
Mellitus dengan output yang dihasilkan adalah sebagai berikut.
Gambar 4. 20. Output Judul
Pada gambar 4.21, data yang akan diolah diambil dengan menggunakan
Pandas dengan memanggil modul atau method read_excel. Pada parameter,
dibutuhkan setidaknya satu parameter yaitu nama file yang dipanggil.
Sedangkan, pemanggilan nama sheet bersifat opsional tergantung pada file
excel yang dipanggil. Selanjutnya, data ditampilkan dengan menggunakan
streamlit dataframe. Output yang dihasilkan terdapat pada gambar 4.22.
Gambar 4. 22. Output Dataset
Pada gambar 4.23, pada section missing value, bagian tersebut berguna
untuk menampilkan jumlah missing value untuk setiap fitur. Hal ini cukup
diperlukan untuk mengetahui variabel atau fitur apa saja yang perlu dilakukan
proses pengisian missing value. Seperti yang terlihat pada gambar 4.24
dibawah dimana terdapat fitur yang masih memiliki missing value.
Gambar 4. 24. Jumlah Missing Value
Oleh karena itu, diperlukan pengisian missing value seperti yang terdapat
pada section Fill Missing Value di gambar 4.23. Pengisian missing value
tersebut menggunakan metode mean untuk mengisi dengan rata rata untuk
setiap fitur. Output yang dihasilkan terdapat pada gambar 4.25 dan 4.26
dibawah.
Pada gambar 4.30, pemilihan metode perlu diatur agar pemilihan fitur
setiap metode bisa berubah bergantung pada metode yang dipilih seperti
contoh, apabila memilih metode kNN maka fitur yang ditampilkan adalah
pemilihan nilai K. Sehingga output yang akan dihasilkan terlihat seperti pada
gambar 4.31 dibawah.
Pada bagian akhir, terdapat pengujian dari prediksi berupa input data baru
lalu memprediksi hasil akhir dengan metode yang ditentukan. Pengguna dapat
melakukan input untuk setiap fitur atau variabel lalu sistem akan menentukan
prediksi hasil akhir apakah data tersebut tergolong ke dalam Diabetes Mellitus
atau Bukan.
Gambar 4. 38. Prediksi Data Baru
Pada gambar 4.39 diatas, merupakan fitur yang tersedia untuk metode
atau algoritma SVM. Pengguna dapat melakukan input pada nilai Cost dan
pemilihan kernel. Nilai cost yang optimal dengan akurasi tertinggi terdapat
di angka 5.2 sampai 10. Pilihan kernel yang tersedia adalah linear,
polynomial, rbf, sigmoid, precomputed.
Pada gambar 4.40 diatas, nilai akurasi yang didapat dari metode SVM
dengan nilai Cost dan Kernel seperti pada gambar 4.39 sebelumnya adalah
79%. Nilai ini merupakan yang tertinggi dibandingkan dengan nilai Cost
lain di rentang 0 sampai 10.
2. Random Forest
Pada metode ini, untuk melakukan klasifikasi dan penghitungan nilai
performa klasifikasi, masih tetap menggunakan library scikit-learn. Scikt-
learn menyediakan method untuk melakukan klasifikasi dengan metode
Random Forest.
Metode ini memiliki parameter utama yaitu n estimator atau
banyaknya tree dan max_depth yang menunjukkan kedalaman atau
banyaknya node untuk setiap tree. Parameter diatas nantinya akan berupa
input user untuk mencari tahu pilihan fitur yang menghasilkan nilai
akurasi tertinggi.
Code yang digunakan untuk implementasi metode Random Forest
menggunakan python terdapat pada gambar 4.29 dan 4.30. Pada gambar
4.29 merupakan code pengkondisian dimana fitur yang menjadi input user
nantinya bergantung pada metode yang dipilih. Pada gambar 4.30, code
digunakan untuk memilih algoritma untuk prediksi berdasarkan input pada
gambar 4.29 dan parameter metode juga berdasarkan input yang
digunakan pada gambar 4.29.
Pada gambar 4.41, fitur yang tersedia untuk Random Forest adalah
max_depth dan n_estimators. Untuk max_depth diberikan rentang 2-15
dan n_estimators memiliki rentang nilai 1-100. Metode ini memiliki
akurasi yang cukup tinggi apabila dibandingkan dengan metode lain.
Berdasarkan hasil uji coba, nilai akurasi tertinggi didapatkan dari nilai
max_depth di rentang 3 – 5 dan n_estimators di angka 22 – 55.
3. Metode Minkowski
Untuk metode manhattan distance, didapatkan nilai akurasi, presisi,
dan recall untuk setiap K seperti dibawah ini.
Nilai K Akurasi Precision Recall
3 62% 70% 1
5 67% 70% 1
7 71% 70% 1
9 79% 70% 1
BAB V
PENUTUP
5.1. Kesimpulan
Kesimpulan yang didapatkan dari penelitian ini adalah sebagai berikut.
1. Pengujian nilai akurasi dapat dilakukan dengan menggunakan
software Orange ataupun Python.
2. Nilai akurasi bergantung pada fitur untuk setiap metode seperti
nilai K pada kNN atau nilai Cost pada SVM.
3. Nilai akurasi paling besar untuk setiap metode didapat dari nilai K
= 9 untuk kNN dengan metode jarak Euclidean Distance, nilai Cost
2-5 untuk SVM dengan Kernel apapun, serta maxdepth = 5 dan
tree = 15 untuk Random Forest.
4. Nilai akurasi terbesar untuk metode kNN berada di angka 79%.
5. Nilai akurasi terbesar untuk metode SVM di angka 79%.
6. Nilai akurasi terbesar untuk metode Random Forest di angka 83%.
7. Nilai akurasi untuk metode Naïve Bayes di angka 75%.
8. Metode KNN masih cukup dapat diandalkan apabila dilihat dari
nilai akurasinya yang cukup tinggi. Bahkan tertinggi kedua setelah
Random Forest dan hanya memiliki selisih sekitar 4% saja.
9. Implementasi sistem ke dalam GUI untuk saat ini dapat berjalan
dengan baik dengan output sesuai harapan.
5.2. Saran
1. Penelitian masih dapat dikembangkan dengan menambahkan
variabel tambahan yang mendukung hasil dari diagnosis Diabetes
Mellitus.
2. Jumlah dataset yang digunakan dapat ditambahkan agar nilai
akurasi bisa lebih baik dan hasil prediksi menjadi lebih akurat.
3. Nilai K yang digunakan dapat menggunakan nilai K yang lebih
besar agar nilai akurasi bisa lebih baik. Hal ini dikarenakan
pemilihan nilai K yang tepat dapat mempengaruhi baik tidaknya
nilai akurasi yang dihasilkan.
DAFTAR PUSTAKA