Skip to main content

Machine Learning Workflow

Machine Learning Workflow dengan Scikit-Learn​

Setelah memahami konsep dasar Machine Learning, kategori pembelajaran, serta tahapan workflow Machine Learning, langkah berikutnya adalah menerapkannya menggunakan scikit-learn.

Pada materi ini, kita akan menggunakan Iris Dataset, salah satu dataset yang umum digunakan untuk mempelajari konsep Supervised Learning, khususnya Classification.

Workflow yang akan digunakan terdiri dari enam langkah utama:

Import Data
↓
Clean Data
↓
Split Data
↓
Create Model
↓
Check Output
↓
Improve

Enam Langkah Utama Machine Learning​

1. Import the Data​

Langkah pertama adalah mengambil atau memuat dataset yang akan digunakan.

Data dapat berasal dari berbagai sumber, seperti:

  • CSV
  • Database
  • API
  • Dataset dari Kaggle
  • Dataset yang disediakan oleh library

Pada contoh ini, dataset Iris sudah tersedia melalui scikit-learn.


2. Clean the Data​

Data yang diperoleh dari dunia nyata biasanya perlu dibersihkan terlebih dahulu.

Proses data cleaning dapat mencakup:

  • Menangani missing values.
  • Memperbaiki format data.
  • Menghapus data yang tidak valid.
  • Mengubah tipe data.
  • Melakukan transformasi data.

Pada dataset Iris, proses cleaning relatif sederhana karena dataset sudah disiapkan dalam format yang dapat langsung digunakan untuk latihan.


3. Split Data​

Dataset perlu dibagi menjadi dua bagian:

Training Set
+
Test Set

Training Set digunakan untuk membuat model belajar dari data.

Test Set digunakan untuk mengetahui seberapa baik model bekerja terhadap data yang belum digunakan saat proses training.

Contoh pembagian:

Dataset
│
├── 60% → Training Data
│
└── 40% → Testing Data

Pembagian data dapat dilakukan menggunakan fungsi:

train_test_split()

4. Create a Model​

Setelah data dipersiapkan dan dibagi, langkah berikutnya adalah membuat model Machine Learning.

Dalam praktiknya, kita tidak selalu perlu membuat algoritma Machine Learning dari awal.

Library scikit-learn menyediakan berbagai algoritma yang dapat digunakan untuk membuat model.

Contohnya:

  • Decision Tree
  • K-Nearest Neighbors
  • Linear Regression
  • Random Forest
  • Support Vector Machine

Model yang dipilih bergantung pada jenis permasalahan dan karakteristik data.


5. Check the Output​

Setelah model dibuat dan dilatih, model perlu diuji menggunakan Test Set.

Tujuannya adalah mengetahui apakah model dapat menghasilkan prediksi yang benar terhadap data yang belum pernah digunakan untuk training.

Secara sederhana:

Test Data
↓
Machine Learning Model
↓
Prediction
↓
Compare dengan Label Asli

Hasil perbandingan tersebut kemudian digunakan untuk mengukur performa model.


6. Improve​

Model pertama yang dibuat belum tentu menghasilkan performa terbaik.

Jika hasil evaluasi belum memuaskan, kita dapat melakukan proses improvement.

Beberapa pendekatan yang dapat dilakukan antara lain:

  • Menggunakan algoritma yang berbeda.
  • Mengubah fitur yang digunakan.
  • Menambahkan fitur.
  • Mengubah parameter model.
  • Menggunakan data yang lebih baik.
  • Melakukan preprocessing tambahan.

Proses ini merupakan bagian dari eksperimen dalam Machine Learning.


Mengenal Iris Dataset​

Iris Dataset merupakan dataset yang berisi informasi mengenai bunga Iris.

Dataset ini digunakan untuk melakukan klasifikasi tiga spesies bunga:

Iris setosa
Iris versicolor
Iris virginica

Dalam dataset, ketiga kelas tersebut direpresentasikan menggunakan angka:

LabelSpesies
0Iris setosa
1Iris versicolor
2Iris virginica

Karena dataset memiliki label atau jawaban yang sudah diketahui, Iris Dataset termasuk Supervised Learning.


Features dan Target​

Dalam Machine Learning terdapat dua istilah penting:

