0% menganggap dokumen ini bermanfaat (0 suara)
167 tayangan

Python Untuk Data Mining

Diunggah oleh

listyantidewi
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
167 tayangan

Python Untuk Data Mining

Diunggah oleh

listyantidewi
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 44

TIM PENYUSUN

PYTHON UNTUK DATA MINING

Disusun Oleh :
Ir. Satrio Hadi Wijoyo, S.Si., S.Pd., M.Kom.
Ir. Admaja Dwi Herlambang, S.Pd., M.Pd.
Aditya Rachmadi, S.ST., M.TI.
Prima Zulvarina, S.S., M.Pd.
Aswin Suharsono, S.T., M.T.

Program Studi Pendidikan Teknologi Informasi


Departemen Sistem Informasi
Fakultas Ilmu Komputer
Universitas Brawijaya
2023

i
Kata Pengantar

Segala Puji bagi allah SWT yang telah melimpahkan nikmatnya sehingga modul pelatihan

data mining menggunakan Bahasa pemrograman Python ini bisa diselesaikan engan baik.

Diharapkan Modul ini dapat membantu peserta pelatihan dalam memahami data mining.

Pada kesempatan ini, penulis menyampaikan banyak terima kasih kepada berbagai pihak

yang ikut berkontribusi dalam penyelesaian modul ini.

Malang, 12 Oktober 2023

Tim Penyusun

ii
Daftar Isi

TIM PENYUSUN .............................................................................................................................................................. i


Kata Pengantar ...............................................................................................................................................................ii
Daftar Isi .......................................................................................................................................................................... iii
Bab I Pengenalan Bahasa Pemprograman Python ........................................................................................1
1.1. Teori Dasar Python ....................................................................................................................................1
1.2. Pengenalan Python ....................................................................................................................................2
1.3. Mengapa Python .........................................................................................................................................2
1.4. Kelebihan dan Kekurangan Python....................................................................................................3
1.5. Proses Instalasi Python ...........................................................................................................................4
1.6. Cara Menjalankan Python .......................................................................................................................9
Bab II Pengantar Data Mining .............................................................................................................................. 11
2.1. Apa dan Mengapa Data Mining? ....................................................................................................... 11
2.2. Konsep Proses Data Mining ................................................................................................................ 12
Bab III Data Pre-Processing .................................................................................................................................. 14
3.1. Konsep Data Preprocessing ................................................................................................................ 14
3.2. Implementasi Python pada Data Pre-processing ..................................................................... 17
Bab IV Klasifikasi........................................................................................................................................................ 24
4.1. Pengertian Klasifikasi ................................................................................................................................. 24
4.2. Algoritma Naïve Bayes ............................................................................................................................... 24
4.3. Algoritma Decision Tree ............................................................................................................................ 25
4.4. Evaluasi Algoritma Klasifikasi ........................................................................................................... 25
4.5. Implementasi Python untuk Algoritma Klasifikasi ................................................................. 26
Bab V Klastering ......................................................................................................................................................... 34
5.1. Pengertian Klastering ............................................................................................................................ 34
5.2. Algoritma K-Means ................................................................................................................................. 34
5.3. Evaluasi Algoritma Klastering ........................................................................................................... 34
5.4. Implementasi Python untuk Algoritma Klastering ................................................................. 36
Daftar Pustaka ............................................................................................................................................................. 40

iii
Bab I Pengenalan Bahasa Pemprograman Python

1.1. Teori Dasar Python


Python dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI, Amsterdam
sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir yang dikeluarkan CWI
adalah 1.2. Tahun 1995, Guido pindah ke CNRI sambil terus melanjutkan pengembangan
Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para
pengembang inti Python pindah ke BeOpen.com yang merupakan sebuah perusahaan
komersial dan membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen.
Setelah mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke
DigitalCreations.
Saat ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang
dikoordinir Guido dan Python Software Foundation. Python Software Foundation adalah
sebuah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python
sejak versi 2.1 dan dengan demikian mencegah Python dimiliki oleh perusahaan komersial.
Saat ini distribusi Python sudah mencapai versi 3.11.5.
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena kecintaan
guido pada acara televisi Monty Python’s Flying Circus. Oleh karena itu seringkali ungkapan-
ungkapan khas dari acara tersebut seringkali muncul dalam korespondensi antar pengguna
Python. Gambar 1. 1. adalah logo dari Bahasa pemrograman Python.

Gambar 1. 1. Logo Python

