Sistem Cerdas
Machine Learning
Lifecycle - 1
Dr. Muhtadan
Capaian Pembelajaran
Mahasiswa mampu
• Mengetahui dan menjelaskan ML lifecycle
• Menjelaskan konsep data dan jenis dataset pada ML
• Melakukan data cleansing, feature extraction, dan data
split
• Membuat data untuk training dan testing pada
pelatihan model ML
2
ML Lifecycle
Lifecycle
• Alur proses kerja atau aktifitas hidup atau tahapan proses dari suatu aktifitas
ML lifecycle
• Adalah suatu alur kerja pengembangan model ML dimulai dari proses
pengumpulan data sampai model tersebut siap digunakan.
• Siklus hidup ML dapat bersifat maju (forward), dan dapat berulang (iteratif).
• Iteratif diperlukan karena setiap perulangan bertujuan untuk terus
meningkatkan keakuratan dan performa model.
3
ML Lifecycle
Lifecycle
• Alur proses kerja atau aktifitas hidup atau tahapan proses dari suatu aktifitas
ML lifecycle
• Adalah suatu alur kerja pengembangan model ML dimulai dari proses
pengumpulan data sampai model tersebut siap digunakan.
• Siklus hidup ML dapat bersifat maju (forward), dan dapat berulang (iteratif).
• Iteratif diperlukan karena setiap perulangan bertujuan untuk terus
meningkatkan keakuratan dan performa model.
4
Aktifitas utama ML Lifecycle
Pengumpulan Data (Data
Acquisition)
Pengembangan Model
Persiapan Data (Data
sebagai perangkat lunak
Preparation)
(Model Deployment)
Pelatihan, Ujicoba,
Validasi, dan Optimalisasi
Model (Training-Testing-
Validation-Optimalization)
5
Aktifitas utama ML Lifecycle
Model Deployment
Pengumpulan Data
19 % Data Acquisition 10 %
Performance Monitoring
Data Preprocessing
Data cleansing
Training Model & Evaluation
Feature engineering
60 % Model Training 11 %
Data split Model Evaluation
Model Optimalization
Data Data
Latih Uji/Validasi
6
Akuisisi Data
7
Pengumpulan Data (Data Acquisition)
Akuisisi Data
• Proses mendapatkan data dari suatu nilai dan besaran baik dari kejadian fisis/alami, buatan,
transaksi, serta aktifitas lainnya menjadi suatu data digital.
Langkah dalam akuisisi data adalah menghasilkan data sesuai kebutuhan.
• Data apa yang dibutuhkan?
• Apa format data yang tersedia dan dibutuhkan?
• Dimana data diperoleh?
• Apakah data tersebut memerlukan biaya atau gratis?
• Bagaimana cara mengumpulkan data → teknik akuisisi data?
• Bagaimana data tersebut digunakan?
• Apakah ada standar khusus yang harus dipenuhi oleh data?
• Bagaimana data disimpan?
8
Pengumpulan Data (Data Acquisition)
Tipe data
• Perlu diketahui sebelum
melakukan analisis data
• Mempengaruhi metode dalam
pengolahan data
Contoh
• Data tabel disamping terkait
dengan keputusan akan
melakukan aktifitas play
bergantung pada empat variabel.
• Empat variabel disebut dengan
fitur.
• Setiap fitur memiliki atribut nilai
dengan tipe data dan range
tertentu.
9
Tipe Data: Categorical
Categorical
Terbuat dari
kata-kata
O rd i n a l Nominal
Memiliki Hirarki Tidak Memiliki Hirarki
[regular, basic, gold, [HP, Laptop,
p l a t i n u m] E l e ktronik L a innya ]
Tipe Data: Numbers
(Continue dan Diskrit)
Numbers
Terbuat dari
angka
K o n t i n u / N u m e rik D i s k rit/Ka te g o r i
Opsi tak terbatas Opsi terbatas
[0, 0.001, …, 1] [0,1, 2, … n]
Tipe Data Kategorikal
Data Nominal
• Data yang merepresentasikan karakteristik.
• Jenis kelamin, cuaca, bahasa, dll
• Nilai atribut bertipe nominal tersusun atas simbol yang berbeda
• Contoh fitur Outlook pada tabel diatas, merupakan data nominal
yang tersusun oleh himpunan {sunny, overcast, rainy}
• Tidak ada urutan atau jarak antar atribut.
• Sering digunakan sebagai tipe data pada output dalam model
supervised learning
12
Tipe Data Kategorikal
Data Ordinal
• Data yang merepresentasikan karakteristik, mirip dengan
Nominal
• Memiliki urutan
• Urutan dari nilai memiliki peran yang penting dan signifikan.
• Contoh penilaian kepuasan. Sangat Puas, Puas, Kurang Puas,
Tidak Puas.
• Contoh lain: SD, SMP, SMA, Diploma 3, Sarjana, Pascasarjana
13
Tipe Data Kategorikal
Data Interval
• Tipe data ini memiliki urutan dan range nilai yang sama, misal 1 – 5;
4 – 10, dll.
• Digunakan untuk mentransformasikan data numerik menjadi data
nominal.
• Transformasi dilakukan dengan memberikan nama (simbol) untuk
masing-masing interval.
• Misal nilai numerik dari 1 – 100, lalu dibagi menjadi 5 kategori
dengan interval {1-20, 21 – 40, ...., 81 – 100} dan diberi nama misal
81 – 100 adalah A, 61 – 80 adalah B. 14
Tipe Data Kategorikal
Data Rasio
•Merupakan data yang berupa perbandingan
antara suatu nilai dengan nilai lainnya.
•Misalkan massa jenis (fisika)
•Pada tipe data ini terdapat absolute zero
(ground truth) yang menjadi acuan. 15
Data berdasar sumber data
Data
transaksi
Sumbe
data
Data Data
Observasi Interaksi
16
Data berdasar Sumber Data
Data Transaksi
• Bersumber dari kegiatan transaksi setiap hari dari sistem sumber data
seperti:
• ERP (Enterprise Resource Planning),
• SCM (Supply Chain Management)
• CRM (Customer Relationship Management)
• dll
• Data merupakan hasil transaksi sistem ke sistem atau user ke sistem.
• Contoh: Penjualan barang, peminjaman, pembelian, pembayaran, dll.
17
Data berdasar Sumber Data
Data Interaksi
• Merupakan data pengunaan sistem pada suatu
runtutan waktu.
• Misal data seseorang memilih produk pada rentang
waktu 1 bulan, mulai pencarian hingga pembayaran
• Misal data pengguna yang mengakses suatu sistem
atau media sosial pada rentang waktu 1 bulan.
18
Data berdasar Sumber Data
Data Observasi
•Data yang dihasilkan dari suatu sensor,
atau perangkat pengukur, atau sistem
instrumentasi.
•Misal data suhu, counter, detektor,
rekaman audio dan video, dll. 19
Penyimpanan Data-Data
Data Storage
• Setelah dikumpulkan, data-data tersebut
harus disimpan → menjadi perhatian
karena bisa jadi akan menghadapi data
yang jumlahnya sangat besar
• Membutuhkan mekanisme penyimpanan
yang khusus seperti database, data
warehouse dan sebagainya.
• Pemilihan mekanisme penyimpanan juga
berpengaruh kepada performa mesin yang
akan dibangun.
20
Penyimpanan Data-Data
Data Storage Eksternal
• Menggunakan dataset-dataset
yang telah dikumpulkan pihak lain.
• Data dari pihak lain dapat kita
perolehi dari beberapa sumber,
seperti pihak yang menyediakan
data secara terbuka sehingga
diakses melalui sebuah
application programming
interface (API)
21
Penyimpanan Dataset
Kaggle datasets Amazon datasets UCI ML Google’s Awesome Public Computer Vision
•Dataset berbagai •misalnya Repository Datasets search Datasets Datasets
kebutuhan transportasi publik, •Dataset-dataset engine •kumpulan dataset •Dataset ini berisi
data ekologi, data tersebut telah yang telah Visual Data yang
•Pencarian berbagai
gen, citra satelit, diklasifikasikan dikategorikan sangat berguna
dataset
data perdagangan berdasarkan tipe- berdasarkan topik- karena berisi objek-
tipe permasalahan topik seperti Biology, objek seperti
masing learning Ekonomi, Edukasi Semantic
misalnya kasus dan lain-lain Segmentation, Image
klasifikasi dan Captioning, Image
regresi. Generation.
22
Pandas DataFrame Review
1
[Link]() merupakan
Pandas merupakan library yang
paling banyak digunakan untuk salah satu class dari library Pandas
yang secara spesifik digunakan
manipulasi dan analisis data
untuk memproses data dua dimensi
menggunakan python
tabular
DataFrame Structure
Columns
Index
Pandas Series
DataFrame Import &
2 Information
Beberapa cara jenis data yang bisa di Import:
DataFrame Information
Generate top n Example results
[Link]()
Generate bottom n
[Link]()
Generate descriptive statistics
[Link]()
Show DataFrame shape
[Link]
Show DataFrame data types
[Link]
Show DataFrame Index
[Link]
Show DataFrame columns
[Link]
Persiapan Data
27
Persiapan Data
Alokasi waktu persiapan data
• Biasanya, 80% dari waktu pengembang habis untuk kegiatan ini dan hal
tersebut berbanding lurus dengan hasil yang akan didapat.
Pentingnya data yang bersih
• Semua algoritma ML dapat menemukan pola dalam data, namun apabila
algoritma tersebut diberikan data yang "kacau" maka model yang dihasilkan
akan memberikan luaran yang kacau juga.
• Jadi syarat utamanya adalah data yang bersih, bukan tentang algoritma yang
dipakai. Algoritma yang sederhana tetapi dengan data yang bersih dapat
mengalahkan algoritma yang rumit dengan data yang kacau.
28
Penelusuran untuk pemrosesan awal data
Konfirmasikan:
• Apakah ada data yang kosong? Kolom yang tidak berisi data?
Kenapa data tersebut hilang?
• Bagaimana distribusi data? Bagaimana korelasi antara kolom?
• Menyelidiki nilai-nilai yang aneh dalam data seperti "Tanggal
Lahir: Pekanbaru", "No Telepon: ABCD" dan lain-lain
• Apakah isi data konsisten? Misalnya jenis kelamin bernilai “Laki-
Laki”, “Pria”, “Man”, “LK”
29
Basic Cleansing
3
Beberapa contoh penyebab data yang tidak bersih:
Terdapat input yang bersifat opsional Terdapat abuser/fraudster
User yang tidak konsisten dalam meng- Keterbatasan dataset
input
Terdapat bug di aplikasi
Rename Column Name
Selective rename column
Code format Example result
[Link](
columns={‘old_name’: ‘new_name’})
Example
[Link](
columns={0: 'row',1:'country'})
Rename Column Name
Rename all columns
Code format Example result
[Link] = ['a','b','c']
Example
[Link] = ['row_', 'country_','currency_',
'order_value_','gross_profit_','cost_','date_
','category_','customer_name_','sales_manager
_','sales_rep_','device_type_',
'order_id_','country_id_']
Rename Column Name
Rename using string function
Code format Example result
[Link] =
[Link](‘string’,’replacement’)
Example
[Link] = [Link]('_','')
Drop
Code format Example result
Drop rows, axis 0
[Link](index=‘row_index’,
'Axis’=0)
Drop columns, axis 1
[Link](columns=‘column_name’,
'Axis’=1)
Example
df = [Link](index=0,axis=0)
df = [Link](columns='row')
Handling Missing Values
4
Sebagian besar analisis akan menemukan tiga kemungkinan jenis nilai data yang hilang,
bergantung pada apakah ada hubungan antara data yang hilang dan data lain dalam
kumpulan data:
Missing Completely at Random
Missing at Random
Missing not at Random
Mengecek Missing Values
Code format Example result
#Mengecek null values
[Link]()
#Kebalikan isnull()
[Link]()
Drop Missing Values
Code format Example result
[Link]()
Fill Missing Values
Code format Example result
#Replace with specific value
[Link](value=‘value for replacement’)
#Replace with replacement method
pad / ffill: propagate last valid observation
forward to next valid
backfill / bfill: use next valid observation
to fill gap.
[Link](method=‘fill method')
Fungsi String
Data lebih banyak dalam tekstual
• Jika Anda telah menggunakan pustaka pandas di python, Anda
mungkin telah memperhatikan bahwa banyak data datang dalam
bentuk tekstual, bukan angka murni seperti yang mungkin
dibayangkan sebagian orang.
Pengolahan data awal
• Ini berarti ada kebutuhan untuk membersihkan dan memproses
string terlebih dahulu sehingga string tersebut dapat dianalisis,
digunakan oleh algoritma, atau ditampilkan kepada publik.
• Pustaka pandas memiliki bagiannya sendiri yang menangani
pemrosesan string.
Replace
Code format
df[‘column'].[Link](‘string’,’replacement') Example result
Example
df['cost'].[Link]('$','')
Split
Code format
df[column'].[Link](‘split string') Example result
Example
df['date'].[Link]('/')
Upper & lower
Code format
df[column'].[Link]() Example result
df[column'].[Link]()
Example
df['country'].[Link]()
df['country'].[Link]()
Perubahan Tipe Data
Tahap pengubahan tipe data
• Paling sering dilakukan untuk pembersihan data, dengan
fungsi sbb:
• menggunakan astype( )
• Menggunakan convert_dtypes( )
• Menggunakan pandas function
44
Using astype()
Code format
df[column’].astype(‘data type’) Example result
Example
df['cost'].[Link](',','')
.astype('float64')
Using convert_dtypes()
Code format
#automatically change data type
df.convert_dtypes()
Example result
Using pandas function
Code format
#change to datetime Example result
pd.to_datetime(df[‘column’])
#change to numeric
pd.to_numeric(df[column’])
#change to timedelta
pd.to_timedelta(df[‘column’])
Pengolahan data lainnya
Untuk memaksimalkan data cleaning
•Data encoding
•Normalization
•Standardization
48
Data Encoding
Label encoding
Label Encoding is a popular encoding technique for
handling categorical variables. In this technique,
each label is assigned a unique integer based on
alphabetical ordering.
Example result
Data Encoding
Label encoding
Code format
from [Link] import
OrdinalEncoder
ord_enc = OrdinalEncoder()
ord_enc.fit_transform(df[[‘column']])
Example
df_encode['countryCode'] =
ord_enc.fit_transform(df_encode[['country']])
Data Encoding
One-hot encoding
One-Hot Encoding is another popular technique for treating categorical variables.
It simply creates additional features based on the number of unique values in the
categorical feature. Every unique value in the category will be added as a feature.
In this encoding technique, each category is represented as a one-hot vector.
Data Encoding
One-hot encoding
Example result
Code format
pd.get_dummies(df,
columns=[‘column’],
prefix=‘column prefix')
Example
pd.get_dummies(df_country,
columns=['country’],
prefix='country')
Normalization
Normalization typically means rescales the values into a range of [0,1].
Code format
from [Link] import MinMaxScaler
min_max_scaler = MinMaxScaler()
min_max_scaler.fit_transform(df[[‘column’]])
Example
min_max_scaler.fit_transform(df[['ordervalue']])
Standardization
Standardization typically means rescales data to have a mean of 0 and a standard
deviation of 1 (unit variance).
Code format
from [Link] import StandardScaler
Std_scaler = StandardScaler()
std_scaler.fit_transform(df[[‘column’]])
Example
std_scaler.fit_transform(df[['ordervalue']])
Terima Kasih
muhtadan@[Link]
08170402381