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

Classification With Python

Berikut ringkasan dokumen tersebut dalam 3 kalimat: Dokumen tersebut membahas tentang klasifikasi menggunakan Python dengan melakukan eksplorasi data dan analisis deskriptif terhadap dataset penyakit jantung. Dataset tersebut terdiri dari 18 fitur numerik dan kategorik dan dilakukan analisis statistik deskriptif, korelasi, serta visualisasi untuk memahami karakteristik data. Tujuan akhir adalah mempelajari tentang k
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan

Classification With Python

Berikut ringkasan dokumen tersebut dalam 3 kalimat: Dokumen tersebut membahas tentang klasifikasi menggunakan Python dengan melakukan eksplorasi data dan analisis deskriptif terhadap dataset penyakit jantung. Dataset tersebut terdiri dari 18 fitur numerik dan kategorik dan dilakukan analisis statistik deskriptif, korelasi, serta visualisasi untuk memahami karakteristik data. Tujuan akhir adalah mempelajari tentang k
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 69

Meeting 22

Classification with Python


Part 1

Tuesday, 19 April 2022


Pendidikan

Sarjana Komunikasi Hubungan


Masyarakat, Universitas Paramadina
Magister Manajemen Marketing,
Universitas Negeri Jakarta

Pengalaman Kerja

Advertising and Promotion, Trax FM


Semarang
Account Executive, Goers
Nama Expert
Sales Executive, Moka POS
Account Manager, Ruangguru
Outline Part 1

● Load & Explore Data


● Data Analysis
Recap: Classification
Classification

● 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

● Kita akan menggunakan 2 jenis dataset:


○ Dummy Dataset
○ Personal Key Indicators of Heart Disease yang tersedia secara bebas di Kaggle

● 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

● Jika kamu diberikan sebuah data


tentang hasil kandidat yang
diwawancara dimana terdiri dari
pasangan informasi antara input
dan label

● Setiap input adalah dictionary


yang terdiri dari atribut seorang
kandidat

● Label yang disediakan memiliki


nilai antara True atau False (Hired
or Not Hired)
Dummy Dataset in Tabular Format

● 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

level lang tweets phd hire

Senior Java no no False

Senior Java no yes False

Mid Python no no True

Junior Python no no True

Junior R yes no True

Junior R yes yes False


Dummy Dataset

● Karena ini hanyalah data dummy, maka


data hanya berisikan 14 kandidat yang
tersedia
● Misalkan kita ambil sampel data baris
pertama.
○ Independent variable (features) 4
fitur/kolom yang tersedia: level, lang,
tweets, phd
○ Dependent variable (Target variable):
kolom ‘label’ bernilai False
○ Interpretasinya adalah dari nilai ke-4
fitur tersebut, kriteria kandidat pada
baris ke-0 dinyatakan tidak diterima
dimana didefinisikan sebagai False.
Dari fitur yang tersedia, mana yang merupakan fitur
numerik dan mana yang kategoris?
Unique Values

● 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

● Eksplorasi selanjutnya yang bisa


dilakukan pada fitur kategoris adalah
melihat nilai mana yang paling sering
muncul, atau yang biasa disebut dengan
mode
● Untuk mendapatkan mode dari suatu
fitur, kita perlu menghitung frekuensi
kemunculan dari masing-masing nilai
unik pada fitur
● Pada fitur ‘level’, kita peroleh frekuensi
kemunculan masing-masing nilai unik
dan mode dari fitur ‘level’ dapat dilihat
seperti gambar di samping.
Sebenarnya, terdapat 2 mode, yaitu Senior dan Junior,
atau yang biasa disebut dengan bimodal.
Bimodal - How to get it?
Bimodal - How to get it?

Kode ini akan membuat dictionary dengan


key adalah nilai ‘level’ dan value adalah
jumlah kemunculannya
Bimodal - How to get it?

Kode ini mencari semua nilai ‘level’ yang


frekuensi kemunculannya sama dengan
max_level_freq atau mode
Coba cari nilai mode untuk fitur-fitur yang lain!
Personal Key Indicators for Health Disease

● Untuk menggunakan data ini, kita akan melakukan langkah-langkah berikut:


○ muat data ke dalam variabel df
○ tampilkan 5 baris pertama dan terakhir dari df
○ tampilkan informasi tentang tipe data dan jumlah missing value dari tiap fitur

● 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

● Tampilan 5 baris pertama data


Dataset Overview

Dari informasi di samping, kita mengetahui bahwa:


● Secara total, dataset ini memiliki 18 fitur dimana
terdiri dari:
○ 4 fitur numerik dan 14 fitur kategorik
● Untuk missing value pada tiap fitur, tidak ditemukan
di tiap fitur. Oleh karena itu, kita tidak perlu
melakukan penanganan missing value apapun
● Fitur yang akan menjadi target variabel adalah
‘HeartDisease’

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

● Karena sifatnya yang eksploratif, setiap orang


mungkin akan memiliki cara dan pendekatan yang
berbeda sesuai dengan asumsi dan kreativitas
masing-masing
● Pada EDA kali ini, kita akan mencoba:
○ menghitung summary statistics dan
correlation antar fitur numerik
○ sebaran nilai pada fitur kategorik
○ visualisasi data untuk fitur numerik dan
kategorik
Data Dictionary

● Untuk membantu kita memahami


cerita di balik dataset, kita perlu
membutuhkan Data Dictionary.
● Berikut adalah deskripsi dari
masing-masing 18 fitur pada
dataset.
Numerical & Categorical Features

● Untuk kemudahan analisis, kita akan membuat variabel yang berisikan fitur-fitur numerik dan kategorik
menggunakan metode .select_dtypes dari Pandas DataFrame berikut:

● Sehingga, diperoleh fitur-fitur numerik dan kategorik sebagai berikut:


Summary Statistics

● 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

● Berbeda dengan fitur numerik, ringkasan statistik untuk


fitur-fitur kategorik terdiri dari jumlah baris non-NaN, jumlah
nilai unik, nilai yang paling sering muncul (mode), dan
frekuensinya.

● Hal menarik apa yang bisa kamu ambil dari tabel ringkasan
statistik di samping?
Plot Summary Statistics

● Kita juga bisa membuat visualisasi yang


mencantumkan summary statistic di dalamnya,
seperti:
○ Box plot
○ Violin plot
Correlation

● Ingat bahwa korelasi mengukur seberapa kuat


hubungan antara kedua variabel numerik.
● Kita bisa menggunakan metode .corr dari
Pandas DataFrame untuk membuat matriks
koefisien korelasi antar pasangan fitur-fitur
numerik
● Untuk lebih jelas dalam mengetahui pasangan
fitur mana yang memiliki koefisien korelasi yang
kuat (mendekati 1 atau mendekati -1), kita bisa
buat plot heatmap berikut
EDA on Categorical Features

● Mari kita lihat contoh 5 baris pertama dari 14 fitur kategorik dari data

● Beberapa eksplorasi yang bisa dilakukan untuk fitur kategorik:


○ Analisis univariat
○ Analisis multivariat
■ Two-way table
■ Bar plot
○ dan lainnya
Number of Unique Values

● Dengan menggunakan metode .nunique, kita peroleh jumlah


nilai unik tiap fitur kategoris seperti gambar di samping

● Kebanyakan dari fitur kategoris pada data hanya memiliki 2


nilai unik saja

● Namun, fitur AgeCategory memiliki jumlah nilai unik yang


paling banyak, yaitu 13 nilai unik
Coba cari tahu nilai unik dan jumlah masing-masing
untuk setiap fitur kategoris tersebut!
Age Category Visualization

● 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?

● Kamu bisa melanjutkan eksplorasi sejauh yang kamu mau


● Eksplorasi yang dilakukan hanya terbatas pada kreativitas yang kamu punya
● Ingat bahwa proses data understanding memakan sekitar 80% dari total waktu yang akan kamu
habiskan untuk membuat sebuah model machine learning
● Selanjutnya, kita akan menyiapkan data untuk digunakan dalam pelatihan model pada sesi berikutnya
TERIMA KASIH

Yuk isi feedback form Ruangguru CAMP:


https://www.surveymonkey.com/r/NPS-CAMP-APR
Meeting 22
Classification with Python
Part 2

Tuesday, 19 April 2022


Pendidikan

Sarjana Komunikasi Hubungan