1
1.2. Pengenalan Python
Python merupakan bahasa pemrograman dinamis yang mendukung pemrograman
berbasis objek. Python dapat digunakan untuk berbagai keperluan pengembangan
perangkat lunak dan dapat berjalan di berbagai platform sistem operasi. Saat ini skrip
python dapat dijalankan pada sistem berbasis : Windows, Linux / Unix, Mac OS X, OS/2,
Amiga. Python didistribusikan dengan beberapa lisensi yang berbeda dari beberapa versi.
Lisensi Python tidak bertentangan baik menurut definisi Open Source maupun General
Public License (GPL). Interpreter Python dapat diperoleh diwebsite resminya di
http://www.python.org
Python merupakan bahasa pemrograman tingkat tinggi yang diracik oleh Guido van
Rossum. Python banyak digunakan untuk membuat berbagai macam program, seperti:
program CLI, Program GUI (desktop), Aplikasi Mobile, Web, IoT, Game, Program untuk
Hacking, dsb. Python juga dikenal dengan bahasa pemrograman yang mudah dipelajari,
karena struktur sintaknya rapi dan mudah dipahami.
1.3. Mengapa Python
Sisi utama yang membedakan Python dengan bahasa lain adalah dalam hal aturan
penulisan kode program. Bagi para programmer di luar python siap-siap dibingungkan
dengan aturan indentasi, tipe data, tuple, dan dictionary. Python memiliki kelebihan
tersendiri dibandingkan dengan bahasa lain terutama dalam hal penanganan modul, ini yang
membuat beberapa programmer menyukai python. Selain itu python merupakan salah satu
produk yang opensource, free, dan multiplatform.
Beberapa fitur yang dimiliki Python adalah :
✓ memiliki kepustakaan yang luas; dalam distribusi Python telah disediakan modulmodul
✓ siap pakai untuk berbagai keperluan.
✓ memiliki tata bahasa yang jernih dan mudah dipelajari.
✓ memiliki aturan layout kode sumber yang memudahkan pengecekan, pembacaan
✓ kembali dan penulisan ulang kode sumber. berorientasi obyek.
✓ memiliki sistem pengelolaan memori otomatis (garbage collection, seperti java)
✓ modular, mudah dikembangkan dengan menciptakan modul-modul baru; modulmodul
✓ tersebut dapat dibangun dengan bahasa Python maupun C/C++.
✓ memiliki fasilitas pengumpulan sampah otomatis, seperti halnya pada Bahasa
2
✓ pemrograman Java, python memiliki fasilitas pengaturan penggunaan ingatan
✓ komputer sehingga para pemrogram tidak perlu melakukan pengaturan ingatan
✓ komputer secara langsung.
1.4. Kelebihan dan Kekurangan Python
a. kelebihan bahasa Python antara lain :
• Tidak ada tahapan kompilasi dan penyambungan (link) sehingga kecepatan perubahan
pada masa pembuatan system aplikasi meningkat.
• Tidak ada deklarasi tipe sehingga program menjadi lebih sederhana, singkat, dan
fleksible.
• Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat
menghindari pencatatan kode.
• Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi
menggunakan tipe objek yang telah ada
• Pemrograman berorientasi objek
• Pelekatan dan perluasan dalam C
• Terdapat kelas, modul, eksepsi sehingga terdapat dukungan pemrograman skala besar
secara modular
• Pemuatan dinamis modul C sehingga ekstensi menjadi sederhana dan berkas biner yang
kecil
• Pemuatan kembali secara dinamis modul phyton seperti memodifikasi aplikasi tanpa
menghentikannya
• Model objek universal kelas Satu
• Konstruksi pada saat aplikasi berjalan
• Interaktif, dinamis dan alamiah
• Akses hingga informasi interpreter
• Portabilitas secara luas seperti pemrograman antar platform tanpa ports
• Kompilasi untuk portable kode byte sehingga kecepatan eksekusi bertambah dan
melindungi kode sumber
• Antarmuka terpasang untuk pelayanan keluar seperti perangkat Bantu system, GUI,
persistence, database, dll

3
b. Beberapa kekurangan bahasa Python antara lain :
o Beberapa penugasan terdapat diluar dari jangkauan python, seperti bahasa
pemrograman dinamis lainnya, python tidak secepat atau efisien sebagai statis, tidak
seperti Bahasa pemrograman kompilasi seperti bahasa C.
o Disebabkan python merupakan interpreter, python bukan merupakan perangkat bantu
terbaik untuk pengantar komponen performa kritis.
o Python tidak dapat digunakan sebagai dasar bahasa pemrograman implementasi untuk
beberapa komponen, tetapi dapat bekerja dengan baik sebagai bagian depan skrip
antarmuka untuk mereka.
o Python memberikan efisiensi dan fleksibilitas tradeoff by dengan tidak memberikannya
secara menyeluruh.
o Python menyediakan bahasa pemrograman optimasi untuk kegunaan, bersama dengan
perangkat bantu yang dibutuhkan untuk diintegrasikan dengan bahasa pemrograman
lainnya.
1.5. Proses Instalasi Python
Proses instalasi python pada Windows dapat dilakukan langkah-langkah sebagai
berikut :
1. Pilih software Python yang diinginkan, contoh memakai di modul ini menggunakan
python versi 3.11.5 yang dapat di download pada alamat situs berikut
https://www.python.org/downloads/ seperti pada Gambar 1. 2. Gambar 1. 3.
Menunjukkan hasil dari proses download pyhton.

4
Gambar 1. 2. Tampilan Website Downloads Python

Gambar 1. 3. Windows Installer Package

2. Klik software python running program kemudian lakukan peng-instalan pada computer
dan ikuti langkah selanjutnya seperti pada Gambar 1. 4 berikut :

5
Gambar 1. 4. Jendela Instalasi Python

3. Pilih direktori tujuan untuk tempat menyimpan program python, lalu klik tombol next.
Jika kita klik tombol Disk Usage maka muncul form yang berisi informasi berapa besar
kapasitas disk yang dibutuhkan/digunakan untuk menginstal python(sekitar 49 MB)
seperti pada Gambar 1. 5 dan Gambar 1. 6 berikut ini :

6
Gambar 1. 5. Jendela Customize Python

Gambar 1. 6 Advanced Options

7
4. Jika kita klik tombol advanced, pilih compile .py ke byte code setelah instalasi, jika tidak
memilih juga tidak apa-apa. Tunggu beberapa menit selama proses instalasi berlangsung
seperti pada Gambar 1. 7 dan tekan finish seperti pada Gambar 1. 8, ikuti petunjuk
selanjutnya :

Gambar 1. 7. Jendela Proses Instalasi

8
Gambar 1. 8. Jendela Instalasi Python selesai dikerjakan