X → Features / Input
y → Target / Label

Features (X)​

Features adalah informasi yang digunakan model untuk membuat prediksi.

Pada Iris Dataset terdapat empat fitur:

Sepal Length
Sepal Width
Petal Length
Petal Width

Secara sederhana:

X
│
├── Sepal Length
├── Sepal Width
├── Petal Length
└── Petal Width

Target (y)​

Target merupakan jawaban yang ingin diprediksi oleh model.

Pada dataset Iris:

0 → Iris setosa
1 → Iris versicolor
2 → Iris virginica

Sehingga model akan mencoba mempelajari hubungan antara:

Features (X)
↓
Model ML
↓
Target (y)

Ringkasan X dan y​

Sederhananya:

X = informasi yang diberikan kepada model
y = jawaban yang ingin dipelajari model

Dalam Machine Learning:

  • X = Features (fitur/input)
  • y = Target/Label (output/jawaban)

Mengimpor Dataset Iris​

Dataset Iris dapat diambil langsung dari scikit-learn.

from sklearn.datasets import load_iris

Kemudian dataset dimuat:

iris = load_iris()

Objek iris sekarang berisi berbagai informasi mengenai dataset.


Mengambil Features dan Target​

Kita dapat mengambil data fitur dan target:

X = iris.data
y = iris.target

Konvensi yang umum digunakan dalam Machine Learning adalah:

X → input/features
y → output/target

Selain data tersebut, kita juga dapat mengambil nama fitur dan nama target:

feature_names = iris.feature_names
target_names = iris.target_names

Memahami Struktur Data​

Data X pada scikit-learn disimpan dalam bentuk NumPy Array.

Karena Iris Dataset memiliki:

150 data
4 features

maka bentuk X adalah:

(150, 4)

Artinya:

150 → jumlah data/baris
4 → jumlah fitur/kolom

Sedangkan y berisi label untuk setiap data.


Membagi Dataset dengan train_test_split​

Untuk membagi dataset menjadi data training dan testing, kita dapat menggunakan:

from sklearn.model_selection import train_test_split

Kemudian:

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

Parameter:

test_size=0.4

berarti 40% data digunakan sebagai data testing.

Dengan demikian:

60% → Training Set
40% → Test Set

Memeriksa Ukuran Data​

Kita dapat menggunakan .shape untuk mengetahui ukuran masing-masing dataset.

print(X_train.shape)
print(X_test.shape)

Dengan dataset Iris dan test_size=0.4, secara umum hasilnya:

X_train → (90, 4)
X_test → (60, 4)

Artinya:

X_train
90 data × 4 features

X_test
60 data × 4 features

Memahami Empat Variabel Hasil Split​

Perhatikan hasil berikut:

X_train, X_test, y_train, y_test

Masing-masing memiliki fungsi:

VariabelIsiKegunaan
X_trainFeatures data trainingInput untuk training
X_testFeatures data testingInput untuk testing
y_trainTarget data trainingJawaban saat training
y_testTarget data testingJawaban untuk evaluasi

Hubungannya dapat digambarkan:

Training
┌──────────────┬──────────────┐
│ X_train │ y_train │
│ Features │ Target │
└──────────────┴──────────────┘
↓
Model Training


Testing
┌──────────────┬──────────────┐
│ X_test │ y_test │
│ Features │ Target │
└──────────────┴──────────────┘
↓
Model Evaluation

Implementasi Tahap Import dan Split​

Berikut implementasi tahap awal workflow:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# Load dataset
iris = load_iris()

# Features dan target
X = iris.data # X = Features (fitur/input), informasi yang diberikan kepada model
y = iris.target # y = Target/Label (output/jawaban), jawaban yang ingin dipelajari model

# Informasi dataset
feature_names = iris.feature_names
target_names = iris.target_names

# Membagi dataset menjadi data training dan data testing
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=0.4
)

# Memeriksa ukuran data
print("Training data:", X_train.shape)
print("Testing data :", X_test.shape)

Mengapa Data Harus Dibagi?​

Salah satu alasan utama membagi data adalah agar kita dapat mengetahui kemampuan model terhadap data yang belum pernah digunakan saat training.

Jika model diuji menggunakan data yang sama dengan data training, hasil evaluasi dapat memberikan gambaran yang kurang tepat mengenai kemampuan model terhadap data baru.

