Data Preprocessing PDF
Data Preprocessing PDF
1
Target
v Memahami tentang cara untuk melakukan :
1. Rescale data.
2. Standardisasi data.
3. Normalisasi data.
4. Binarisasi data.
2
Mengapa data perlu di-Pre-
processing
v Data hampir selalu perlu di-preprocess.
v Algoritma yang berbeda memiliki asumsi yang berbeda tentang
data dan karena itu membutuhkan transformasi data..
v Selanjutnya, jika semua aturan sudah diikuti dari persiapan
data, maka hasil lebih baik dari algoritma yang digunakan aka
didapatkan..
v Pada umumnya, cara ini dilakukan: dengan membuat berbagai
macam view dan transformasi dari data yang ada, kemudian
algoritma dijalankan satu persatu pada tiap view dari dataset.
v Ini akan membantu untuk menunjukkan transformasi mana yang
lebih baik untuk digunakan dan dapat meng-explose strktur dari
persoalan secara umum.
3
Transformasi data
v Akandipelajari 4 data pre-processing yang berbeda yang
digunakan untuk machine learning yang nantinya melalui
tahapan:
Load dataset dari URL
Split dataset ke dalam variable input dan output.
Apply transformasi pre-processing ke dalam variable
input.
Buat ringkasan data untuk menunjukkan perubahan
4
Pre-processing transform
v Pre-processing transform:
Rescale Data
Standardisasi Data
Normalisasi Data
Binarisasi Data (Menjadikan biner)
5
Rescale Data
v # Rescale data (diantara 0 dan 1)
v from pandas import read_csv
v from numpy import set_printoptions
v from sklearn.preprocessing import MinMaxScaler
v filename = 'pima-indians-diabetes.data.csv'
v names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
v dataframe = read_csv(filename, names=names)
v array = dataframe.values
v # separate array into input dan output components
v X = array[:,0:8]
v Y = array[:,8]
v scaler = MinMaxScaler(feature_range=(0, 1))
v rescaledX = scaler.fit_transform(X)
v # summarize transformed data
v set_printoptions(precision=3)
v print(rescaledX[0:5,:])
v Setelah proses rescaling, maka semua nilai data berada pada range
antara 0 dan 1.
6
Standardisasi Data
v Standardisasi adalah Teknik yang berguna untuk
mentransfer atribut ke dalam distribusi Gaussian, dimana
nilai mean =0 dan standart deviasi=1.
v Sangat sesuai untuk algoritma yang mengasumsikan
bahwa data sudah ada dalam distribusi normal dan dapat
bekerja dengan baik dengan data yang sudah di-rescaled.
Algoritma tersebut contohnya, linear regression, logistic
regression dan linear discriminate analysis.
v Standardisasidapat dilakukan menggunakan scikit-learn
StandardScaler class.
v Setelahdistandardisasi, nilai atribut data akan memiliki
mean =0 dan standart deviasi=1. 7
Standardisasi Data
v # Standardisasi data (0 mean, 1 stdev)
v from sklearn.preprocessing import StandardScaler
v from pandas import read_csv
v from numpy import set_printoptions
v filename = 'pima-indians-diabetes.data.csv'
v names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
v dataframe = read_csv(filename, names=names)
v array = dataframe.values
v # separate array into input dan output components
v X = array[:,0:8]
v Y = array[:,8]
v scaler = StandardScaler().fit(X)
v rescaledX = scaler.transform(X)
v # summarize transformed data
v set_printoptions(precision=3)
v print(rescaledX[0:5,:])
8
Normalisasi Data
v Normalisasidalam scikit-learn mengacu pada rescaling
tiap observasi (baris) untuk mendapatkan Panjang =1
(disebut dengan unit norm atau vector dengan Panjang 1
dalam aljabar linear)
v Metode preprocessing ini dapat digunakan untuk dataset
yang bersifat sparse (banyak kosongnya / nol-nya) dengan
atribut yang memiliki skala yang bervariasi pada saat
menggunakan algoritma yang membutuhkan nilai input
pemberat seperti neural networks dan algoritma yang perlu
ukuran jarak seperti k-Nearest Neighbors.
v Normalisasidata dapat dilakukan dengan scikit-learn
Normalizer class.
9
Normalisasi Data
v # Normalisasi data (Panjang = 1)
v from sklearn.preprocessing import Normalizer
v from pandas import read_csv
v from numpy import set_printoptions
v filename = 'pima-indians-diabetes.data.csv'
v names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
v dataframe = read_csv(filename, names=names)
v array = dataframe.values
v # separate array into input dan output components
v X = array[:,0:8]
v Y = array[:,8]
v scaler = Normalizer().fit(X)
v normalizedX = scaler.transform(X)
v # summarize transformed data
v set_printoptions(precision=3)
v print(normalizedX[0:5,:])
10
Binarisasi Data (Membuatnya jadi
biner)
v Kita dapat melakukan transformasi data menggunakan
binary threshold. Semua nilai diatas threshold akan
ditandai dengan 1 dan nilai dibawahnya ditandai sebagai 0.
Disebut juga dengan binarisasi data atau thresholding
data.
v Ini digunakan jika kita punya nilai probabilitas yang akan
kita ubah menjadi nilai crisp.
v Juga digunakan untuk feature engineering dimana anda
ingin menambahkan fitur baru yang mengindikasikan
sesuatu yang berguna.
v Atribut biner baru dapat dibuat dengan menggunakan
scikit-learn Binarizer class. 11
Binarisasi Data (Make Binary)
v # binarisasi
v from sklearn.preprocessing import Binarizer
v from pandas import read_csv
v from numpy import set_printoptions
v filename = 'pima-indians-diabetes.data.csv'
v names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
v dataframe = read_csv(filename, names=names)
v array = dataframe.values
v # separate array into input dan output components
v X = array[:,0:8]
v Y = array[:,8]
v binarizer = Binarizer(threshold=0.0).fit(X)
v binaryX = binarizer.transform(X)
v # summarize transformed data
v set_printoptions(precision=3)
v print(binaryX[0:5,:])
v Semua nilai yang sama atau lebih kecil dari 0 ditandai dengan 0
sedangkan yang lebih besar dari 0 ditandai dengan 1.
12