5. Selesai instalasi, komputer Anda telah ada Python, khususnya versi 3.11.5. Anda juga
bisa mendownload langsung Visual Studio Code untuk Python dengan spek komputer
ram dan processor yang rendah.
1.6. Cara Menjalankan Python
Klik tombol start Program Python26 IDLE (Python GUI), IDLE(GUI-Integrated
Development Environment) seperti pada Gambar 1. 9 dengan tampilan Gambar 1. 10 sebagai
berikut :

Gambar 1. 9. Tampilan All App pada Start


9
Gambar 1. 10. Tampilan Awal Python

Pada window Gambar 1. 10, didalam prompt (>>>), tuliskan : print instalasi python selesai.
Kemudian interpreter merespon dengan menampilkan pada layar :
print("Hallo Dunia")
Outputnya seperti Gambar 1. 11 sebagai berikut :

Gambar 1. 11. Contoh menjalankan perintah sederhana pada python

10
Bab II Pengantar Data Mining

2.1. Apa dan Mengapa Data Mining?


Manusia memerlukan melakukan data mining karena (1) manusia memproduksi data
beragam data yang jumlah dan ukurannya sangat besar untuk bidang astronomi, bisnis,
kedokteran, ekonomi, olahraga, cuaca, financial, dan masih banyak bidang. (2) Tejadinya
pertumbuhan data seperti bidang astronomi berdasrakan survey yang dilakukan oleh
perusahaan Sloan Digital Sky Survey di New Mexico pada 2000 bahwa data yang dihasilkan
140TB selama 10 tahun terakhir. Sedangkan survey dari perusahaan Large Synoptic Survey
Telescope di Chile pada tahun 2016 bahwa setiap 5 hari dihasilkan data sebesar 140TB.
Pada bidang biologi dan kedokteran menurut European Bioinformatics Institute (EBI)
dihasilkan data sebesar 20PB tiap tahun (genomic data doubles) dan Genom manusia
berurutan tunggal bisa menghasilkan data sebesar 140GB. Disamping itu terjadinya (3)
perubahan kultur dan perilaku manusia bahwa tiap detik social media menghasilkan data
yang fantastis seperti pada Gambar 2. 1:

Gambar 2. 1. Sosial media menghasilkan data


11
Alasan berikutnya adalah (4) terjadinya tsumani data seperti berikut ini:
✓ Mobile Electronics market : 7B smartphone subscriptions in 2015
✓ Web & Social Networks generates amount of data
• Google processes 100 PB per day, 3 million servers
• Facebook has 300 PB of user data per day
• Youtube has 1000PB video storage
Manusia kebanjiran data tetapi miskin pengetahuan untuk itu diperlukan bagaimana
manusia bisa mengubah data menjadi pengetahuan. (John Naisbitt, Megatrends, 1988)
Data harus olah menjadi pengetahuan supaya bisa bermanfaat bagi manusia. Dengan
pengetahuan tersebut, manusia dapat:
➢ Melakukan estimasi dan prediksi apa yang terjadi di depan
➢ Melakukan analisis tentang asosiasi, korelasi dan pengelompokan antar data dan
atribut
➢ Membantu pengambilan keputusan dan pembuatan kebijakan
Data mining adalah disiplin ilmu yang mempelajari metode untuk mengekstrak pengetahuan
atau menemukan pola dari suatu data yang besar. Ekstraksi dari data ke pengetahuan:
1. data: fakta yang terekam dan tidak membawa arti
2. informasi: rekap, rangkuman, penjelasan dan statistik dari data
3. pengetahuan: pola, rumus, aturan atau model yang muncul dari data

2.2. Konsep Proses Data Mining


a. Definisi data mining
o Melakukan ekstraksi untuk mendapatkan informasi penting yang sifatnya
implisit dan sebelumnya tidak diketahui, dari suatu data (Witten et al., 2011)
o Kegiatan yang meliputi pengumpulan, pemakaian data historis untuk
menemukan keteraturan, pola dan hubungan dalam set data berukuran besar
(Santosa, 2007)
o Extraction of interesting (non-trivial, implicit, previously unknown and
potentially useful) patterns or knowledge from huge amount of data (Han et al.,
2011)

12
Contoh data mining di kampus
• Puluhan ribu data mahasiswa di kampus yang diambil dari sistem informasi
akademik
• Apakah pernah kita ubah menjadi pengetahuan yang lebih bermanfaat? TIDAK!
• Seperti apa pengetahuan itu? Rumus, Pola, Aturan
b. Peran Utama Data Mining
✓ Estimation (estimasi), untuk menerka sebuah nilai yang belum diketahui, missal
menerka penghasilan seseorang ketika informasi mengenai orang tersebut diketahui.
✓ Forecasting (prediksi), untuk memperkirakan nilai masa mendatang, missal
memprediksi stok barang satu tahun ke depan.
✓ Classification (klasifikasi), merupakan proses penemuan model atau fungsi yang
menjelaskan atau membedakan konsep atau kelas data, dengan tujuan untuk dapat
memperkirakan kelas dari suatu objek yang labelnya tidak diketahui.
✓ Clustering (pengelompokan), yaitu pengelompokan mengidentifikasi data yang
memiliki karakteristik tertentu.
✓ Association (asosiasi), dinamakan juga analisis keranjang pasar dimana fungsi ini
mengidentifikasi item-item produk yang kemungkinan dibeli konsumen bersamaan
dengan produk lain.
c. Metode atau algoritma dalam data mining
➢ Estimation (Estimasi): Linear Regression (LR), Neural Network (NN), Deep Learning
(DL), Support Vector Machine, etc
➢ Forecasting (Prediksi/Peramalan): Linear Regression (LR), Neural Network (NN),
Deep Learning (DL), Support Vector Machine (SVM), Generalized Linear Model (GLM),
etc
➢ Classification (Klasifikasi): Decision Tree (CART, ID3, C4.5, Credal DT, Credal C4.5,
Adaptative Credal C4.5), Naive Bayes (NB), K-Nearest Neighbor (kNN), Linear
Discriminant Analysis (LDA), Logistic Regression (LogR), etc
➢ Clustering (Klastering): K-Means, K-Medoids, Self-Organizing Map (SOM), Fuzzy C-
Means (FCM), etc

