0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan22 halaman

2118060-Coding Pre-Processing Dataset Brain Tumor

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan22 halaman

2118060-Coding Pre-Processing Dataset Brain Tumor

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

LAPORAN TUGAS

CODING PRE-PROCESSING
DATASET BRAIN TUMOR

Oleh :
Cornelia Luba Tara Boro
NIM 2118060

INSTITUT TEKNOLOGI NASIONAL MALANG


APRIL 2024
1. Import Library yang akan digunakan. Terdapat beragam library yang dapat
digunakan pada proses image preprocessing, diantaranya adalah natsort yang
berfungsi untuk melakukan sorting pada data output hasil running program,
Matplotlib.pyplot, plotly, seaborn yang digunakan untuk visualisasi data
contohnya untuk menampilkan citra. Numpy untuk melakukan operasi pada citra,
melakukan operasi matematika pada array dan matriks. Library os yang digunakan
memanipulasi path file serta library panda yang digunakan untuk menganalisis
data serta membaca data dalam bentuk csv hingga manipulasi data, dll.

Gambar 1 Import Library


2. Selain itu juga digunakan library cv2 OpenCV (Open Source Computer Vision
Library) yang digunakan untuk membaca citra, memproses dan melakukan operasi
pada citra. Matplotlib digunakan untuk visualisasi data. Skimage digunakan untuk
membaca gambar dari file. Xgboost digunakan untuk algoritma pembelajaran
mesin untuk metode yang akan digunakan. PIL.Image digunakan untuk
memanipulasi gambar.

Gambar 2 Import Library


3. Selain itu juga digunakan beberapa library lainnya seperti sklearn dan mlxtend
yang digunakan untuk mengakses algoritma-algoritma machine learning yang
akan digunakan pada saat akan memproses dataset dengan menggunakan metode
machine learning tertentu.

Gambar 3 Import Library


4. Setelah melakukan import library, selanjutnya adalah melakukan koneksi dengan
google drive untuk dapat membaca dataset yang telah disiapkan sebelumnya. Pada
tahap ini digunakan variabel pd yaitu menggunakan library panda untuk membaca
dataset dalam format csv yang telah disimpan pada drive pada alamat yang
dituliskan.

Gambar 4 Koneksi ke Google Drive


5. Selanjutnya adalah membaca dan menampilkan data pada dataset dengan
menggunakan fungsi iloc, yaitu fungsi yang digunakan untuk mengakses data
berdasarkan posisi indeks data. Pada contoh dibawah, fungsi iloc digunakan 2 kali,
yang pertama untuk membaca data pada indeks ke 0-7 (kolom 1 – 8) dan data pada
indeks 8-14 (kolom 9-14). Secara default, jumlah baris yang terbaca adalah 5 baris.

Gambar 5 Membaca Data dari Dataset


6. Selanjutnya adalah dilakukan pengecekan pada dataset apakah terdapat data null
atau tidak dengan menggunakan fungsi isnull. Data yang bernilai true pada fungsi
isnull kemudian dilakukan sum atau dihitung totalnya karena setiap data true dari
fungsi isnull akan bernilai 1.

Gambar 6 Mengecek nilai null pada dataset


7. Membaca informasi data set dengan menggunakan fungsi info yang merupakan
method DataFrame dari library pandas. Berdasarkan output diketahui RangeIndex
dataset, total kolom, total data pada tiap kolom (data tidak kosong) serta tipe data.
Terdapat 3 jenis tipe data, yaitu image dengan tipe data object data non-angka),
class dengan tipe data int64 (menyimpan data bilangan bulat) dan sisa kolom
lainnya bertipe float (menyimpan data bilangan decimal).

Gambar 7 Informasi Dataset


8. Selanjutnya adalah membaca deksripsi dataset dengan menggunakan method
describe dari library pandas yang kemudian dicetak dalam bentuk string seperti
pada hasil output dibawah ini.

Gambar 8 Deskripsi Statistik Dataset


9. Berikutnya adalah menampilkan jumlah citra yang termasuk kelas 1 atau kelas
Tumor dan jumlah citra kelas 0 atau kelas no tumor dengan menggunakan method
value_counts dari library pandas. Selanjutnya juga menampilkan persentase citra
dengan cara menghitung jumlah sampel kemudian dibagi dengan total sampel
yang dihitung menggunakan method len kemudian dikali dengan 100. Data
persentase dibulatkan menjadi 2 angka decimal seperti pada hasil output.

