Anda di halaman 1dari 35

Session 21 -

Data Preprocessing
for Machine Learning
(with Python)
Quote of the Day

"No data is clean, but most is useful"


- Dean Abbott

© Copyright by Digital Skola 2020


Table of Content
What will we learn today?
1. What is Data Preprocessing
2. Missing Values Handling
3. Label Encoder
4. One Hot Encoder
5. Scaling (Standardization, Normalization)
6. Train-Test Split

© Copyright by Digital Skola 2020


Data Preprocessing

Kita disini!

© Copyright by Digital Skola 2020


Data Preprocessing
Tahapan praproses data (biasanya):
● Menangani missing values
● Menangani fitur kategorikal
● Scaling / Normalisasi
● Bagi menjadi train dan test data

Tujuannya, supaya:
● Data bisa digunakan untuk melatih model
● Meningkatkan efisiensi model
● Meningkatkan performa model

© Copyright by Digital Skola 2020


Apa itu data processing?

DATA PREPROCESSING MACHINE LEARNING MODEL

© Copyright by Digital Skola 2021


Feature (Fitur)

- Kita bisa sebut setiap kolom sebagai fitur


- Fitur disebut juga atribut atau variabel
© Copyright by Digital Skola 2020
Tipe fitur

Source :https://machinelearningmastery.com/feature-selection-with-real-and-categorical-data/ © Copyright by Digital Skola 2020


Jenis-jenis Fitur

1. Jenis Fitur Kategoris (Categorical)

a. Fitur Nominal
Fitur nominal yang sering juga disebut skala kualitatif adalah skala data yang
berfungsi hanya untuk membedakan dan tidak ada tingkatan diantaranya.
Contoh : Gender, Warna Rambut, Warna Mata

b. Fitur Ordinal
Fitur Ordinal atau skala kualitatif di mana data dikelompokkan menjadi orde
atau tingkatan-tingkatan.
Contoh : Jenjang Pendidikan, Kepuasan Pelanggan

© Copyright by Digital Skola 2021


Jenis-jenis Fitur

2. Jenis Fitur Numeric

a. Fitur Discrete
Data diskrit mewakili item yang dapat dihitung. Daftar nilai yang mungkin ada
batasnya (juga disebut finite); atau mungkin berubah dari 0, 1, 2, hingga tak
terhingga (membuatnya menjadi infinite).
(Contoh : Jumlah Siswa, Jumlah Kendaraan, dll)

b. Fitur Continuous
Data kontinu mewakili pengukuran; kemungkinan nilainya tidak dapat dihitung
dan hanya dapat dijelaskan menggunakan interval pada garis bilangan real.
(Contoh: Tinggi, Suhu, Kecepatan, dll)

© Copyright by Digital Skola 2021


Quick Overview of Supervised ML

© Copyright by Digital Skola 2020


Predictor dan Target

Sebutan lain predictors Sebutan lain target


● Independent variable ● Respon
● Variabel penjelas ● Dependent Variable
● Features ● biasa disimbolkan dengan Y
● Biasa disimbolkan dengan X

© Copyright by Digital Skola 2020


Evaluasi Kualitas Data

1. Missing Value

2. Duplicated Data

3. Inconsistent Data

© Copyright by Digital Skola 2021


Missing Values Handling

© Copyright by Digital Skola 2020


Evaluasi Kualitas Data
1. Missing Value

Jumlah data yang missing > 60%


● Menghapus kolom tersebut

Categoric
● Mengisi dengan kategori paling banyak
● Mengisi dengan “other”

Numeric
● Mengisi dengan rata-rata/median
● Mengisi dengan nilai 0

© Copyright by Digital Skola 2021


Missing Values Handling
Pada umumnya, missing values dapat ditangani menggunakan
cara-cara berikut:
1. Hapus baris
2. Isi missing values untuk fitur numerikal
3. Isi missing values untuk fitur kategorikal

© Copyright by Digital Skola 2020


Missing Values Handling
Hapus baris
Pro :
● Tanpa manipulasi dari
data asli
Kontra :
● Kehilangan informasi
● Buruk jika terlalu
banyak baris yang
dihapus

© Copyright by Digital Skola 2020


Missing Values Handling
(Numerikal) Isi menggunakan mean atau median
Pro :
● Mencegah kehilangan
informasi
Kontra :
● Dapat menimbulkan
kebocoran data
● Bias terhadap pencilan
(gunakan median jika
ada pencilan)

© Copyright by Digital Skola 2020


Missing Values Handling
(Kategorikal) Isi menggunakan mode atau kategori baru
Pro :
● Mencegah kehilangan
informasi
Kontra :
● Menambah
perhitungan saat
encoding

© Copyright by Digital Skola 2020