13
➢ Association (Asosiasi): FP-Growth, A Priori, Coefficient of Correlation, Chi Square,
Support Vecctor Machine (SVM), Generalized Linear Model (GLM), etc

Bab III Data Pre-Processing

3.1. Konsep Data Preprocessing


Tahap data preprocessing merupakan tahapan data mining memiliki peranan sangat
penting untuk menghasilkan data berkualitas sebelum dilakukan modeling. Sebagian besar
data awal hasil pengumpulan datanya masih mentah yang masih terdapat noise, outliers,
missing value, data duplikat, dan data tidak seimbang sehingga perlu dilakukan pengolahan
data agar berkualitas. Data berkualitas setidaknya memiliki karakteristik seperti berikut:
✓ Accuracy : benar atau salah, akurat atau tidak
✓ Completeness : ada yang tidak tercatat, tidak tersedia, …
✓ Consistency : tidak konsisten
✓ Timeliness : apakah terupdate?
✓ Believability : seberapa dipercaya data itu benar?
✓ Interpretability : seberapa mudah data dapat dipahami?
Pada tahap data preprocessing setidaknya perlu melakukan data cleaning, integrasi data,
reduksi data, dan transformasi data.
a. Data Cleaning : Imputasi (missing values), smoothing (noisy data), identifikasi atau
penghapusan (outliers), dan penanganan (data inconsistencies).
Data nyata umumnya kotor dan potensi adanya incorrect data karena instrument faulty,
human or computer error, dan transmission error
o Incomplete (missing value)
Contoh: pekerjaan = “ “
o Noisy: berisi noise, error, atau outlier
Contoh: gaji = “-20” (error)
o Inconsistent: ada perbedaan pada kode dan nama
Contoh: usia = “31”, tanggal lahir =“24/02/2000”
Contoh: sebelumnya rating “1, 2, 3”, sekarang rating “A, B, C”

14
Data yang memiliki permasalahan incomplete data (missing value) dapat ditangani
menggunakan beberapa pendekatan seperti berikut:
o Eliminasi data object
o Dibiarkan (ignore)
o Imputasi nilai secara manual
o Imputasi nilai secara otomatis menggunakan
- Nilai mean, median, mode dari atribut yang ada missing value
- Nilai mean, median, mode untuk semua sampel yang memiliki kelas yang sama
- Nilai estimasi menggunakan metode Bayesian, Decision tree, Regresi, kNearest
Neighbor, Expectation Maximization,…
Contoh penggunaan metode Mean dalam menangani missing value seperti Gambar 3. 1.

Gambar 3. 1. Contoh Penanganan Missing Value dengan Nilai Mean


Contoh pengecekan data outlier seperti Gambar 3. 2.

Gambar 3. 2. Contoh Data Outlier


b. Data Integration : Integrasi dari multiple databases, data cubes, atau files
c. Data reduction : Dimensionality reduction, numerosity reduction, data compression.

15
Pada tahap reduksi data digunakan untuk mengurangi representasi data menjadi
lebih kecil. Alasan penggunaan reduksi data adalah analisis data yang kompleks
memerlukan waktu komputasi yang lama. Solusinya adalah
• Dimensionality reduction (menghapus atribut tidak penting)
• Wavelet transforms
• Principal Components Analysis (PCA)
• Feature subset selection, feature creation
• Numerosity reduction (Data Reduction)
• Regression and Log-Linear Models
• Histograms, clustering, sampling
• Data cube aggregation
• Data compression
d. Data transformation and data discretization : Normalisasi, diskritasi data
Proses transformasi data adalah melakukan perubahan nilai asli ke nilai baru
menggunakan metode atau pendekatan :
• Smoothing: menghapus noise
• Attribute/feature construction
Membuat atribut baru dari atribut yang sudah ada
• Aggregation
• Normalization
✓ min-max normalization
✓ z-score normalization
Normalisasi min-max bekerja dengan melihat jarak nilai terbesar dengan nilai nilai
minimum min(X) dan menskalakan perbedaan ini dengan rentang. Persamaan yang
digunakan untuk Min-Max seperti persamaan (3.1).

16
𝑋−min(𝑋 ) 𝑋−min(𝑋 )

𝑋𝑚𝑚 = = max(𝑋)−min(𝑋) (3.1)
𝑟𝑎𝑛𝑔𝑒(𝑋 )

Standardisasi Z-score sangat luas dalam dunia analisis statistik, bekerja dengan mengambil
perbedaan antara nilai instance dan nilai rata-rata instance, dan menskalakan perbedaan
ini dengan standar deviasi nilai instance. Persamaan yang digunakan untuk Z-score seperti
persamaan (3.2).
𝑋−𝑚𝑒𝑎𝑛(𝑋)
𝑍 − 𝑠𝑐𝑜𝑟𝑒 = (3.2)
𝑆𝐷(𝑋)

3.2. Implementasi Python pada Data Pre-processing


Pada bagian ini akan mencoba implementasi bahasa pemrograman Python untuk
Pre-processing pada dataset Indian liver patient yang bisa di download pada link :
https://drive.google.com/file/d/1YaFF8-
Wo3l1lE0UDwf8M4jYI1XeH5UPe/view?usp=drive_link
Dataset yang telah di download, lalu pindahkan ke folder Python311 seperti Gambar 3. 3.