Gambar 9 Menampilkan Data Citra Tumor dan No Tumor


10. Membuat diagram batang untuk menampilkan total data yang termasuk class
tumor dan no tumor. Langkah pertama adalah menghitung total data dari masing-
masing class. Selanjutnya dari data tersebut dibuat diagram batang dengan
menggunakan fungsi plt.bar dari library matplotlib.pyplot. Karena terdapat 2 class,
maka class tersebut dibedakan menjadi warna merah (no tumor) dan warna
biru(tumor). Sumbu x akan menampilkan index class sehingga diberi label class
dan sumbu y akan menampilkan nilai dari class distribution sehingga diberi label
count. Kemudian, data total masing-masing class ditampilkan pada atas batang
dengan menggunakan perulangan for. Terakhir, diagram batang ditampilkan
dengan menggunakan method plt.show.

Gambar 10 Membuat Diagram Batang


11. Output diagram Batang.

Gambar 11 Output Diagram Batang


12. Membuat strip plot data homogeneity berdasarkan class dengan menggunakan
method sns dari library seaborn. Pertama adalah membuat pallete colors, dimana
0 adalah merah untuk kelas no tumor dan 1 adalah biru untuk kelas tumor.
Selanjutnya adalah membuat figure ukuran 8x5 untuk menampilkan diagram yang
akan dibuat. Berikutnya adalah inisialisasi variabel X dan Y. Variabel Y akan
berisi kolom class dan variabel X akan berisi kolom lainnya selain kolom image
dan class. Selanjutnya adalah pembuatan strip plot dengan menggunakan method
sns dengan meninisialisasi sumbu x dan sumbu y, dengan warna pallete sesuai
dengan yang sudah dibuat sebelumnya serta ukuran marker adalah 4. Selanjutnya
diagram diberi nama, serta pemberian label pada sumbu x dan sumbu y. Terakhir,
diagram ditampilakn melalui method show.

Gambar 12 Script Membuat Strip Plot


13. Hasil Strip Plot

Gambar 13 Digaram Strip Plot


14. Membuat Scatter Plot data mean dan entropy berdasarkan class dengan
menggunakan method sns.scatterplot dati library seaborn. Pertama atur figure
untuk menampilkan scatter plot dengan ukuran 8x5. Selanjutnya mengatur nilai
scatter plot. Sumbu x akan adalah nilai mean, sumbu y adalah nilai entropy dan
warna plot diatur Berdasarkan class yang diperoleh dari data df yaitu dari dataset.
Keterangan class, yaitu 0 untuk class no tumor dan 1 untuk class tumor.

Gambar 14 Scatter Plot


15. Membuat plot distribusi data energy dan entropy berdasarkan class. Pertama
adalah menginisialisasikan variabek _data untuk menampung seluruh data kolom
dari variabel df kecuali kolom image. Selanjutnya adalah membuat distribusi plot
dengan menggunakan metodh sns.displot dengan data diperoleh dari variabel
_data, variabel x menampung data energy, hue atau warna Berdasarkan data class,
kemudian data akan ditampilkan dalam bentuk histogram dalam bentuk tumpukan.
Begitu juga unutk plot distribusi satunya untuk data entropy dengan
mendeklarasikan variabel x dengan data entropy. Class dibedakan menjadi 2, yaitu
data no tumor (0) dan data tumor (0).
Gambar 15 Script Membuat Plot Distribusi

Gambar 16 Plot Distribusi Energy Berdasarkan Class

Gambar 17 Plot Distribusi Entropy Berdasarkan Class


16. Selanjutnya adalah membuat amtriks korelasi. Pertama adalah atur ukuran figure
menjadi 12 x 7 inci. Kemudian deklarasi variabel corrdata untuk menghitung
korelasi. Data yang digunakan adalah data _data, yakni seluruh data pada dataset
kecuali data image. Nilai korelasi berkisar antara 0 dan 1, 0. 0 berarti negative dan
1 berarti positif. Semakin mendekati 0 artinya lemah atau tidak ada korelasi.
Selanjutnya data hasil korelasi akan ditampilkan dalam bentuk heatmap dengan
menggunakan method sns.heatmap dari library seaborn, annot =true untuk
mengatur agar nilai korelasi ditampilkan pada heatmap. Semakin terang warna
heatmap artinya semakin kuat korelasinya.

