0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan21 halaman

Modul 4 - Data Preprocessing

Dokumen ini membahas tentang data preprocessing yang mencakup pengenalan, setup lingkungan, dan berbagai teknik seperti data cleaning, data transforming, dan encoding. Ditekankan pentingnya penggunaan library Python seperti Pandas, NumPy, dan Scikit-learn untuk mempersiapkan data sebelum digunakan dalam pengembangan AI. Berbagai metode seperti train/test split, normalisasi, standardisasi, dan penanganan nilai null serta duplikat juga dijelaskan untuk meningkatkan kualitas data.

Diunggah oleh

alfarezy rezy
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan21 halaman

Modul 4 - Data Preprocessing

Dokumen ini membahas tentang data preprocessing yang mencakup pengenalan, setup lingkungan, dan berbagai teknik seperti data cleaning, data transforming, dan encoding. Ditekankan pentingnya penggunaan library Python seperti Pandas, NumPy, dan Scikit-learn untuk mempersiapkan data sebelum digunakan dalam pengembangan AI. Berbagai metode seperti train/test split, normalisasi, standardisasi, dan penanganan nilai null serta duplikat juga dijelaskan untuk meningkatkan kualitas data.

Diunggah oleh

alfarezy rezy
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Data Preprocessing

Pendahuluan
Data preprocessing adalah teknik yang digunakan untuk mengubah data
mentah dalam format yang berguna dan efisien. Hal ini diperlukan karena data
mentah seringkali tidak lengkap dan memiliki format yang tidak konsisten.
Pengembangan sebuah AI memerlukan berbagai macam preprocessing sebelumnya
untuk memberikan hasil yang andal, tepat, dan akurat

Setup Environment
Dalam melakukan preprocessing, kita akan menggunakan beberapa library
yang terdapat di Python. Berikut beberapa library yang akan kita pakai:

1. Pandas
Pandas adalah open source python package yang paling banyak
digunakan dalam data science, data analysis, dan machine learning. Dimana
Pandas dibangun di atas python package lain bernama Numpy, yang
menyediakan dukungan untuk array multidimensi. Dokumentasi pandas dapat
dilihat di link ini. Untuk menginstall pandas buka CMD(Win + R, ketik “cmd”,
Enter) >> pip install pandas

2. Numpy
NumPy merupakan salah satu library Python yang berfungsi untuk
proses komputasi numerik. NumPy memiliki kemampuan untuk membuat
objek berdimensi array. Array merupakan sekumpulan variabel yang memiliki
tipe data yang sama. Kelebihan dari NumPy adalah dapat memudahkan
operasi komputasi pada data, cocok untuk melakukan akses secara acak, dan
elemen array merupakan sebuah nilai yang independen sehingga
penyimpanannya dianggap sangat efisien. Dokumentasi pandas dapat dilihat
di link ini. Untuk menginstall numpy buka CMD(Win + R, ketik “cmd”, Enter) >>
pip install numpy

3. Scikit - Learn
Scikit-learn atau sklearn merupakan sebuah module dari bahasa
pemrograman Python yang dibangun berdasarkan NumPy, SciPy, dan
Matplotlib. Fungsi dari modul ini adalah untuk membantu melakukan
kebutuhan machine learning seperti seperti regresi (regression), klasifikasi
(classification), pengelompokkan/penggugusan (clustering), data

KECERDASAN BUATAN 1
preprocessing, dimensionality reduction, dan model selection (perbandingan,
validasi, dan pemilihan parameter maupun model).Dokumentasi scikit learn
dapat dilihat di link ini. Untuk menginstall sklearn buka CMD(Win + R, ketik
“cmd”, Enter) >> pip install sklearn

Data Split
Train/test split adalah salah satu metode yang dapat digunakan untuk
mengevaluasi performa model machine learning. Metode evaluasi model ini
membagi dataset menjadi dua bagian yakni bagian yang digunakan untuk training
data dan untuk testing data dengan proporsi tertentu.

Train data digunakan untuk fit model machine learning, sedangkan test data
digunakan untuk mengevaluasi hasil fit model [Link] menggunakannya, kita
perlu mengimport Scikit-Learn terlebih dahulu, kemudian setelah itu kita dapat
menggunakan fungsi train_test_split().

from sklearn.model_selection import train_test_split

Contoh :

# Import module yang dibutuhkan

from sklearn.model_selection import train_test_split