Gambar 3. 3. Tampilan File Explorer pada Folder Python311

17
Langkah pertama adalah install library yang dibutuhkan, buka CMD (Command
Prompt) dan Ketikkan pip install --upgrade pip dan tekan Enter seperti pada Gambar 3. 4.

Gambar 3. 4. Tampilan CMD untuk upgrade pip


Setelah upgrade pip already, ketikan install pip pandas dan tekan Enter, tunggu sampai
selesai seperti pada Gambar 3. 5. Lakukan dengan cara yang sama untuk install library
lainya, install pip numpy dan install pip seaborn.

Gambar 3. 5. Tampilan CMD untuk pip install pandas


Langkah kedua adalah memanggil library yang dibutuhkan seperti pada Gambar 3. 6.

18
Gambar 3. 6. Pemanggilan Library
Langkah ketiga adalah load dataset menggunakan perintah read_csv jika tipe dataset adalah
csv seperti pada Gambar 3. 7.

Gambar 3. 7. Load Dataset


Untuk melihat 5 data teratas pada dataset menggunakan perintah head() seperti Gambar
3. 8.

Gambar 3. 8. Melihat 5 Data Teratas

19
Selanjutnya ingin melihat jumlah data dan jumlah atribut pada dataset menggunakan
perintah shape seperti Gambar 3. 9.

Gambar 3. 9. Jumlah Data dan Atribut


Perintah untuk melihat nama atribut pada datasetnya menggunakan columns seperti
Gambar 3. 10.

Gambar 3. 10. Nama Atribut pada Dataset


Pada Gambar 3.18 terdapat atribut dengan nama Dataset dan ingin mengganti namanya
dengan Kelas, dapat menggunakan perintah rename pada Gambar 3. 11.

Gambar 3. 11. Merubah Nama Salah Satu Atribut


Pada Atribut Kelas terdapat kategori 1 dan 2, kemudian ingin melakukan perubahan
kategori 1 menjadi Liver dan 2 menjadi Non Liver menggunakan perintah seperti pada
Gambar 3. 12.

Gambar 3. 12. Konversi Kategori pada Atribut Class ke Nominal


Pada Atribut Gender terdapat kategori 1 dan 2, kemudian ingin melakukan perubahan
kategori 1 menjadi Liver dan 2 menjadi Non Liver menggunakan perintah seperti pada
Gambar 3. 12.

20
Konversi Kategori pada Atribut Class ke Nominal
Pada dataset yang digunakan perlu dilakukan pengecekan duplikasi data dan missing value.
Perintah untuk melihat jumlah duplikasi data pada dataset mengunaan perintah
duplicated seperti Gambar 3. 13.

Gambar 3. 13. Menampilkan Data yang Duplikat

21
Data yang duplikat harus dihapus menggunaan perintah drop_duplicates seperti Gambar
3. 14.

Gambar 3. 14. Hapus Data Duplikat


Melakukan pengecekan data terdapat nilai kosong atau missing value menggunakan
perintah isnull() seperti Gambar 3. 15. Atribut Albumin_and_Globulin_Ratio menunjukkan
ada data yang missing value sebanyak 4.

Gambar 3. 15. Cek Dataset Terdapat Missing Values


Menampilkan data yang missing value menggunakan perintah seperti Gambar 3. 16. Nilai
NaN menunjukkan data yang missing value.

Gambar 3. 16. Menampilkan Data Missing Values


Data yang terdapat missing values akan di isi nilainya menggunakan metode mean (rata-
rata) menggunakan perintah mean() seperti Gambar 3. 17.

22
Gambar 3. 17. Nilai Kosong Di Isi Dengan Metode Mean

23
Bab IV Klasifikasi

4.1. Pengertian Klasifikasi


