Classification With Python
Classification With Python
Pengalaman Kerja
● Klasifikasi merupakan salah satu task dalam supervised learning yang mencoba memprediksi suatu input
termasuk ke dalam kategori / kelas tertentu.
● Contoh kategori: Positive / Negative, Music / Entertainment / Style / News / etc.
Model
Load & Explore Data
Dataset
● Dummy dataset yang digunakan di sini hanya terdiri dari 14 baris dan digunakan sebagai input
untuk simulasi model decision tree yang dibuat dari awal tanpa bantuan dari package.
Dummy Dataset
● Untuk memudahkan, kita bisa mengubah format data dummy sebelumnya menjadi bentuk tabular
● Di bawah ini merupakan penampakan 6 baris pertama data dummy dalam bentuk tabular
● Jika kita amati fitur level, ada berapa nilai unik yang ada di fitur tersebut?
● Coba cari tahu menggunakan Python apa saja dan ada berapa nilai unik pada fitur:
○ lang
○ tweets
○ phd
Mode
● Untuk memastikan bahwa langkah di atas dilakukan dengan benar, silakan jawab pertanyaan berikut:
○ Ada berapa jumlah fitur pada dataset tersebut?
○ Fitur manakah yang memiliki nilai missing value paling banyak?
○ Ada berapa fitur yang memiliki tipe numerik dan kategoris?
Dataset Overview
catatan
Di kondisi real, sangat jarang akan kita temukan dataset
yang sangat rapi dan bersih seperti data di samping.
Codes
(Exploratory) Data Analysis
EDA Objective
● Selanjutnya, kita akan melakukan exploratory data analysis (EDA) pada dataset Heart Disease. Kita
tidak melakukan EDA pada dataset dummy dengan alasan karena data yang disediakan terlalu
sederhana
● Tujuan utama dari EDA adalah melakukan data understanding, meliputi:
○ analisis deskriptif
○ eksplorasi data
○ visualisasi data
○ dll.
EDA Outline
● Untuk kemudahan analisis, kita akan membuat variabel yang berisikan fitur-fitur numerik dan kategorik
menggunakan metode .select_dtypes dari Pandas DataFrame berikut:
● Untuk mengetahui informasi yang ada pada fitur numerik, kita tidak mungkin melihat satu per satu data dari 300 ribuan
data yang ada. Untuk itu, kita menggunakan 5 summary statistic yang terdiri dari min, max, Q1, median, dan Q3 dari
sebuah data (fitur).
● Kita bisa menggunakan metode .describe pada Pandas DataFrame untuk masing-masing fitur-fitur numerik dan
sekaligus kategorik, seperti di bawah ini.
Summary Statistics - Numerical
● Pada tabel summary statistic, tidak hanya akan menampilkan 5 summary statistic, tetapi juga statistik yang
lain seperti rata-rata, standar deviasi, dan jumlah baris non-NaN
● Hal menarik apa yang bisa kamu ambil dari ringkasan statistik di bawah ini?
Summary Statistics - Numerical
● Hal menarik apa yang bisa kamu ambil dari tabel ringkasan
statistik di samping?
Plot Summary Statistics
● Mari kita lihat contoh 5 baris pertama dari 14 fitur kategorik dari data
● Kesimpulan apa yang bisa diambil dari visualisasi AgeCategory di bawah ini?
Age Category Visualization - Code
Other Visualizations
● Sekarang, giliran kamu untuk membuat visualisasi dari fitur-fitur kategoris lainnya.
● Kamu bisa membuat sebuah function yang bisa secara otomatis membuat visualisasi yang serupa dengan plot
sebelumnya
What’s Next?
Pengalaman Kerja
● Model Development
● Model Validation
1. Model Development with Dummy Dataset
-
Predicting who should be hired
Recap - Components of Decision Tree
● information gain didefinisikan sebagai ukuran informasi yang diterima setiap setelah melakukan splitting
(pengujian pada decision node).
● Information gain dapat dihitung menggunakan entropy. Berikut adalah langkah-langkahnya:
● Information gain digunakan untuk menentukan fitur mana yang lebih dulu dijadikan root node ataupun
decision node, yaitu fitur dengan split information gain terbesar.
● Perhitungan information gain akan terus dilakukan (diulang) sampai semua kemungkinan kondisi pada setiap
fitur dihitung atau sesuai “prasyarat tertentu”
Dummy Dataset
● Pada dataset pertama, dummy dataset, kita akan mencoba membuat dari awal untuk membangun model decision
tree
● Algoritma untuk membuat decision tree adalah sebagai berikut:
○ Jika semua label untuk (subset) data sama, maka buat leaf node yang memprediksi label tersebut
○ Jika tidak ada lagi fitur yang bisa digunakan sebagai decision node, maka buat leaf node yang memprediksi
label yang paling banyak
○ Jika tidak, bagi (subset) data berdasarkan fitur yang ada
○ Pilih split sedemikian hingga menghasilkan information gain paling besar
○ Buat decision node dengan split tersebut
○ Ulangi setiap subset hasil split dengan pilihan fitur yang ada
Expected Decision Tree
How do we get the model?
Custom Python Function
Information Gain for Whole Dataset
● Coba lakukan perhitungan information gain untuk subset data dengan kondisi level=”Junior”.
● Lalu, jawab pertanyaan berikut:
○ Berapa nilai entropy dari masing-masing fitur?
○ Bagaimana partisi dan node yang dibuat setelah itu?
Dummy dataset:
Putting It All Together (Google Colab)
2. Model Development of Heart Disease Classification
-
using Personal Key Indicators Heart Disease Dataset
Tapi, sebelum itu…
Actions from EDA
● Ada beberapa langkah yang perlu dilakukan untuk menyiapkan data sebelum melakukan pemodelan:
1. data splitting, yaitu membagi dataset menjadi training, development/validation, dan test.
Dikarenakan jumlah data yang sangat besar, kita akan menggunakan rasio 99:0.5:0.5
2. data rescaling, yaitu mengubah nilai pada fitur numerik sedemikian hingga rata-ratanya 0 dan standar
deviasinya 1
3. categorical encoding, yaitu mengubah representasi fitur-fitur kategorik menjadi angka, dalam format
one-hot matrix atau ordinal.
● Data hasil dari ketiga tahap persiapan di atas kemudian digabung membentuk data baru bersamaan
dengan fitur numerik yang sudah ditransformasi
Rescaling with Standardization
Grus, Joel. (2015). Data Science from Scratch - First Principles with Python. Sebastopol: O’Reilly Media
Kelleher, J. D., Namee, B. M., D'arcy A. (2015). Fundamental of Machine Learning for Predictive data analytics. The
MIT Press.
Serrano, L. G. (2021). Grokking Machine Learning. New York: Manning Publications Co.
https://www.datascience-pm.com/crisp-dm-2/
https://www.thoughtco.com/what-is-the-five-number-summary-3126237
https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/
https://medium.com/udacity/shannon-entropy-information-gain-and-picking-balls-from-buckets-5810d35d54b4
TERIMA KASIH