Module 3a - Machine Learning
Module 3a - Machine Learning
DAFTAR ISI............................................................................................................................... 1
Tujuan & Deskripsi Pembelajaran......................................................................................2
Unsupervised Learning........................................................................................................3
A. Clustering...........................................................................................................................3
Supervised Learning............................................................................................................ 6
A. Regression......................................................................................................................... 6
B. Decision Tree...................................................................................................................10
C. Random Forest................................................................................................................12
D. Support Vector Machine.............................................................................................. 17
Time Series Forecasting.....................................................................................................19
A. Time Series.......................................................................................................................19
B. Mengukur Korelasi..........................................................................................................21
1. Autocorrelation Function (ACF)............................................................................21
2. Partial Autocorrelation Function (PACF)........................................................... 21
C. Forecasting..................................................................................................................... 22
1. Average Forecast...................................................................................................... 22
2. Seasonal Naive Forecasting..................................................................................23
D. AR (Autoregressive)......................................................................................................24
E. MA (Moving Average)....................................................................................................24
F. ARMA (Autoregressive Moving Average)................................................................ 24
G. ARIMA (Autoregressive Integrated Moving Average).........................................25
H. SARIMA (Seasonal ARIMA)......................................................................................... 29
I. ARIMAX (ARIMA with eXogenous variables)........................................................... 29
J. SARIMAX (Seasonal ARIMA with eXogenous variables)..................................... 29
EXERCISE.............................................................................................................................. 30
1
Tujuan & Deskripsi Pembelajaran
Deskripsi:
2
1.1 Unsupervised Learning
A. Clustering
3
2. Menentukan nilai K. Pada langkah ini, akan dikonfigurasi dan ditentukan
nilai inisiasi K (n_clusters) sebesar 4 cluster.
4
Pada metode elbow curve, lokasi ‘tikungan’ yang terbentuk di plot, pada
umumnya dianggap sebagai indikator jumlah cluster yang tepat. Akan
tetapi nilai K optimal yang diperoleh dari metode elbow curve, sering kali
bersifat “ambigu” atau belum pasti akan menghasilkan jumlah cluster (K)
yang optimal. Oleh karena itu, langkah selanjutnya akan digunakan
Silhouette Analysis guna mencari nilai k optimal.
5
1.2 Supervised Learning
A. Regression
Secara literal, supervised learning berarti pembelajaran yang terarah.
Supervised learning dapat diilustrasikan seperti gambar di bawah.
Di dalam sebuah data, terdapat fitur, atribut, dan kelas. Fitur adalah variabel
6
independen yang mempengaruhi output. Setiap fitur memiliki atribut nilai
dengan tipe data dan range tertentu. Sedangkan kelas atau label adalah variabel
dependen atau output.
Salah satu jenis supervised learning adalah regresi. Regresi adalah metode
yang dapat digunakan untuk melihat hubungan sebab-akibat antar variabel.
Beberapa kegunaan dari regresi adalah untuk mengetahui variabel-variabel yang
memiliki pengaruh terhadap variabel dependen. Selain itu, regresi juga bisa
digunakan untuk memprediksi output berupa bilangan kontinu. Terdapat
beberapa jenis regresi seperti regresi linear, regresi linear berganda, regresi
polinomial, dll.
7
5. general_data.describe() : Melakukan analisis deskriptif secara otomatis.
Lalu, akan muncul mean, standar deviasi, min, max, dll.
8
8. Setelah data di-split menjadi 80% training set dan 20% test set,
selanjutnya masuk ke analisis regresi linear, ketikan script seperti dibawah.
Selanjutnya akan muncul intercept dan coef, 2 parameter ini digunakan
untuk menentukan model matematika yang baru.
10. Untuk menampilkan plot dari IQ dan Nilai dapat menggunakan script
seperti dibawah ini.
11. Tampilkan hasil test set dan training set serta garis regresi dalam satu plot.
9
12. Berdasarkan hasil diatas. Maka dapat didapatkan rumus sebagai berikut.
B. Decision Tree
Sebuah pohon memiliki banyak analogi dalam kehidupan nyata, dan
ternyata pohon tersebut telah memengaruhi area machine learning yang luas,
mencakup klasifikasi dan regresi. Dalam analisis keputusan, decision trees dapat
digunakan untuk merepresentasikan keputusan dan pengambilan keputusan
secara visual dan eksplisit. Seperti namanya, ini menggunakan model keputusan
seperti pohon.
10
Seperti yang kita lihat dari diagram di atas, decision trees dimulai dengan
simpul akar (root node), yang tidak memiliki cabang masuk. Cabang keluar dari
simpul akar kemudian masuk ke simpul internal (internal node), juga dikenal
sebagai simpul keputusan. Berdasarkan fitur yang tersedia, kedua tipe simpul
melakukan evaluasi untuk membentuk himpunan bagian yang homogen, yang
dilambangkan dengan simpul daun (leaf node), atau simpul terminal. Node daun
(leaf node) mewakili semua kemungkinan hasil dalam kumpulan data.
Sebagai contoh, bayangkan jika kita mencoba menilai apakah kita harus
berselancar atau tidak, kita dapat menggunakan aturan keputusan berikut untuk
membuat pilihan:
11
Keuntungan:
Kekurangan:
C. Random Forest
Random forest adalah Algoritma Supervised Machine Learning yang
digunakan secara luas dalam masalah Klasifikasi dan Regresi. Hal tersebut
12
membangun decision trees pada sampel yang berbeda dan mengambil suara
mayoritas untuk klasifikasi dan rata-rata dalam kasus regresi.
Salah satu fitur terpenting dari Algoritma Random Forest adalah dapat
menangani kumpulan data yang berisi variabel kontinu seperti kasus regresi dan
variabel kategori seperti dalam kasus klasifikasi. Hal tersebut membuahkan hasil
yang lebih baik untuk masalah klasifikasi.
Berikut analogi kehidupan nyata untuk memahami konsep ini lebih jauh.
Seorang siswa bernama X ingin memilih mata pelajaran, dan dia bingung tentang
pilihan mata pelajaran berdasarkan keahliannya. Jadi dia memutuskan untuk
berkonsultasi dengan berbagai orang seperti sepupunya, guru, orang tua,
mahasiswa sarjana, dan pekerja. Dia mengajukan berbagai pertanyaan kepada
mereka seperti mengapa dia harus memilih, peluang kerja, biaya kursus, dll.
Akhirnya, setelah berkonsultasi dengan berbagai orang tentang kursus, dia
memutuskan untuk mengambil kursus yang disarankan oleh kebanyakan orang.
Salah satu fitur terpenting dari algoritma random forest adalah dapat
menangani kumpulan data yang berisi variabel kontinu seperti dalam kasus
regresi dan variabel kategori seperti dalam kasus klasifikasi. Hal tersebut
menghasilkan hasil yang lebih baik untuk masalah klasifikasi.
1. Pilih titik data sebanyak K secara random dari data training set.
2. Buat decision tree untuk tiap-tiap sampel dengan titik data yang dipilih.
3. Tentukan berapa banyak jawaban dari decision tree yang ingin digunakan
untuk membangun random forest.
4. Hasil akhir dipertimbangkan berdasar suara mayoritas atau rata-rata.
13
Sebagai contoh: pertimbangkan keranjang buah sebagai data seperti yang
ditunjukkan pada gambar di bawah ini. Sekarang sejumlah n sampel diambil dari
keranjang buah dan decision tree individual dibuat untuk setiap sampel.
14
mempertimbangkan semua fitur.
3. Parallelization - Setiap pohon dibuat secara independen dari data
dan atribut yang berbeda. Ini berarti kita dapat menggunakan CPU
sepenuhnya untuk membangun random forest.
4. Train Test split - Dalam random forest kita tidak perlu memisahkan
data untuk latihan dan pengujian karena akan selalu ada 30% data
yang tidak terlihat oleh pohon keputusan.
5. Stabilitas - Stabilitas muncul karena hasil didasarkan pada voting
mayoritas/rata-rata.
Keuntungan:
Kekurangan:
15
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
import warnings
warnings.filterwarnings('ignore')
Dengan ketentuan jenis kelamin wanita disimbolkan dengan 0 dan jenis kelamin
pria disimbolkan dengan 1 diperoleh output sebagai berikut.
16
Output:
1. Hyperplane
2. Margin
Margin adalah jarak antara hyperplane dengan titik data terdekat dari
kedua kelas (atau lebih).
17
(maximized margin), sehingga data dari kedua kelas terpisahkan dengan jarak
yang paling jauh. Hal ini membantu meminimalkan kemungkinan kesalahan
klasifikasi. Perhatikan gambar di halaman selanjutnya.
Dalam pemodelan SVM, ada dua istilah penting lain yang juga perlu
dipahami: Support Vector dan Kernel.
1. Support Vector
Seperti yang tampak pada gambar di atas, Support Vector merujuk pada
data point yang terletak tepat pada margin (garis merah putus-putus), yang akan
menjadi acuan untuk menentukan hyperplane.
2. Kernel
Sedangkan Kernel adalah sebuah fungsi yang memetakan data dari ruang
dimensi rendah ke ruang dimensi tinggi. Hal ini dilakukan untuk membuat data
yang tidak dapat dipisahkan secara linear (dengan “garis atau bidang lurus”) di
ruang dimensi rendah menjadi dapat dipisahkan secara linear di ruang dimensi
tinggi.
Contoh jenis kernel SVM yang banyak dipakai: Linear, Polynomial, Radial
Basis Function (RBF), Sigmoid, dan Laplacian.
w1 * x1 + w2 * x2 + … + b = 0
dimana x1, x2, … adalah data; w1, w2, … adalah bobot atau koefisien, dan b
18
adalah bias / error term.
minimize: ½ ||w||2
dimana ||w||2 adalah norma Euclidean (L2) dari vektor bobot, xi adalah data
ke-i, yi adalah label kelas data ke-i, ∀i dan berarti berlaku untuk semua data ke-i.
Kelebihan SVM:
Kekurangan SVM:
Contoh penerapan SVM (dengan coding Python) dapat dilihat di Support Vector
Machine Classification with Python | by Kurnia Sari Pratiwi | Medium
A. Time Series
Time series adalah urutan berbagai titik data yang terjadi secara berurutan
untuk jangka waktu tertentu.
19
berarti asal mula waktu, tidak mempengaruhi sifat proses di bawah
faktor statistik.
1. Tren: Di mana tidak ada interval tetap dan perbedaan apa pun dalam
kumpulan data yang diberikan adalah garis waktu yang
berkelanjutan. Trennya adalah Tren Negatif atau Positif atau Null.
2. Musiman/Seasonality: Di mana interval reguler atau tetap bergeser
dalam kumpulan data dalam garis waktu yang berkelanjutan. Apakah
kurva lonceng atau gigi gergaji.
3. Siklus: Di mana tidak ada interval tetap, ketidakpastian dalam
gerakan dan polanya.
4. Irregularity: Situasi/peristiwa/skenario tak terduga dan lonjakan
dalam rentang waktu singkat.
20
dan Irregularitas.
2. Nilai MEAN dari mereka harus benar-benar konstan dalam data
selama analisis
3. VARIANSI harus konstan sehubungan dengan kerangka waktu
4. COVARIANCE mengukur hubungan antara dua variabel.
5. Non- Stasioner: Ini kebalikan dari Stasioner.
B. Mengukur Korelasi
Ada dua fungsi untuk mengukur korelasi antar data time series, yaitu
dengan Autocorrelation Function (ACF) dan Partial Autocorrelation
Function (PACF). Berikut penjelasan masing-masing fungsi.
21
C. Forecasting
Forecasting adalah bagian luas dari berbagai industri. Karena itu, kisaran
model forecasting juga sangat besar dengan masing-masing model memiliki
kelebihan dan kekurangannya sendiri. Pada bagian ini, akan membahas beberapa
model forecasting dasar dan sederhana. Terlepas dari kesederhanaannya, model
ini dapat menawarkan hasil yang baik dalam praktiknya dan memberikan dasar
yang baik untuk iterasi.
1. Average Forecast
Di mana h adalah waktu yang akan datang yang akan dilakukan forecasting ,
T adalah panjang deret waktu, 𝑦𝑡 adalah nilai yang diamati pada waktu t dan ȳ
adalah rata-rata dari nilai yang diamati.
Untuk model ini kita harus memiliki beberapa data masa lalu yang tersedia
untuk menghitung peramalan. Kami dapat mengimplementasikan ini dengan
Python menggunakan dataset penumpang pesawat.
Dari plot di atas, ramalannya jelas tidak terlalu bagus karena belum
menangkap tren atau musiman dalam data dan jelas jauh di bawah perkiraan.
Model ini dianggap sebagai tolok ukur untuk perkiraan apa pun dan sering
22
digunakan untuk memodelkan pasar saham dan data keuangan karena sifatnya
yang tidak menentu. Model naive juga bisa disebut model random-walk-
without-drift. Itu juga merupakan dasar di balik metrik kesalahan yang berarti
metric mean absolute scaled error (MASE).
Metode ketiga adalah perluasan dari metode naif, tetapi kali ini ramalannya
sama dengan nilai pengamatan terbaru di musim yang sama. Oleh karena itu, ini
dikenal sebagai Seasonal Naive Forecasting. Misalnya, ramalan untuk kuartal satu
berikutnya sama dengan nilai kuartal satu tahun sebelumnya. Model ini berguna
ketika kita memiliki variasi musiman yang jelas dan besar dalam deret waktu kita.
Secara matematis model ditulis sebagai:
Di mana m adalah musiman dari data. Jadi, untuk data bulanan dengan
musiman tahunan m=12, data triwulanan akan memiliki m=4 dan data mingguan
akan memiliki m=52.
Karena model memiliki komponen musiman yang cukup jelas dan besar,
Seasonal Naive Forecasting berperforma cukup baik. Namun, itu belum
23
sepenuhnya menangkap tren data karena kami memperkirakan volume
penumpang akan meningkat dari waktu ke waktu.
D. AR (Autoregressive)
E. MA (Moving Average)
24
G. ARIMA (Autoregressive Integrated Moving Average)
# ETS Decomposition
result = seasonal_decompose(airline['# Passengers'],
model ='multiplicative')
# ETS plot
result.plot()
Output:
25
2. Menganalisis parameter untuk model ARIMA
Output:
26
3. Fit ARIMA Model to AirPassengers dataset
result = model.fit()
result.summary()
Output:
start = len(train)
end = len(train) + len(test) - 1
27
Output:
Output:
28
H. SARIMA (Seasonal ARIMA)
29
EXERCISE
30