Klasifikasi adalah Teknik yang digunakan untuk membuat skema yang menunjukkan
pengkategorian data dimulai dengan precursor variable (Clarisse, 2018).
Cara kerja dari metode Classification adalah sebuah proses 2 langkah. Langkah
pertama dari classification juga disebut sebagai learning of mapping atau function, suatu
fungsi pemetaan yang bisa memprediksi class label ypada suatu tuple X. Pemetaan ini
direpresentasikan dalam bentuk classification rules, decision tree atau formula matematika.
Dari rules atau tree tersebut dapat digunakan untuk mengklasifikasi tuple baru (Han, 2006).
Langkah kedua adalah classifier yang sudah dibangun akan digunakan untuk mengklasifikasi
data. Pertama, akurasi dari prediksi classifier tersebut diperkirakan. Jika menggunakan
training set untuk mengukur akurasi dari classifier, maka estimasi akan optimis karena data
yang digunakan untuk membentuk classifier adalah training set juga. Oleh karena itu,
digunakan test set, yaitu sekumpulan tuple beserta class label-nya yang dipilih secara acak
dari dataset. Test set bersifat independen dari training set dikarenakan test set tidak
digunakan untuk membangun classifier (Han, 2006).
Metode Classification termasuk dari “supervise learning” karena class label dari
setiap tuple sudah disediakan. Berbeda dengan “unsupervised learning” dimana class label
dari setiap tuple tidak diketahui.Metode yang menggunakan unsupervised learning adalah
metode Clustering (Han, 2006). Terdapat beberapa algoritma machine learning yang
menggunakan metode Classification ini, seperti K Nearest Neighbours, Decision tree (C4.5)
dan Naïve Bayes, Neural Network.
4.2. Algoritma Naïve Bayes
Proses klasifikasi menggunakan metode probabilitas dan statistika sebagaimana
yang telah dikenalkan oleh Thomas Bayes. Menurut Olson dan Delen (2008, p102)
menjelaskan Naïve Bayes untuk setiap kelas keputusan, menghitung probabilitas dengan
syarat bahwa kelas keputusan adalah benar, mengingat vektor informasi obyek. Algoritma
ini mengasumsikan bahwa atribut obyek adalah independen. Probabilitas yang terlibat
dalam memproduksi perkiraan akhir dihitung sebagai jumlah frekuensi dari "master" tabel
keputusan.
24
Naïve Bayes Classifier atau bisa disebut sebagai multinomial naïve bayes merupakan
model penyederhanaan dari algoritma bayes yang cocok dalam pengklasifikasian text atau
dokumen. Tahapan Bayesian classifier adalah:
1. Step 1 : Hitung 𝑃(𝑣𝑗 ) ∏ 𝑃(𝑤𝑘 |𝑣𝑗 ) untuk setiap kategori.
2. Step 2 : Tentukan kategori dengan nilai 𝑃(𝑣𝑗 ) ∏ 𝑃(𝑤𝑘 |𝑣𝑗 ) maksimal
Dimana untuk:
• 𝑃(𝑣𝑗 ) : Probabilitas setiap dokumen terhadap sekumpulan dokumen.
• 𝑃(𝑤𝑘 |𝑣𝑗 ) : Probabilitas kemunculan kata 𝑤𝑘 pada suatu dokumen dengan kategori
class 𝑣𝑗 .
4.3. Algoritma Decision Tree
Decision tree merupakan salah satu metode klasifikasi yang menggunakan
representasi struktur pohon (tree) di mana setiap node merepresentasikan atribut,
cabangnya merepresentasikan nilai dari atribut, dan daun merepresentasikan kelas. Node
yang paling atas dari decision tree disebut sebagai root (Gorunescu, 2011).
Algoritma C4.5 adalah algoritma klasifikasi data dengan teknik pohon keputusan yang
memiliki kelebihan-kelebihan. Kelebihan ini misalnya dapat mengolah data numerik
(kontinyu) dan diskret, dapat menangani nilai atribut yang hilang, menghasilkan aturan-
aturan yang mudah diintrepetasikan dan tercepat diantara algoritma-algoritma yang lain
(Luthfi. 2009). Tahapan Algoritma C45 adalah:
1. Pilih atribut sebagai akar.
2. Buat cabang untuk tiap-tiap nilai.
3. Bagi kasus dalam cabang.
4. Ulangi proses untuk setiap cabang sampai semua kasus pada cabang memiliki kelas
yang sama.
4.4. Evaluasi Algoritma Klasifikasi
Adapun pengujian yang digunakan pada proses klasifikasi yaitu menggunakan
confusion matrix. Confusion matrix adalah suatu metode yang biasanya digunakan untuk
melakukan perhitungan akurasi pada konsep data mining. Rumus ini melakukan
perhitungan dengan 4 keluaran, yaitu: recall, precision, acuraccy dan error rate.
• Recall adalah proporsi kasus positif yang diidentifikasi dengan benar.

25
Rumus dari recall = d/(c+d)
• Precision adalah proporsi kasus dengan hasil positif yang benar.
Rumus dari Precision = d/(b+d)
• Accuracy adalah perbandingan kasus yang diidentifikasi benar dengan jumlah semua kasus
Rumus dari accuracy= (a+c)/(a+b+c+d)
• Error Rate adalah kasus yang diidentifikasi salah dengan sejumlah semua kasus
Rumus dari Error Rate = (b+c)/(a+b+c+d)
Keterangan:
a. Jika hasil prediksi negatif dan data sebenarnya negatif.
b. Jika hasil prediksi positif sedangkan nilai sebenarnya negatif.
c. Jika hasil prediksi negatif sedangkan nilai sebenarnya positif.
d. Jika hasil prediksi positif dan nilai sebenarnya positif.
4.5. Implementasi Python untuk Algoritma Klasifikasi
Penerapkan algoritma Naïve Bayes untuk klasifikasi penyakit liver atau tidak
menggunakan bahasa pemrograman Python.
1. Mempersiapkan Library
Library yang digunakan adalah pandas, numpy, matplotlib, dan seaborn seperti pada Gambar
4. 1.

Gambar 4. 1. Persiapkan Library

2. Load Dataset

26
Pada bagian ini melakukan pemanggilan dataset yang sudah dipersiapkan sebelumnya
dengan nama Indian_liver_patient.csv seperti pada Gambar 4. 2.

Gambar 4. 2. Load Dataset


3. Data Pre-processing
Pada bagian ini melakukan pre-processing dataset yang telah dilakukan seperti subbab 3.2
sebelumnya. Gambar 4. 3 menunjukkan Dataset yang telah dilakukan pra-processing dan
Dataset dibagi menjadi variable X dan Y.

Gambar 4. 3. Hasil Pre-processing Data

4. Pembagian Dataset / Split Dataset

27
Pada bagian ini digunakan untuk membagi dataset menjadi data training dan data testing.
Data training digunakan untuk melatih model dalam belajar dalam mengenai pola
datasetnya, sedangkan data testing digunakan untuk menguji model yang sudah dilatih.
Sebelum Split Dataset lakukan pip install scikit-learn terlebih dahulu pada CMD seperti
Gambar 4. 4. Data training sebanyak 80% dan data testing sebanyak 20% seperti pada
Gambar 4. 5. Tampilan hasil pembagian dataset seperti pada Gambar 4. 6.

Gambar 4. 4. Install scikit-learn