Missing Values Handling
Untuk cara yang lebih kompleks, bisa dilakukan:
1. Pengisian menggunakan algoritma bantuan (kNN)
2. Memprediksi nilai dari missing values

© Copyright by Digital Skola 2020


Evaluasi Kualitas Data
2. Duplicated Data
Dampaknya Model akan lebih dominan memprediksi data yang duplikat

Cara Mengatasi Menghapus baris yang duplikat

© Copyright by Digital Skola 2021


Evaluasi Kualitas Data
3. Inconsistent Data Value

Dampaknya
● Model tidak akan berjalan (error)
● Performa model menjadi berkurang

Ciri-ciri inconsistencyvalue
● Missing value diisi dengan ‘?’ atau ‘-’ atau karakter lainnya
● Adanya data dengan tipe kategorik di fitur umur
● Beda karakter dan standard penulisan

Cara Mengatasi
● Tiap kasus berbeda-beda

© Copyright by Digital Skola 2021


Apa itu Feature Encoder?

Feature encoding adalah proses mengubah fitur


kategorik menjadi numerik

Mengapa perlu diubah menjadi


numerik?
Dalam metode machine learning sebuah feature
space hanya bisa diimplementasikan dalam
komputasinumerik, sehingga data kategorik perlu
diubah dulu menjadi numerik

Yang sering digunakan ada 2:


● One-Hot Enconding (untuk tipe data nominal)
● Label Encoding (untuk tipe data ordinal)
© Copyright by Digital Skola 2021
Label Encoding
o Mengubah setiap kategori menjadi angka 1,2,3, … dst
o Setiap kategori yang memiliki urutan diubah menjadi bilangan bulat (integer)
o Biasa digunakan untuk data ordinal dan data target dalam metode klasifikasi
multi-class

petallength petalwidth iris_class petallength petalwidth iris_class


1.4 0.2 Iris-setosa 1.4 0.2 1
1.4 0.2 Iris-versicolor 1.4 0.2 2
1.3 0.2 Iris-virginica 1.3 0.2 3

© Copyright by Digital Skola 2021


Imbalanced Data
o Imbalance data terjadi pada kasus klasifikasi ketika fitur targetmemiliki
jumlah yang tidak seimbang

© Copyright by Digital Skola 2021


Bagaimana cara menangani Imbalanced Data?

© Copyright by Digital Skola 2021


One Hot Encoding

● Mengubah setiap kategori sehingga memiliki nilai angka 1 atau angka 0


● 1 menandakan bahwa kategori tertentu pada baris tersebut sedangkan 0
● berarti tidak memiliki kategoritersebut
● Biasa digunakan untuk data nominal
© Copyright by Digital Skola 2020
Feature Scaling

© Copyright by Digital Skola 2020


Feature Scaling
Dilakukan untuk mengubah skala dari fitur, dapat dilakukan 2 cara:

Normalization adalah proses mengubah nilai-nilai suatu feature


menjadi skala tertentu.

Standardization adalah proses mengubah nilai-nilai feature


sehingga mean =0 dan standard deviation =1

© Copyright by Digital Skola 2020


Feature Scaling
Kenapa harus melakukan feature scaling?

● Data dengan skala yang sama akan menjamin algoritma


pembelajaran memperlakukan semua feature dengan adil

● Data dengan skala yang sama dan centered akan mempercepat


algoritma pembelajaran

● Data dengan skala yang sama akan mempermudah interpretasi


beberapa model ML

© Copyright by Digital Skola 2020


Feature Scaling
Kapan kita harus menggunakan feature scaling?

● Gunakan feature scaling jika model ML yang digunakan terpengaruhi


oleh skala data (kNN, Logistic Regression, SVM)

● Gunakan standardization bila kita tahu data punya sebaran


normal/gaussian

● Gunakan standardization bila model yang kita pakai punya asumsi


tentang normalitas (e.g. regresi linear)

● Gunakan normalization apabila tidak memenuhi 2 kriteria di atas

© Copyright by Digital Skola 2020


Kapan Normalization dan kapan Standardization?
Gunakan standardization bila kita tahu data punya sebaran normal/gaussian

Gunakan standardization bila model yang kita pakai punya sensitive tentang
asumsi tentang normalitas (e.g. regresi linear)

Z score (standard score) = (x - u) / s

u = mean
s = deviation

Gunakan normalization (minmax scale) apabila tidak memenuhi 2 kriteria diatas

© Copyright by Digital Skola 2021


Train Test Split

© Copyright by Digital Skola 2020


Let’s code!

https://colab.research.google.com/drive/14b6pP6ftJA6G_sm7h4_6h52dSX8ZVogr?usp=sharing

© Copyright by Digital Skola 2020


Thank
YOU

© Copyright by Digital Skola 2020

Anda mungkin juga menyukai