Data Science | Bootcamp
Introduction
Introduction
DAT A
OIL
IS THE NEW
[Oil] has to be changed into gas, plastic, chemicals, etc. to create a valuable entity
that drives profitable activity; so, data must be broken down and analyzed for it
to have value.
- Clive Robert Humby
Introduction
dimana Data Science bisa berguna?
Self-Driving Car
Self-Driving Car ini memanfaatkan berbagai macam teknologi canggih seperti: pendeteksian dan pengenalan objek (rambu lalu lintas, kendaraan, manusia, dsb.), estimasi jarak, voice-assistant dan sistem cerdas untuk mengendalikan pergerakan mobil
Introduction
dimana Data Science bisa berguna?
Churn Prediction merupakan tindakan preventif yang dilakukan untuk mempertahankan pelanggan agar tetap
berlangganan pada suatu layanan jasa maupun produk Hal ini bertujuan untuk mengembangkan bisnis dengan
cara menjaga hubungan baik dengan pelanggan
Churn Prediction
Introduction
dimana Data Science bisa berguna?
Machine Translation mungkin adalah teknologi yang paling familiar karena penerapannya yang mudah ditemui dan aksesnya-pun terjangkau, contoh saja Google Translate yang telah mendukung lebih dari 100
bahasa di dunia
Machine Translation
Introduction
jenis Data ada bermacam-macam
Gambar
255 255 … 255 255 255 … 255 255 255 … 255 255 255 … 255 255 255 … 255
Piksel
0 128 255
Introduction
Introduction
jenis Data ada bermacam-macam
Indonesia adalah sebuah
negara
Teks
Indonesia adalah sebuah negara
0.25 0.25 0.25 0.25
Vektorisasi
=
vektorbobot
Introduction
jenis Data ada bermacam-macam
Suara frekuensi
osilasi perdetik
amplitudo tinggi/rendahnya
suara
tabel / dataframe
Introduction
jenis Data ada bermacam-macam
Data Tabular / DataFrame
data kategorikal
data nominal
class code
Economy 3
Business 2 First Class 1
data ordinal
Introduction
Disciplines in
Data Science
Introduction
Workflow pada Data Science
Business Understanding
1 Data
Acquisition
2 Data
Preprocessing
3
• Memahami permasalahan
• Mencari opsi solusi
• Menentukan data yang diperlukan
• Mengumpulkan data
• Eksplorasi data untuk menentukan variabel yang penting
• Membersihkan data dari informasi yang tidak diperlukan, outlier (pencilan)
• Feature Engineering, yaitu memanipulasi data agar dapat diperoleh fitur/variabel yang lebih informatif, konversi data dari kategorikal menjadi nominal, dan sebagainya.
Introduction
Workflow pada Data Science
Model Building
4 Model
Evaluation
5 Model
Deployment
6
Model Performance
Monitoring
7
• Membuat atau Memilih model yang sesuai dengan jenis kasus
• Melatih model dengan data hasil preprocessing
• Mengevaluasi performansi model dengan metrics tertentu, misalkan akurasi
• Mengimplementasika n model pada sistem
• Mengawasi performa model ketika diterapkan pada kasus nyata
Introduction
Workflow pada Data Science
Business Understanding
1 Data
Acquisition
2 Data
Preprocessing
3
Model Building
4 Model
Evaluation
5 Model
Deployment
6
Model Performance
Monitoring
7
harapan kenyataan
memilih nilai hyperparameter
terbaik yang dilakukan oleh suatu algoritma Hyperparameter
Tuning
Introduction
Tools pada Data Science
Bahasa Pemrograman
Database
Visualisasi Data
Introduction
Tools pada Data Science
Data Modelling &
Preprocessing Model Deployment
Modelling Framework
Artificial Intelligence
Lalu, apakah
AI = Data Science?
Artificial Intelligence
AI artificial intelligence
kecerdasan buatan
sistem komputer yang dapat melakukan pekerjaan yang biasanya memerlukan tenaga manusia atau kecerdasan manusia
kecerdasan tersebut dapat diperoleh dari aturan yang ditanamkan pada
sistem maupun hasil pembelajaran terhadap suatu pola pada data
Artificial Intelligence
AI
Computer VisionSpeech Processing Internet of Things
Robotics Machine Learning
Natural Language Processing
Artificial Intelligence
konsep dari machine learning (ML) meniru cara kerja otak manusia karenanya sistem yang dikembangkan perlu mempelajari data historis
(data masa lampau) untuk mengenali pola atau aturan sebelum dilakukan pengujian, tujuannya agar model ML dapat melakukan
pekerjaan dengan benar
machine
learning ?
Artificial Intelligence
inputan
hasil
inputan
hasil
Artificial Intelligence
Tipe Machine Learning
Supervised Learning
Regression: memprediksi target yang bernilai kontinyu
Classification: memprediksi target yang bernilai diskrit (kategorikal)
soal + jawaban
Pembelajaran yang dilakukan menggunakan data fitur (independent variable) dan data target (dependent variable)
▪ Linear Regression
▪ Support Vector Machine (Regression)
▪ Decision Tree (Regression)
▪ K-Nearest Neighbor (Regression)
▪ Logistic Regression
▪ Support Vector Machine (Classifier)
▪ Multi-Layer Perceptron (Classifier)
▪ Decision Tree (Classifier)
▪ Random Forest (Classifier)
▪ K-Nearest Neighbor (Classifier)
Artificial Intelligence
Tipe Machine Learning
Supervised Learning
jumlah_kaki makanan warna
4 rumput putih
4 daging coklat
kelas
sapi singa soal latihan
jawaban
jumlah_kaki makanan warna
4 rumput putih
kelas
? soal ujian
jawaban
Artificial Intelligence
Tipe Machine Learning
Unsupervised Learning
Clustering: mengelompokan data berdasarkan pola pada data fitur
Dimensionality Reduction: mengurangi ukuran dimensi data dengan cara mencari fitur yang terbaik
soal
Pembelajaran yang dilakukan menggunakan data fitur (independent variable) saja
▪ K-Means
▪ DBSCAN
▪ Gaussian Mixture Model (GMM)
▪ Principal Component Analysis (PCA)
▪ Singular Value Decomposition (SVD)
▪ Linear Discriminant Analysis (LDA)
Artificial Intelligence
Tipe Machine Learning
Unsupervised Learning
Clustering
Artificial Intelligence
Tipe Machine Learning
Unsupervised Learning
Dimensionality Reduction
Artificial Intelligence
Tipe Machine Learning
Semi-Supervised Learning
Proses Pembelajaran
1. pada tahap pertama model dilatih (training) menggunakan data yang terdiri dari fitur dan target (data A),
2. model hasil training digunakan untuk memprediksi target berdasarkan pada fitur dari data B,
3. hasil prediksi tersebut digabungkan dengan fitur data B dan dianggap sebagai data target / jawaban,
4. pada tahap kedua data A dan data B digabungkan menjadi satu dataset, dan digunakan lagi untuk melatih model.
soal + jawaban
(data A) soal
(data B)
Artificial Intelligence
Artificial Intelligence
pada dasarnya deep learning hanyalah istilah yang merujuk pada pengaplikasian Deep Neural Network (DNN) terhadap kasus tertentu sama seperti ML, model DL juga perlu dilatih menggunakan data historis
(data masa lampau), pembedanya adalah tahap ekstraksi ciri dapat dilakukan secara otomatis tanpa campur tangan developer
deep
learning ?
Artificial Intelligence
deep learning seringnya diimplementasikan pada kasus yang berhubungan dengan Computer Vision maupun Natural Language Processing karena kemampuannya yang dapat meng-ekstraksi banyak
informasi secara mandiri
Chatbot Object Recognition Speech-to-Text
Artificial Intelligence
sedangkan machine learning lebih sering diaplikasikan pada kasus Data Mining (penambangan data) yang bertujuan untuk menemukan pola dari
suatu data yang dapat mengarahkan pada informasi tertentu
Stock Forecasting Fraud Detection
Recommender System
Artificial Intelligence
contoh
Deep Learning
Lip-Reading
Recognition
Artificial Intelligence
contoh
Deep Learning
Object Segmentation
Artificial Intelligence
contoh
Deep Learning
Object Recognition & Segmentation
Data
Acquisition
Data Acquisition
dalam pengumpulan data terdapat beberapa cara yang dapat dilakukan
Survey membuat formulir (google form), kuesioner, dan wawancara pada beberapa narasumber
Bank Data
visualdata.io
Data
Preprocessing
Data Preprocessing
setelah diperoleh data yang diperlukan, tentunya data perlu diperiksa berdasarkan beberapa aspek
Missing Values Data Duplikat
Tipe Data Skala Data
Proporsi Data Data Encoding Data Outlier
Data Preprocessing
WHAT’S MISSING?
pemeriksaan missing value dapat dilakukan menggunakan library pandas
Missing Values
untuk apa dilakukan pemeriksaan missing values?
sebagian besar algoritma ML akan memunculkan error apabila terdapat data yang hilang
contoh algoritma ML yang adaptif terhadap data yang hilang adalah K-Nearest Neighbor (K-NN)
(nilai yang hilang yang disimbolkan dengan null atau NaN –not a number)
Data Preprocessing
Missing Values
terus gimana kalau ditemukan missing values?
metode untuk menangani data yang hilang disebut dengan data imputation, yaitu mengisi data yang hilang dengan suatu nilai namun, apabila persentase data yang hilang melebih 50%, maka fitur tersebut boleh tidak digunakan
teknik data
numerik
data kategorikal nilai rata-rata
(mean) ✓
nilai yang sering muncul
(modus)
✓ ✓
nilai tertentu
(manual) ✓ ✓
Data Preprocessing
pemeriksaan data duplikat dapat dilakukan menggunakan library pandas
Data Duplikat
untuk apa dilakukan pemeriksaan data duplikat?
data duplikat yang jumlahnya sedikit bukanlah masalah, tetapi jika jumlahnya banyak akan mempengaruhi performa ML
karena model yang dihasilkan cenderung menganggap data tersebut lebih penting daripada data yang lainnya (istilah kerennya: bias)
Data Preprocessing
Data Duplikat
terus gimana kalau ditemukan data duplikat?
mudah! hapus saja data yang duplikat dan sisakan salah satunya
Data Preprocessing
pemeriksaan tipe data dapat dilakukan menggunakan library pandas
Tipe Data
untuk apa dilakukan pemeriksaan tipe data?
seperti contoh di sebelah kiri, “price” atau harga seharusnya berupa angka, tapi di sini dianggap sebagai object
otomatis nilai-nilai yang terdapat di dalam fitur tersebut tidak dapat diolah secara matematis
(note: string = object; pada pandas dataframe)
Data Preprocessing
Tipe Data
terus gimana kalau ditemukan data duplikat?
konversi tipe datanya menjadi integer
hal ini juga dapat dilakukan apabila terdapat kasus yang sama pada fitur yang lainnya
Data Preprocessing
pemeriksaan skala data
dapat dilakukan
menggunakan library pandas
Skala Data
untuk apa dilakukan pemeriksaan skala data?
rentang nilai antar-data sangat berpengaruh terhadap performansi model, semakin besar nilainya maka akan dianggap semakin berbobot (penting) sehingga, perlu dilakukan penyamaan skala data terhadap masing-masing fitur
Data Preprocessing
Skala Data
terus gimana kalau skala datanya tidak sama?
untuk menangani permasalahan ini terdapat dua pendekatan yang dapat dilakukan:
Data Preprocessing
Skala Data
values 90 85 35 70 45 100
normalization 0.8461 0.7692
0 0.5384 0.1538
1
Data Preprocessing
Skala Data
values 90 85 35 70 45 100
standardization 0.8086 0.5976 -1.5117 -0.0351 -1.0899 1.2305
Data Preprocessing
pemeriksaan data outlier
dapat dilakukan
menggunakan library pandas
Data Outlier
untuk apa dilakukan pemeriksaan data outlier?
outlier atau pencilan merupakan sampel data yang nilainya berbeda jauh dengan nilai pada sampel data lainnya, nilai unik ini dapat muncul karena kesalahan dalam pengumpulan data maupun memang terdapat anomali pada kasus yang sedang diobservasi sehingga terdapat outlier
hal ini dapat mengganggu analisis statistika apabila dibiarkan begitu saja, oleh karena itu perlu dihilangkan
Data Preprocessing
pemeriksaan proporsi data
dapat dilakukan
menggunakan library pandas
Proporsi Data
untuk apa dilakukan pemeriksaan proporsi data?
dataset (khsususnya kasus classification) yang memiliki jumlah kelas yang tidak seimbang akan menjadikan model kurang adaptif terhadap data baru, dan cenderung bias terhadap kelas yang jumlah sampelnya lebih banyak
Data Preprocessing
Proporsi Data
terus gimana kalau proporsi datanya tidak seimbang?
untuk menangani permasalahan ini dapat dilakukan metode sampling:
• over-sampling (menambah data)
• under-sampling (mengurangi data)
Data Preprocessing
Proporsi Data
• over-sampling (menambah data)
salah satu metode yang dapat digunakan adalah SMOTE (Synthetic Minority Oversampling Technique) yang cara kerjanya menciptakan data sintetik (buatan) berdasarkan data yang sudah ada
data asli
data sintetik diciptakan berdasarkan pada sejumlah tetangga terdekat, tepatnya data diciptakan pada lintasan dari sejumlah data tersebut
jumlah data yang dijadikan acuan dapat diatur, pada contoh di samping terdapat empat sampel
proses over-sampling
data hasil over-sampling
Data Preprocessing
Proporsi Data
• under-sampling (mengurangi data)
metode yang umum digunakan adalah Random Under-sampling, beberapa data pada kelas major (jumlah terbanyak) akan dihapus secara acak hingga jumlahnya sama dengan data pada kelas minor (jumlah paling sedikit)
data asli
beberapa data dihapus secara acak
proses under-sampling
data hasil under-sampling
Data Preprocessing
data encoding dapat dilakukan menggunakan library pandas maupun sklearn
Data Encoding
untuk apa dilakukan data encoding?
data encoding merupakan tahapan penerjemahan kategori/kelas menjadi angka agar komputer dapat memahami data yang akan diolah
hal ini dapat dilakukan ketika menangani kasus klasifikasi menggunakan metode: Label Encoding atau One-Hot Encoding
Data Preprocessing
Data Encoding
• label-encoding
mengubah nama kategori menjadi angka, dengan aturan penomoran sesuai dengan urutan abjad dari nama kategori yang dimiliki
kategori kucing
anjing harimau
kucing singa
kategori 2 0 1 2 3
Data Preprocessing
Data Encoding
• one-hot encoding
mengubah nama kategori menjadi angka, dengan aturan binary
kategori kucing
anjing harimau
kucing singa
kategori_kucing 1
kategori_anjing 0
kategori_harimau 0
kategori_singa 0
0 0 1 0
1 0 0 0
0 1 0 0
0 0 0 1
Model
Training
Model Training
sebelum dapat digunakan, model perlu dilatih terlebih dahulu
menggunakan data historis agar model tersebut dapat menangkap pola yang ada pada data
tentunya tahap ini dapat dilakukan menggunakan bahasa pemrograman Python karena telah tersedia berbagai macam library pendukung untuk
Machine Learning seperti: scikit-learn
sebelum melakukan training model, perlu dilakukan pembagian data,
yaitu data training dan data testing, umumnya proporsi dalam
pembagian ini adalah 80:20 untuk data training dan data testing
Model Training
Pipeline
melatih suatu model menggunakan Pipeline dapat mempermudah
developer karena berbagai tahapan pengolahan data seperti label-
encoding, normalisasi hingga training model-nya dapat dilakukan dalam
satu langkah
Model Training
Cross Validation
model yang diinginkan adalah model yang bersifat generalized, artinya meskipun diujikan dengan data yang tidak dikenali (tidak ada di dalam data training) tetap dapat memberikan hasil prediksi yang tepat
untuk dapat memperoleh model tersebut, dapat disiasati dengan pembagian (splitting) data untuk data training dan data testing
nantinya data testing akan digunakan untuk mem-validasi model yang
telah dilatih
Model
Evaluation
Model Evaluation
model yang telah dilatih perlu dievaluasi terlebih dahulu sebelum diaplikasikan pada kasus nyata, terdapat beberapa pilihan metrics yang
dapat digunakan bergantung pada jenis kasusnya
Precision Recall
Mean Squared Error (MSE) Mean Absolute Error (MAE)
F1-Score Accuracy
Classification
Regression
R-Squared
Model Evaluation
Confusion Matrix dari confusion matrix dapat diperoleh beberapa nilai (metrics) yang dapat digunakan untuk mengevaluasi performansi model yang telah dilatih
pada contoh di samping terdapat dua macam kelas:
YES (positive) dan NO (negative)
▪ jika prediction YES dan actual YES, maka TRUE-POSITIVE
▪ jika prediction YES dan actual NO, maka FALSE-POSITIVE
▪ jika prediction NO dan actual NO, maka TRUE-NEGATIVE
▪ jika prediction NO dan actual YES, maka FALSE- NEGATIVE
prediction YES NO ac
tu al
YES … …
NO … …
prediction YES NO ac
tu al
YES TP FN NO FP TN
Model Evaluation
Confusion Matrix dari confusion matrix dapat diperoleh beberapa nilai (metrics) yang dapat digunakan untuk mengevaluasi performansi model yang telah dilatih, nilai yang diperoleh berada di rentang 0 – 1 (0%-100%), semakin besar maka semakin baik
1. Precision
kalkulasi terhadap jumlah TRUE-POSITIVE terhadap jumlah total prediction
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix contoh:
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix dari confusion matrix dapat diperoleh beberapa nilai (metrics) yang dapat digunakan untuk mengevaluasi performansi model yang telah dilatih
2. Recall
kalkulasi terhadap jumlah TRUE-POSITIVE terhadap jumlah total actual
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix contoh:
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix dari confusion matrix dapat diperoleh beberapa nilai (metrics) yang dapat digunakan untuk mengevaluasi performansi model yang telah dilatih
3. F1-Score
kalkulasi terhadap nilai precision dan recall untuk memperoleh nilai yang terbobot/seimbang
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix contoh:
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix dari confusion matrix dapat diperoleh beberapa nilai (metrics) yang dapat digunakan untuk mengevaluasi performansi model yang telah dilatih
4. Accuracy
kalkulasi terhadap keseluruhan nilai yang ada di dalam confusion matrix
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
Confusion Matrix contoh:
prediction YES NO ac
tu al
YES 10 3
NO 1 9
Model Evaluation
lalu, kapan pakai metric apa?
Accuracy
dapat dipilih apabila proporsi data antara kelas A dengan kelas yang lainnya seimbang atau selisihnya tidak terlampau jauh, misalkan:
Kelas A = 10 Kelas B = 8
Model Evaluation
sedangkan pada data yang proporsinya tidak seimbang (imbalanced data) dapat dipilih antara Precision, Recall, atau F1-Score
pemilihan metrics dapat dilakukan berdasarkan kasus yang sedang ditangani
prediction YES NO ac
tu al
YES 1 1
NO 1 1
Deteksi COVID-19 pada kasus ini dapat menggunakan Recall
karena Recall menyatakan tingkat ketepatan berdasarkan data actual-nya
misal:
ada 1 pasien yang kenyataannya terjangkit COVID-19, akan tetapi pasien ini dianggap TIDAK terjangkit oleh model yang telah dibuat, jika seperti ini akan membahayakan keadaan sekitar pasien
Model Evaluation
prediction
STRANGER NOT STRANGER
ac tu al
STRANGER 1 1
NOT
STRANGER 1 1
Deteksi Orang Asing pada kasus ini dapat menggunakan Precision
karena Precision menyatakan tingkat ketepatan berdasarkan data prediction-nya
misal:
ada 1 orang yang kenyataannya bukan orang asing (NOT_STRANGER), akan tetapi dianggap sebagai orang asing (STRANGER) oleh model yang telah dibuat, jika seperti ini maka orang tersebut mungkin saja tidak bisa masuk ke ruangannya
Model Evaluation
F1-Score
metric F1-Score biasanya digunakan apabila ingin mendapatkan nilai evaluasi yang berimbang
nilai tersebut dapat diperoleh dari Precision dan Recall
Model Evaluation
Mean-Squared Error (MSE)
digunakan untuk menghitung selisih antara nilai actual terhadap nilai prediction yang kemudian dikuadratkan
MSE bersifat sensitif terhadap outlier (pencilan)
Model Evaluation
Mean-Absolute Error (MAE)
digunakan untuk menghitung selisih antara nilai actual terhadap nilai prediction yang kemudian dikuadratkan
MAE tidak sensitif terhadap outlier (pencilan)
Model Evaluation
digunakan untuk menghitung selisih antara nilai prediction terhadap nilai rata-rata dan nilai actual terhadap nilai rata- rata
R-Squared umumnya diumpamakan sebagai Accuracy
Model Evaluation
lalu, kapan pakai metric apa?
https://linktr.ee/pythonkodehive