Gambar 4. 5. Pembagian Dataset Training dan Testing

28
Gambar 4. 6. Menampilkan Dataset Training dan Testing
5. Fitting Algoritma Naïve Bayes
Pada bagian ini digunakan melatih Algoritma Naïve Bayes untuk belajar dalam mengenali
pola dataset pada data training seperti Gambar 4. 7.

Gambar 4. 7. Fitting Algoritma Naïve Bayes


6. Prediksi Data Testing dengan Algoritma Naïve Bayes
Pada bagian ini dilakukan untuk melakukan prediksi data testing menggunakan metode
Naïve Bayes seperti Gambar 4. 8.

29
Gambar 4. 8. Prediksi Data Testing dengan Algoritma Naïve Bayes
7. Evaluasi Kinerja dengan Algoritma Naïve Bayes
Pada bagian ini dilakukan evaluasi kinerja metode Naïve Bayes berdasarkan akurasi
menggunakan tabel confusion matrik menggunakan perintah seperti Gambar 4. 10 dan hasil
tabel confusin matrik ditunjukkan pada Gambar 4. 9. Sedangkan untuk perintah plot atau
grafik confusin matrik ditunjukkan pada Gambar 4. 11 dan hasil plot pada Gambar 4. 12.

Gambar 4. 9. Perintah confusin matrik untuk naive bayes

Gambar 4. 10. Perintah Akurasi untuk naive bayes

30
Gambar 4. 11. Perintah plot confusin matrik untuk naive bayes

Gambar 4. 12. Menampilkan plot confusin matrik untuk naive bayes


Evaluasi kinerja metode Naïve Bayes berdasarkan precision dan recall lakukan seperti
perintah pada Gambar 4. 13.

Gambar 4. 13. Perintah precision dan recall untuk naive bayes


8. Fitting Algoritma Decision Tree
Pada bagian ini digunakan melatih Algoritma Decision Tree untuk belajar dalam mengenali
pola dataset pada data training seperti Gambar 4. 14.

31
Gambar 4. 14. Fitting Algoritma Decision Tree
9. Prediksi Data Testing dengan Algoritma Decision Tree
Pada bagian ini dilakukan untuk melakukan prediksi data testing menggunakan Algoritma
Decision Tree seperti Gambar 4. 15.

Gambar 4. 15. Prediksi Data Testing dengan Algoritma Decision Tree


10. Evaluasi Kinerja dengan Algoritma Decision Tree
Pada bagian ini dilakukan evaluasi kinerja metode Decision Tree berdasarkan akurasi
menggunakan tabel confusion matrik dan hasil tabel confusion matrik ditunjukkan pada
Gambar 4. 16.

Gambar 4. 16. Perintah confusion matrik dan akurasi untuk decision tree
Perintah plot atau grafik confusin matrik ditunjukkan pada Gambar 4. 17 dan hasil plot pada
Gambar 4. 18.

32
Gambar 4. 17. Perintah plot confusin matrik untuk decision tree

Gambar 4. 18. Menampilkan plot confusin matrik untuk decision tree


Evaluasi kinerja algoritma decision tree berdasarkan precision dan recall lakukan seperti
perintah pada Gambar 4. 19.

Gambar 4. 19. Perintah precision dan recall untuk decision tree

33
Bab V Klastering
5.1. Pengertian Klastering
Suatu cluster merupakan sekelompok entitas yang memiliki kesamaan dan memiliki
perbedaan dengan entitas dari kelompok lain(Everitt,1980).
Algoritma Clustering bekerja dengan mengelompokkan obyek-obyek data (pola,
entitas, kejadian, unit,hasil observasi) ke dalam sejumlah cluster tertentu (Xu and
Wunsch,2009). Dengan kata lain algoritma Clustering melakukan pemisahan/ pemecahan/
segmentasi data ke dalam sejumlah kelompok (cluster) menurut karakteristik tertentu
Tujuan clustering (pengelompokan) data dapat dibedakan menjadi dua, yaitu
pengelompokan untuk pemahaman dan clustering untuk penggunaan (Prasetyo,2012).
5.2. Algoritma K-Means
K-Means yaitu algoritma yang dimulai dengan menetapkan nilai pusat terlebih dahulu
untuk menjadi pusat sementara dari centroid atau cluster, kemudian dengan menggunakan
rumus menghitung jarak setiap data ke pusat sehingga data yang lebih dekat ke pusat
menjadi satu kelompok dan data yang jauh menjadi kelompok lainnya.
Tahapan Algoritma K-mean clustering sebagai berikut:
1. Tentukan jumlah cluster
2. Alokasikan data ke dalam kelompok secara acak
3. Hitung pusat cluster (centroid) menggunakan mean utk masing-masing kelompok
4. Alokasikan masing-masing data ke centroid terdekat
6. Kembali ke langkah 3, jika masih ada data yang berpindah cluster atau jika nilai
centroid diatas nilai ambang, atau jika nilai pada fungsi obyektif yang digunakan
masih diatas ambang
5.3. Evaluasi Algoritma Klastering
Terdapat beberapa pengujian yang di gunakan pada metode clustering untuk
memastikan hasil dari pengolahan data tersebut, yaitu:
1. Silhouette
Silhouette berfungsi untuk menguji kualitas dari cluster yang dihasilkan. Metode ini
merupakan metode validasi cluster yang menggabungkan metode cohesion dan Separation.
Untuk menghitung nilai silhoutte coefisient diperlukan jarak antar dokumen dengan