import pandas as pd

# Baca data dan ditampung dalam variabel

df =
pd.read_csv('[Link]
v')

KECERDASAN BUATAN 2
# Subset feature dan target

X = [Link][:,:-1] # Target

y = [Link][:,-1] # Feature

# Buat kelas train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

print("Dimensi X_train : ", X_train.shape)

print("Dimensi X_train : ", X_test.shape)

print("Dimensi y_train : ", y_train.shape)

print("Dimensi y_test : ", y_test.shape)

Output :

● X_train : Untuk menampung data source yang akan dilatih.


● X_test : Untuk menampung data target yang akan dilatih.
● y_train : Untuk menampung data source yang akan digunakan untuk testing.
● y_test : Untuk menampung data target yang akan digunakan untuk testing.
● test_size : Mendefinisikan ukuran testing set (0.2 = 20% dari seluruh dataset)

KECERDASAN BUATAN 3
Data Transforming

Transformasi data adalah merubah skala data kedalam bentuk lain sehingga
data memiliki distribusi yang [Link] adalah suatu cara untuk membuat
numerical data pada dataset memiliki rentang nilai (scale) yang sama. Tidak ada lagi
satu variabel data yang mendominasi variabel data [Link] penskalaan yang
biasa dipakai yaitu normalisasi dan standardisasi

● Normalisasi adalah proses penskalaan data menjadi rentang [0, 1].


● Standardisasi adalah proses penskalaan data sehingga memiliki nilai
rata-rata 0 dan standar deviasi 1.

Untuk melakukan standardisasi, Kita dapat menggunakan StandardScaler


pada scikit learn

from [Link] import StandardScaler

Contoh:

# Import module yang dibutuhkan

from [Link] import StandardScaler

import numpy as np

KECERDASAN BUATAN 4
# Buat ‘dummy’ data

data = [Link]([[100, 0.001],

[8, 0.05],

[50, 0.005],

[88, 0.07],])

# Buat obyek StandardScaler lalu lakukan perubahan pada data menggunakan metode
‘fit_transform’ pada data

ss = StandardScaler()

Scaled_data = ss.fit_transform(data)

print("Nilai Data Sebelum scaling : ")

print(data)

print("Nilai standar deviasi: ", [Link](data))

print("\n Nilai Data setelah scaling : ")

print(Scaled_data)

print("Nilai standar deviasi: ", [Link](Scaled_data))

KECERDASAN BUATAN 5
Output :

Data Cleaning

Data yang kita gunakan bisa jadi sangat berantakan. Ada informasi yang tak
lengkap, ada pula format yang [Link] ini tentu membuat data itu sulit
diolah. Pada akhirnya, ia jadi tak bisa dimanfaatkan. Untuk itulah kita harus
melakukan data cleaning terlebih dahulu. Data cleaning adalah memperbarui,
membetulkan, dan membuat data menjadi lebih rapi. Beberapa model machine
learning tidak dapat bekerja dengan data yang masih berantakan. Kesalahan dalam
data dapat berupa:

● Terdapat nilai data yang tidak valid (Null)


● Data dalam format yang salah
● Terdapat duplikat

1. Menangani nilai Null

Null adalah kata kunci (keyword) khusus yang berarti tidak memiliki
[Link] algoritma machine learning yang tidak dapat bekerja jika terdapat
nilai null dalam data. Berikut beberapa cara untuk mengatasi nilai null:

● Menghapus record/feature : Kita dapat menghapus record / feature


yang memiliki nilai null namun cara ini dapat menghilangkan informasi
- informasi yang berguna
● Subtitusi nilai : Kita dapat mengganti nilai null dengan suatu metrik
pengukuran seperti mean atau median dari kolom data itu.

KECERDASAN BUATAN 6
Misal, kita mempunyai sebuah dataframe yang memiliki beberapa nilai null:

Untuk menangani nilai null pada data, kita dapat menggunakan kelas
SimpleImputer pada scikit - learn

from [Link] import SimpleImputer

imputer = SimpleImputer(strategy='mean' )

Ketika membuat objek dari kelas SimpleImputer, terdapat parameter yang


harus diatur:

● strategy : berfungsi untuk mengganti nilai data yang kosong (null)


dengan rata - rata kolom (‘mean’), bisa juga menggunakan ‘median’,
‘most_frequent’ (modus), atau ‘constant’

Setelah obyek imputer telah dibuat, kita dapat menggunakan fungsi


fit_transform() untuk mengubah nilai null pada kolom yang kita tentukan
berdasarkan strategy yang digunakan pada kelas SimpleImputer

KECERDASAN BUATAN 7
df["IPK"] = imputer.fit_transform(df[["IPK"]])

Dataframe yang sudah diperbaharui terlihat seperti ini:

Contoh:

# Import module yang dibutuhkan

import numpy as np

import pandas as pd

from [Link] import SimpleImputer

# Buat item untuk dataframe

Nama =
["Lusi","Aisyah","Rizky","Dendi","Bagus","Ajeng","Putri","Yusuf","Kulus","L
usi"]

KECERDASAN BUATAN 8
Jurusan =
["Informatika","Kimia","Sipil","Kimia","Informatika","Elektro","Industri","
Sipil","Kimia","Informatika"]

IPK = [2.5,3.2,[Link],2.5,3.1,3.8,3.1,[Link],3.8,2.5]

# Buat dataframe

df = [Link](

"Nama":Nama,

"Jurusan" : Jurusan,

"IPK" : IPK

print("Jumlah record yang memiliki nilai null: ")

print([Link]().sum())

#Deklarasi kelas SimpleImputer dan lakukan transformasi pada kolom yang


ingin diubah

imputer = SimpleImputer(strategy='mean')

df["IPK"] = imputer.fit_transform(df[["IPK"]])

print("\nJumlah null setelah menggunakan SimpleImputer: ")

KECERDASAN BUATAN 9
print([Link]().sum())

Output:

Kita juga dapat mengganti nilai null dalam data menggunakan fungsi bawaan
dari pandas yaitu fillna().

Contoh :

IPK = [2.5,3.2,[Link],2.5,3.1,3.8,3.1,[Link],3.8,2.5]

df["IPK"] = IPK

[Link]().any()

Output:

KECERDASAN BUATAN 10
#Gunakan fungsi fillna pada kolom yang memiliki nilai null

df["IPK"].fillna(df["IPK"].mean(),inplace=True)

[Link]().any()

Output:

Kita juga bisa menghapus sebuah kolom untuk mengatasi nilai null dalam
data dengan menggunakan fungsi bawaan pandas dropna() . Cara ini biasa
dilakukan ketika suatu kolom mempunyai nilai null yang sangat banyak

IPK = [2.5,3.2,[Link],2.5,3.1,3.8,3.1,[Link],3.8,2.5]

df["IPK"] = IPK

[Link]()

Output :

KECERDASAN BUATAN 11
#Gunakan metode dropna dari pandas untuk menghapus kolom yang memiliki
nilai null

[Link](inplace = True)

df

Output :

2. Menangani nilai duplikat

Salah satu langkah dalam membersihkan suatu data adalah dengan


menghapus nilai duplikat. Nilai duplikat dapat membuat sebaran data
condong kedalam suatu nilai yang dapat mengacaukan hasil analisis kita.
Menghapus nilai duplikat juga dapat mengurangi beban komputasi kita. Untuk
menghapus nilai duplikat kita dapat menggunakan fungsi dari pandas yaitu
drop_duplicates

Contoh :

# Import module

import pandas as pd

KECERDASAN BUATAN 12
# Buat item untuk dataframe

Nama =
["Lusi","Aisyah","Rizky","Dendi","Bagus","Ajeng","Putri","Yusuf","Kulus","L
usi"]

IPK = [2.5,3.2,2.5,2.5,3.1,3.8,3.1,2.4,3.8,2.5]

# Buat dataframe

df = [Link](

"Nama":Nama,

"IPK" : IPK

print("Nilai Duplikat: ")

df[[Link]()]

Output :

# Hapus duplikat menggunakan metode drop_duplicates dari pandas

df.drop_duplicates(inplace=True)

KECERDASAN BUATAN 13
print("\nSetelah menggunakan fungsi drop_duplicates()")

print("Jumlah Nilai Duplikat:",[Link]().sum())

Output :

Encoding

Encoding adalah salah tahap pre-processing ketika kita menghadapi data


yang bersifat kategorikal. Encoding adalah teknik yang mengubah variabel
kategorikal menjadi variabel numerik, model dalam machine learning membutuhkan
input yang bertipe numerik sehingga sangat penting bagi kita untuk melakukan
encoding jika terdapat variabel yang bertipe kategorikal didalam data kita. Teknik
encoding yang paling terkenal adalah Ordinal Encoding dan One-Hot Encoding

1. Ordinal Encoding

Dalam ordinal encoding, setiap nilai kategori yang unik akan diubah menjadi
nilai integer. Tipe encoding ini biasa digunakan jika terdapat unsur hirarki di
dalam variabel yang ingin diubah. Contohnya adalah ketika nilai data berupa
Low,Medium,High (“Low” = 1 , “Medium” = 2, “High” = 3)

Untuk melakukan ordinal encoding kita dapat menggunakan fungsi dari scikit
Learn OrdinalEncoder

from [Link] import OrdinalEncoder

Contoh :

# Import module

import pandas as pd

from [Link] import OrdinalEncoder

KECERDASAN BUATAN 14
# Buat item untuk dataframe

Nama =
["Lusi","Aisyah","Rizky","Dendi","Bagus","Ajeng","Putri","Yusuf","Kulus","L
usi"]

Jurusan =
["Informatika","Kimia","Sipil","Kimia","Informatika","Elektro","Industri","
Sipil","Kimia","Informatika"]

# Buat dataframe

df = [Link](

"Nama":Nama,

"Jurusan" : Jurusan,

#Deklarasi kelas OrdinalEncoder dan lakukan transformasi pada kolom yang


ingin diubah

encoder = OrdinalEncoder()

df["JurusanEnc"] = encoder.fit_transform(df[["Jurusan"]])

[Link]()

Output :

KECERDASAN BUATAN 15
2. One - Hot Encoding

One-Hot encoding adalah salah satu metode encoding. Metode ini


merepresentasikan data bertipe kategori sebagai vektor biner yang bernilai
integer, 0 dan 1, dimana semua elemen akan bernilai 0 kecuali satu elemen
yang bernilai 1, yaitu elemen yang memiliki nilai kategori tersebut.

Kita dapat menggunakan OneHotEncoder dari Scikit-Learn untuk menerapkan


one-hot encoding di Python

from [Link] import OneHotEncoder

Contoh :

# Import module

import pandas as pd

from [Link] import OneHotEncoder

# Buat item untuk dataframe

Nama =
["Lusi","Aisyah","Rizky","Dendi","Bagus","Ajeng","Putri","Yusuf","Kulus","L
usi"]

Jurusan =
["Informatika","Kimia","Sipil","Kimia","Informatika","Elektro","Industri","
Sipil","Kimia","Informatika"]

# Buat dataframe

df = [Link]({

"Nama":Nama,

"Jurusan" : Jurusan,}

KECERDASAN BUATAN 16
#Deklarasi kelas OneHotEncoder dan lakukan transformasi pada kolom yang
ingin diubah

encoder = OneHotEncoder(sparse=False)

jurusanEnc = encoder.fit_transform(df[["Jurusan"]])

jurusanEnc = [Link](jurusanEnc)

df = [Link](jurusanEnc)

df

Output:

Kita juga dapat menggunakan get_dummies dari Pandas untuk menerapkan


one-hot encoding

KECERDASAN BUATAN 17
Contoh :

# Import module

import pandas as pd

Nama =
["Lusi","Aisyah","Rizky","Dendi","Bagus","Ajeng","Putri","Yusuf","Kulus","L
usi"]

Jurusan =
["Informatika","Kimia","Sipil","Kimia","Informatika","Elektro","Industri","
Sipil","Kimia","Informatika"]

# Buat dataframe

df = [Link]({

"Nama":Nama,

"Jurusan" : Jurusan,}

enc = pd.get_dummies(df[["Jurusan"]])

jurusanEnc = [Link](enc)

KECERDASAN BUATAN 18
df = [Link](jurusanEnc)

[Link]()

Output:

KECERDASAN BUATAN 19
Source

1. Data Split
● Evaluasi Model Machine Learning: Train/Test Split
2. Data Transforming
● Why Data Scaling is important in Machine Learning & How to
effectively do it
● Transformasi Data Mining
● Melakukan Feature Scaling pada Dataset
● All about Feature Scaling
3. Data Cleaning
● Mengenal Data Cleansing
● Imputing Missing Values using the SimpleImputer Class in sklearn
4. Encoding
● Data Preprocessing pada Machine Learning : Handling Categorical
Data

KECERDASAN BUATAN 20

Anda mungkin juga menyukai