Gambar 18 Script Membuat Matriks Korelasi


17. Maka, hasil matriks korelasinya adalah sebagai berikut.

Gambar 19 Matriks Korelasi


18. Berikutnya adalah memghitung nilai korelasi antara class dengan nilai-nilai
lainnya dan kemudian menampilkan hasil perhitungan dalam bentuk plot bar.
Menghitung korelasi dengan menggunakan method corr, dimana data yang
dihitung adalah nilai pada variabel x (data selain image dan class) dengan data Y
(data class), selanjutnya hasil perhitungan akan di cetak, seperti pada output
dibawah ini. Selanjutnya, nilai korelasi tersebut dibuat dalam bentuk plot bar
dengan menggunakan method plot,bar.

Gambar 20 Menghitungan Nilai Korelasi


19. Hasil Output Plot Bar korelasi dengan class

Gambar 21 Plot Bar Korelasi


20. Membuat Pie Chart nilai distribusi. Langkah pertama adalah membuat sebuah
fungsi untuk membuat pie chart dengan parameter data yang digunakan untuk
menyimpan nilai dari dataset dan feature yang digunakan untuk menyimpan data
lainnya yang akan dianalisis. Selanjutnya adalah menghitung total data pada tiap
class (tumor dan no tumor), kemudian data tersebut disimpan dalam bentuk array
yang akan digunakan untuk membuat pie chart, lalu data tersebut akan dibuatkan
series dengan menggunakan method Serires. Setelah itu, maka data tersebut akan
dibuatkan dalam bentuk pie chart dengan menggunakan method .plot.pie dengan
ketentuan chart yang suduah dibuat. Pada pice chart juga ditambahkan label sesuai
dengan nama feature atau kolom-kolom variabel. Setelah itu membuat sebuah
figure untuk menampilkan seluruh pie chart dengan total terdapat 6 pie chart yang
dibuat. Subplot diatur dengan menggunakan fungsi plt.subplot(231), nilai dalam
231 artinya akan dibuat 2 baris dan 3 kolom dan subplot pertama akan berada di
indeks ke-1 (baris 1, kolom 1), begitu juga untuk yang lainnya. Selanjutnya
digunakan juga fungsi plt.tight_layout untuk mengatur tata letak tiap subplot.

Gambar 22 Membuat Pie Chart


21. Hasil Output Pie Chart

Gambar 23 Output Pie Chart nilai Distribusi


22. Selanjutnya adalah membagi dataset menjadi data training dan data testing dengan
menggunakan bantuin library scikit-learn. Petama adalah menghitung ukuran
dataset awal (jumlah baris dan kolom), dimana X adalah data seluruh nilai kecuali
image dan class dan Y adalah data class atau nilai yang akan diprediksi nantinya.
Selanjutnya adalah membagi data menjadi data training dan data testing untuk tiap
variabel X dan Y dengan menggunakan fungsi train_test_split. Text_size = 0,2
artinya data akan dibagi menjadi 20% data testing dan sisanya adalah training.
random_state=9 untuk menyimpan method atau proses pembagian data sehingga
hasil akan konsisten. Selanjutnya adalah cetak data yang telah dibagi menjadi data
training dan data testing.

Gambar 24 Membagi Dataset


23. Melatih model Logistic Regression untuk melakukan prediksi. Pertama membuat
fungsi yang digunakan untuk menghitung Tingkat akurasi hasil prediksi dengan
data actual, Tingkat akurasi ini akan ditampilkan dalam bentuk grafik scatter plot,
data prediksi akan ditampilkan dalam warna biru dan data actual berwarna merah,
selain itu, dibawah grafik juga ditampilkan nilai Tingkat akurasi yang dibulatkan
menjadi 3 angkat decimal. Setelah itu, mendefinisikan fungsi untuk membuat
confusion matrix untuk melihat seberapa besar Tingkat akurasi dan eror dari model
yang dilatih. Setelah itu, model logistic regression dibuat dengan menggunakan
fungsi yang sudah ada dari library scikit-learn. Setelah itu, juga dicetak nilai dari
hasil regresi beserta nilai rata-ratanya.

Gambar 25 Model Logistic Regression


24. Grafik Scatter plot dengan menggunakan model linear regression. Dikarenakan
Tingkat akurasi yang sangat tinggi, sehingga grafik merah dan biru berada pada
titik yang sama seperti yang terlihat pada grafik dibawah ini.