34
menggunakan rumus EuclideanDistance. Setelah itu tahapan untuk menghitung nilai
silhoutte coeffisien adalah sebagai berikut:
a. Untuk setiap objek i, hitung rata-rata jarak dari objek i dengan seluruh objek yang
berada dalam satu cluster. Akan didapatkan nilai rata-rata yang disebut ai.
b. Untuk setiap objek i, hitung rata-rata jarak dari objek i dengan objek yang berada di
cluster lainnya. Dari semua jarak rata-rata tersebut ambil nilai yang paling kecil. Nilai
ini disebut bi.
c. Setelah itu maka untuk objek i memiliki nilai silhoutte coefisien :
Si= (bi – ai) / max(ai, bi)
Hasil perhitungan nilai silhoutte coeffisien dapat bervariasi antara -1 hingga 1. Hasil
clustering dikatakan baik jikai nilai silhoutte coeffisien bernilai positif (ai< bi) dan ai
mendekati 0, sehingga akan menghasilkan nilai silhoutte coeffisien yang maksimum yaitu 1
saat ai = 0. Maka dapat dikatakan, jika si = 1 berarti objek i sudah berada dalam cluster yang
tepat. Jika nilai si = 0 maka objek i berada di antara dua cluster sehingga objek tersebut tidak
jelas harus dimasukan ke dalam cluster A atau cluster B. Akan tetapi, jika si = -1 artinya
struktur cluster yang dihasilkan overlapping, sehingga objek i lebih tepat dimasukan ke
dalam cluster yang lain.
2. Purity
Purity adalah sebagai evaluasi kinerja algoritma clustering. Purity akan menghasilkan
persentase akurasi kinerja clustering. Berikut ini merupakan rumus dari
𝑚𝑎𝑥
1
𝑝𝑢𝑟𝑖𝑡𝑦 = ∑ 𝑗|𝑊𝑘 ∩ 𝐶𝑗 |
𝑁
𝑘

Dimana cara kerja purity ini adalah mengambil nilai maksimal dari elemen cluster yang
terbentuk dan kemudian nilai perwakilan cluster tersebut akan dijumlahkan dengan elemen
cluster yang terbentuk dari cluster yang lain sebagai perwakilan setiap cluster, Setelah itu
dibagi dengan jumlah seluruh elemen data

35
5.4. Implementasi Python untuk Algoritma Klastering
Kita bisa menggunakan metode k-means untuk melakukan pengelompokan dataset
Iris yang bisa di download pada link :
https://drive.google.com/file/d/18Y1mFIimAtNy63QM18y5xSnD4jxKPLxs/view?usp=driv
e_link
Dataset yang telah di download, lalu pindahkan ke folder Python311.
1. Mempersiapkan Library
Library yang digunakan adalah pandas, numpy, matplotlib, dan seaborn seperti pada
Gambar 5. 1Gambar 4. 1.

Gambar 5. 1. Persiapkan Library


2. Load Dataset
Pada bagian ini melakukan pemanggilan dataset yang sudah dipersiapkan sebelumnya
dengan nama data_iris.csv seperti pada Gambar 5. 2. Dataset sudah bersih sehingga tidak
dilakukan pre-processing.

36
Gambar 5. 2. Load Dataset
3. Implementasi Algoritma K-Means
Pada tahap ini dilakukan implementasi algoritma K-means menggunakan jumlah K = 3
menggunakan perintah pada Gambar 5. 3.

Gambar 5. 3. Perintah KMeans


4. Menampilkan Hasil Algoritma K-Means dalam bentuk Plot atau Grafik
Pada tahap ini dilakukan menampilkan Hasil Algoritma K-means. Perintah plot data
sebelum dilakukan pengelompokan seperti pada Gambar 5. 4. Gambar 5. 5 menunjukkan
hasil plot sebelum dilakukan pengelompokan.

Gambar 5. 4. Perintah plot data sebelum dilakukan pengelompokan

37
Gambar 5. 5. Menampilkan plot data sebelum dilakukan pengelompokan
Perintah plot data setelah dilakukan pengelompokan dengan K-Means seperti pada
Gambar 5. 6. Gambar 5. 7 menunjukkan hasil plot setelah dilakukan pengelompokan
dengan K-Means.

Gambar 5. 6. Perintah plot data dengan K-Means

38
Gambar 5. 7. Menampilkan plot data dengan K-Means
5. Evaluasi Kinerja dengan Algoritma K-Means
Pada bagian ini dilakukan evaluasi kinerja Algoritma K-Means berdasarkan silhoutte
coeffisien ditunjukkan pada Gambar 5. 8.

Gambar 5. 8. Evaluasi kinerja Algoritma K-Means

39
Daftar Pustaka

Hairani, Modul Pembelajaran Data Mining Teori dan Praktikum dengan Python, Universitas
Bumigora, 2022
Jiawei Han and Micheline Kamber, Data Mining: Concepts and Techniques Third Edition,
Elsevier, 2012
Ian H. Witten, Frank Eibe, Mark A. Hall, Data mining: Practical Machine Learning Tools and
Techniques, 3rd Edition, Elsevier, 2011
Daniel T. Larose, Discovering Knowledge in Data: an Introduction to Data Mining, John
Wiley & Sons, 2005
Matthew North, Data Mining for the Masses, 2012
Daniel T. Larose, Discovering Knowledge in Data An Introduction to Data Mining 2nd ed.,
John Wiley & Sons , 2014
Charu C. Aggarwal , Data Mining: The Textbook, Springer, 2015
Nong Ye, Data Mining Theories, Algorithms, and Examples, CRC Press, 2014
Vijay Kotu, Bala Deshpande , Predictive Analytics and Data Mining Concepts and Practice
with RapidMiner, 1st ed. Elsevier,2015

40

Anda mungkin juga menyukai