Anda di halaman 1dari 24

1

Classification Model with Decision Tree Algorithm :


A Case Study in Python (Google Colab)
2

Course Learning Outcome (CLO) :


Mahasiswa mampu menerapkan data analitik dan tools yang digunakan pada data
terstruktur untuk permasalahan regresi dan klasifikasi dalam studi kasus industri

Sub CLO :
Mampu menerapkan model klasifikasi dan tools yang digunakan pada studi kasus industri
3

Predictive Models for Loan Default Risk Assessment


Lembaga keuangan dihadapkan pada kebutuhan untuk menilai kelayakan kredit dari peminjam yang
mengajukan pinjaman. Dalam hal ini, berdasarkan data histori, lembaga keuangan dapat melakukan
prediksi mengenai status risiko pengajuan pinjaman dari calon peminjam. Beberapa atribut yang
dipertimbangkan dalam menilai risiko peminjaman adalah catatan kredit, utang, jaminan, dan
pendapatan.

Atribut Deskripsi
Catatan_kredit Status peminjam berdasarkan peminjaman yang telah dilakukan sebelumnya
Utang Kategori besarnya utang/pinjaman sebelumnya
Jaminan Peminjam menyediakan jaminan atau tidak
Pendapatan Kelas pendapatan yang diperoleh peminjam
Risiko Status risiko peminjam

3
4

Input Data
Seperti biasa sebelum melakukan input data, aktifkan terlebih dahulu library seperti
pandas dan numpy. Selain pandas dan numpy, aktifkan juga library seaborn dan
matplotlib untuk visualisasi data.

4
5

Eksplorasi Data Frame


Eksplorasi data frame untuk menampilkan dataset, jenis data, dan mengetahui ada atau
tidak adanya missing values.

5
6

Eksplorasi Data Frame


Eksplorasi data frame untuk menampilkan dataset, jenis data, dan mengetahui ada atau
tidak adanya missing values.

6
7

Eksplorasi Data Frame


Selanjutnya, eksplorasi data untuk menampilkan distribusi nilai-nilai dari setiap atribut

7
8

Data preprocessing : Label encoding


Dataset awal, mengandung prediktor dengan jenis data kategori, yaitu : Catatan_kredit, Utang,
Jaminan, dan Pendapatan. Agar python dapat membaca sekaligus memproses data tipe kategori
(object) pada proses pembuatan tree, maka perlu dilakukan label encoding terlebih dahulu.

8
9

Data preprocessing : Label encoding


Menampilkan dataframe sebelum dan sesudah label encoding

9
10

Data Splitting
Dataset awal akan dibagi menjadi dua bagian, data training untuk membangun model dan
data testing untuk mengevaluasi model. Sebelum dilakukan pembagian dataset, dataset
dipisahkan menjadi dataset sebagai variabel target/kelas (y) dan dataset sebagai variabel
prediktor (X).

10
11

Model Building
Untuk membangun model menggunakan fungsi DecisionTreeClasifier dari modul
sklearn.tree, pilih kriteria ‘entropy’. Jika sudah dijadikan objek panggil fit (sebagai
method) dan masukkan input X dan y dari data training.

11
12

Actual Value vs Predicted Value


Menampilkan nilai prediksi dan nilai aktual dari status risiko peminjam (data training)

12
13

Actual Value vs Predicted Value


Menampilkan nilai prediksi dan nilai aktual dari status risiko peminjam (data testing)

13
14
Model Evaluation
Evaluasi model dilakukan pada data testing, tetapi kita dapat melakukan perbandingan
dengan hasil pada data training. Evaluasi model akan menampilkan confusion matrix serta
nilai akurasi hasil prediksinya.

14
15
Model Evaluation
Selain confusion matrix dan nilai akurasi, secara keseluruhan dapat menampilkan
classification report sebagai berikut :

15
16

Model Visualization
Membuat tampilan decision tree sebagai berikut :

16
17

Model Visualization

17
18

Cross Validation
Cross validation dengan k-fold cross validation misalnya dengan k=3. Karena ukuran sampel
data training kecil (kurang dari 30), hasil yang diperoleh untuk nilai akurasi setiap folds
relatif berbeda. Ini hanya sebagai ilustrasi saja, Anda dapat mencoba untuk ukuran data
training yang relatif besar.

18
19

Prunning
Selanjutnya dilakukan prunning (pemangkasan) untuk meminimalisir overfitting. Prunning
yang dilakukan dengan menggunakan metode post prunning. Untuk melakukan post
prunning, menggunakan parameter cost complexity yang terlebih dahulu harus dicari nilai
optimalnya sebagai berikut :

19
20
Prunning
Nilai cost complexity yang memaksimumkan akurasi pada data training dan testing dan
memiliki perbedaan akurasi prediksi yang relatif kecil ada di sekitar 0.075

20
21
Prunning Results
Kita lakukan kembali model building dengan memasukkan nilai parameter cost complexity
sebesar 0.075, kemudian visualisasikan hasilnya, bandingkan hasilnya sebelum dan sesudah
prunning

21
Model Visualization 22

(After Prunning)

22
23

Decision Rules

Sebelum membuat decision rules, perlu untuk mengintrepetasikan hasil tampilan decision
tree, yang mana nilai atribut dalam skala interval tertentu berdasarkan pada label
encoding yang telah dilakukan sebelumnya :
Atribut Nilai Label encoding
baik 0
Catatan_kredit buruk 1
tidak_diketahui 2
rendah 0
Utang
tinggi 1
ada 0
Jaminan
tidak_ada 1
0-15 0
Pendapatan 15-35 1
>35 2

Misalnya jika nilai Utang <= 0.5 artinya untuk label encoding 0 (rendah), sebaliknya jika
Utang > 0.5 artinya untuk label encoding 1 (tinggi). Pendapatan <=1.5 untuk 0 atau 1 (0-15
23
atau 15-35).
24

Decision Rules

• JIKA pendapatan=“0-15 atau 15-35” dan utang=“Tinggi” MAKA


Risiko=“Tinggi”

• JIKA pendapatan=“0-15 atau 15-35” dan utang=“Rendah” dan catatan kredit =“Diketahui (baik atau buruk)”
MAKA
Risiko=“Tinggi”

• JIKA pendapatan=“0-15 atau 15-35” dan utang=“Rendah” dan catatan kredit =“Tidak diketahui” MAKA
Risiko=“Rendah”

• JIKA pendapatan=“>35” dan jaminan =“Tidak ada” MAKA


Risiko=“Rendah”

• JIKA pendapatan=“>35” dan jaminan =“Ada” dan catatan kredit =“Diketahui (baik atau buruk)” MAKA
Risiko=“Tinggi”

• JIKA pendapatan=“>35” dan jaminan =“Ada” dan catatan kredit =“Tidak diketahui” MAKA
Risiko=“Rendah”
24

Anda mungkin juga menyukai