Konsep sederhananya:

Training Data
↓
Model belajar
↓
Test Data
↓
Model diuji

Dengan demikian, test set berfungsi sebagai data untuk mengevaluasi kemampuan generalisasi model.


Proporsi Training dan Testing​

Tidak ada satu rasio yang selalu cocok untuk semua dataset.

Beberapa pembagian yang umum digunakan:

70 : 30
80 : 20
60 : 40

Misalnya:

80% Training
20% Testing

atau:

70% Training
30% Testing

Pemilihan proporsi bergantung pada jumlah data dan kebutuhan eksperimen.

Pada materi ini digunakan:

60% Training
40% Testing

karena test_size=0.4.


Iris Dataset sebagai Supervised Learning​

Iris Dataset termasuk Supervised Learning karena setiap data memiliki target atau label.

Contohnya:

Features
┌───────────────────────────────────────┐
│ Sepal Length │
│ Sepal Width │
│ Petal Length │
│ Petal Width │
└───────────────────────────────────────┘
↓
Model ML
↓
Prediction
↓
Class/Label

Model belajar berdasarkan pasangan:

Input → Output

atau:

X → y

Konsep Penting​

X dan y​

Dalam banyak implementasi Machine Learning menggunakan Python, kita akan sering menemukan:

X = ...
y = ...

Gunakan cara berpikir:

X = data yang digunakan untuk membuat prediksi
y = jawaban yang ingin diprediksi

Training Data​

Training data digunakan untuk membuat model belajar.

X_train + y_train
↓
Training
↓
Model

Test Data​

Test data digunakan untuk mengevaluasi model.

X_test
↓
Model
↓
Prediction
↓
Compare
↑
y_test

NumPy Array​

Dataset yang digunakan oleh scikit-learn umumnya direpresentasikan menggunakan struktur data NumPy seperti array multidimensi.

Contoh:

X.shape

(150, 4)

Struktur tersebut menunjukkan jumlah data dan jumlah fitur.


Workflow Machine Learning Lengkap​

Dengan materi yang sudah dipelajari, workflow Machine Learning dapat digambarkan sebagai berikut:

1. Import Data
↓
2. Clean Data
↓
3. Split Data
↓
4. Create Model
↓
5. Check Output
↓
6. Improve

Pada materi Iris Dataset, kita baru menerapkan bagian awal:

Import Data
↓
Memahami X dan y
↓
Split Training & Testing

Tahap berikutnya adalah menggunakan X_train dan y_train untuk melatih model Machine Learning, kemudian menggunakan X_test dan y_test untuk mengevaluasi hasilnya.


Ringkasan​

Pada materi ini kita mempelajari workflow Machine Learning sederhana menggunakan scikit-learn.

Konsep utama:

  • Machine Learning dapat dilakukan melalui workflow yang sistematis.
  • Workflow dasar terdiri dari enam tahap: Import, Clean, Split, Create, Check, Improve.
  • Iris Dataset merupakan contoh dataset untuk Supervised Learning.
  • Iris memiliki tiga kelas: setosa, versicolor, dan virginica.
  • Dataset memiliki empat features: sepal length, sepal width, petal length, dan petal width.
  • X digunakan untuk merepresentasikan features/input.
  • y digunakan untuk merepresentasikan target/label.
  • train_test_split() digunakan untuk membagi data menjadi training dan testing.
  • test_size=0.4 menghasilkan pembagian 60% training dan 40% testing.
  • Data pada scikit-learn umumnya menggunakan struktur NumPy Array.

Kesimpulan​

Machine Learning tidak dimulai langsung dari pembuatan model.

Sebelum model dibuat, kita perlu memahami data yang akan digunakan dan mempersiapkannya dengan benar.

Pada Iris Dataset, proses awalnya adalah:

Iris Dataset
↓
X = Features
y = Target
↓
train_test_split()
↓
┌───────────────┐
│ Training Data │
│ X_train │
│ y_train │
└───────────────┘
+
┌───────────────┐
│ Testing Data │
│ X_test │
│ y_test │
└───────────────┘

Setelah tahap ini selesai, kita sudah memiliki data yang siap digunakan untuk membangun dan melatih model Machine Learning.