Gambar 26 Model Linear Regression


25. Confusion Matriks hasil model linear regression. Berdasarkan output dibawah ini,
maka diketahui bahwa yang terprediksi benar tumor sebanyak 329 dan terprediksi
benar no tumor adalag 410, sedangkan no tumor tapi terprediksi tumor sebanyak
4 dan yang sebaliknya adalah 10.

Gambar 27 Confussion Matriks


26. Selanjutnya adalah melakukan tes model tetapi dengan paramternya adalah fitur
homogeneity dan skewness. Sebelum dilakukan pelatihan terhadap model, terlebih
dahulu dipisah antara data training dan data testing untuk masing-masing fitur.
Kemudian dilakukan pelatihan model dengan menggunakan fungsi yang sudah
tersedia, lalu hasilnya ditampilkan dalam bentuk plot decision.

Gambar 28 Model Linear Regression


27. Maka, hasil outputnya adalah sebagai berikut,

Gambar 29 Decision Boundery for Logistic Regression


28. Selanjutnya adalah pelatihan model yang berbeda, yaitu dengan menggunakan
model SVM (Support Vector Machine). Pertama adalah membuat object svmcla,
dimana model ini menggunakan algoritma BaggingClassifier dan diatur menjadi
menjadi OneVsRestClassifier sehingga bisa melakukan klasifikasi biner. Data
yang digunakan adalah data X_train dan Y_train, kemudian dilakukan prediksi
dengan menggunakan method yang sudah ada lalu selanjutnya ditampilkan dalam
bentuk scatter plot beserta confusion matriksnya.

Gambar 30
29. Hasil Output model SVM

Gambar 31Model SVM


30. Hasil Confusion Matriks

Gambar 32 Confusion Matriks Model SVM


31. Sama seperti pada model Logistic Regression, pada model SVM juga dilakukan
predeksi dengan menggunakan data Homogeneity dan Skewness. Lalu hasilnya
ditampilkan melalui Plot decision seperti pada langkah 32.

Gambar 33 Model SVM


32. Hasil Decision Boundary for SVM.

Gambar 34 Decision Boundary for SVM


33. Selanjutnya adalah melakukan pelatihan terhadap datset dengan menggunakan
algortima naïve-bayes. Pertama adalah membuat objek yang akan digunakan untuk
melatih proses pengujian. Objek dibuat dengan menggunakan fungsi
GaussianNB() dari library sklearn. Kemudian dilakukan prediksi dan data hasil
prediksi ditampilkan dalam bentuk grafik scatter plot dan confusion matriks.

Gambar 35 Metode Naïve Bayes


34. Hasil prediksi dengan menggunakan naïve bayes menunjukan hasil prediksi
dengan Tingkat akurasi yang tinggi, yaitu sebesar 97.078%.

Gambar 36 Metode Naïve Bayes


35. Berikut adalah hasil confussion matriks dengan menggunakan metode Naïve
bayes.

Gambar 37 Confusion Matriks


36. Sama seperti pada model Logistic Regression dan model SVM, pada model Naïve
Bayes juga dilakukan predeksi dengan menggunakan data Homogeneity dan
Skewness. Lalu hasilnya ditampilkan melalui Plot decision seperti pada langkah
37.

Gambar 38 Metode Naïve Bayes


37. Hasil Decision Boundary for Naïve Bayes.

Gambar 39 Decision Boundary for Naïve Bayes


38. Berikutnya adalah pelatihan model dengan metode decision tree dengan
menggunakan method DecisionTreeClassifier dari library sklearn, yang kemudian
hasilnya ditampilkan dalam bentuk grafik scatter plot dan confusion matriks.
Dataset yang digunakan untuk pelatihan data adalah X_train dan Y_train.

Gambar 40 Model Deision Tree


39. Hasil prediksi menunjukan hasil prediksi dengan Tingkat akurasi yang tinggi,
terlihat dari grafik merah dan biru yang berada pada titik yang sama.

Gambar 41 Decision Tree Model


40. Confussion matriks yang menunjukan nilai trus positive dan trus negative sangat
tinggi yang artinya Tingkat akurasi dengan menggunakan model naïve bayes
sangat tinggi juga terlihat dari nilai rata-rata prediksi sebeasar 0.97.

Gambar 42 Decision Tree Confusion Matrix

Anda mungkin juga menyukai