Python Untuk Data Mining
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.
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
Tim Penyusun
ii
Daftar Isi
iii
Bab I Pengenalan Bahasa Pemprograman 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
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
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 :
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 :
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 :
10
Bab II Pengantar Data Mining
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
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.
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)
𝑆𝐷(𝑋)
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.
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.
19
Selanjutnya ingin melihat jumlah data dan jumlah atribut pada dataset menggunakan
perintah shape seperti Gambar 3. 9.
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.
21
Data yang duplikat harus dihapus menggunaan perintah drop_duplicates seperti Gambar
3. 14.
22
Gambar 3. 17. Nilai Kosong Di Isi Dengan Metode Mean
23
Bab IV Klasifikasi
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.
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.
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.
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.
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.
30
Gambar 4. 11. Perintah plot confusin matrik untuk naive bayes
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. 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
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.
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.
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.
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.
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