Masyarakat, Universitas Paramadina
Magister Manajemen Marketing,
Universitas Negeri Jakarta

Pengalaman Kerja

Advertising and Promotion, Trax FM


Semarang
Account Executive, Goers
Nama Expert
Sales Executive, Moka POS
Account Manager, Ruangguru
Outline Part 2

● Model Development
● Model Validation
1. Model Development with Dummy Dataset
-
Predicting who should be hired
Recap - Components of Decision Tree

● root/parent node, yaitu node yang berada di


paling atas pohon.

● decision/interior node, yaitu node yang berisi


pertanyaan yes-no setelah parent node

● leaf (node), yaitu node yang tidak mempunyai


edge atau branch setelahnya

● branch, percabangan respon “ya” dan “tidak”


dari sebuah node

● depth, yaitu jumlah tingkat percabangan pada


decision tree. Pada gambar di samping, nilai
depth adalah 2.
Recap - Entropy

● Dalam hal statistika, entropy bisa dianggap sebagai tingkat “ketakpastian”.

P(merah) = 1 P(merah) = 3/4 P(merah) = 1/2


Low entropy Medium entropy High entropy
1 kemungkinan 4 kemungkinan 6 kemungkinan
Recap - Information Gain

● 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:

1. Hitung entropy target feature pada dataset


2. Hitung entropy dari setiap fitur setelah melakukan pembagian data sesuai dengan nilai pada fitur tersebut
3. Hitung information gain dari selisih antara entropy target dengan entropy masing-masing fitur

● 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

Hitung entropy pada variabel


target
Information Gain for Whole Dataset

Hitung entropy untuk setiap fitur


yang ada
Information Gain for Whole Dataset

● Diperoleh entropy paling rendah adalah level,


sehingga kita akan buat root node
menggunakan fitur level
● Jika kita partisi berdasarkan nilai level,
diperoleh distribusi nilai label seperti di
samping. Sehingga:
○ Child node dari Mid akan menjadi leaf
node
○ Lakukan partisi untuk nilai Junior dan
Senior
Information Gain after Split by Level=”Senior”

Partisi dataset berdasarkan nilai


level, dalam hal ini jika
level=”Senior”
Information Gain after Split by Level=”Senior”

Diperoleh bahwa tweets memiliki


entropy paling rendah setelah
dilakukan partisi berdasarkan
level=”Senior”
Information Gain after Split by Level=”Senior”

● Jika kita partisi berdasarkan


tweets (untuk dataset dengan
kondisi level=”Senior”),
diperoleh distribusi label
seperti di samping.
● Sehingga, untuk setiap nilai
tweets akan menjadi leaf
node
Information Gain after Split by Level=”Junior”

● 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

● Dari hasil eksplorasi sebelumnya:


○ kita tidak perlu menangani missing value karena memang tidak ada missing value sama sekali
(clean data)
○ Dari 4 fitur numerik, fitur BMI memiliki interval nilai yang paling besar dan panjang dibanding fitur
lainnya. Untuk mengoptimalkan pelatihan model, kita akan bisa melakukan standarisasi pada 4
fitur tersebut
○ Dari isi 14 fitur kategoris dibedakan menjadi dua jenis kategoris yaitu berjenis nominal dan
berjenis ordinal. Sehingga, next stepnya adalah kita perlu memberi perlakuan yang berbeda pada
masing-masing fitur tersebut, meskipun sama-sama fitur kategoris
Data Preparation

● 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

● Dalam machine learning, model hanya bisa


“melihat” angka. Model akan “mengasumsikan”
bahwa nilai yang besar lebih superior (punya
dampak lebih) dibandingkan dengan nilai
yang lebih kecil
● Ada 2 alternatif yang paling umum digunakan:
○ Normalisasi, yaitu mengubah nilai menjadi
dalam interval antara 0 sampai 1
○ Standardisasi, yaitu mengubah nilai
sedemikian hingga rata-rata sama dengan 0
dan standar deviasi sama dengan 1
Data Rescaling (Google Colab)
Modeling Time! (Google Colab)
Model Evaluation (Google Colab)
References

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

Yuk isi feedback form Ruangguru CAMP:


https://www.surveymonkey.com/r/NPS-CAMP-APR

Anda mungkin juga menyukai