Anda di halaman 1dari 52

Introduction to

Machine Learning
Outline
1) Definisi dan konsep dasar machine learning
2) Sejarah machine learning
3) Tipe-tipe machine learning
4) Tools machine learning
5) Membangun model machine learning
6) Implementasi machine learning menggunakan python & scikit-learn
Definisi dan Konsep Dasar Machine Learning
Machine Learning adalah penggunaan dan pengembangan sistem komputer yang dapat belajar dan
beradaptasi tanpa mengikuti instruksi eksplisit, dengan menggunakan algoritma dan model statistik
untuk menganalisis dan menarik kesimpulan dari pola-pola dalam data. (Oxford Languages)
Definisi dan Konsep Dasar Machine Learning
Konsep dasar Machine Learning:

1. Data: Machine Learning bergantung pada data yang berkualitas. Data dapat berasal dari
berbagai sumber, seperti sensor, basis data, dan pengalaman manusia.
2. Model: Model Machine Learning adalah representasi matematis dari data yang digunakan
untuk membuat prediksi atau keputusan. Model ini akan terus ditingkatkan melalui proses
iterasi.
3. Pembelajaran (Training): Machine Learning memungkinkan sistem untuk belajar secara
mandiri dari data, dengan cara mengidentifikasi pola dan tren yang terkait dengan tugas
tertentu.
4. Tes (Testing): Setelah dilakukan pembelajaran pada data, sistem dapat melakukan testing
untuk memprediksi atau memberikan hasil yang relevan berdasarkan masukan data baru.
Sejarah Machine Learning
Seorang ilmuwan komputer visioner bernama
Alan Turing sangat tertarik pada konsep
kecerdasan buatan dan berpikir tentang
bagaimana mesin dapat belajar secara mandiri.
Ia memulai petualangannya dalam machine
learning dengan mengajukan pertanyaan
fundamental, "Apakah mesin dapat belajar dari
pengalaman?"

Alan Turing, 1912-1954


Sejarah Machine Learning
Alan bertemu dengan seorang ahli permainan catur bernama Arthur Samuel. Ia mulai
mengembangkan algoritma yang memungkinkan komputer untuk mempelajari pergerakan dan
strategi dari setiap permainan catur yang dimainkannya.

Pada suatu hari, komputer yang dikembangkan oleh Arthur berhasil mengalahkannya dalam
permainan catur. Mereka menyadari bahwa mereka telah mengawali langkah penting dalam
pengembangan machine learning.

Arthur Samuel, 1901-1990


Sejarah Machine Learning
Kemudian, pada tahun-tahun berikutnya, para peneliti seperti Tom Mitchell, Judea Pearl, dan
Marvin Minsky bergabung dalam upaya memperluas konsep machine learning. Mereka
mengembangkan metode berbasis aturan, logika, dan statistik untuk membantu komputer belajar
dari data dan membuat prediksi yang cerdas.

Meskipun ada kemajuan yang signifikan, mereka menghadapi tantangan baru. Komputer di masa
tersebut tidak memiliki kekuatan komputasi yang cukup untuk menangani data yang lebih besar dan
model yang lebih kompleks.
Sejarah Machine Learning
Pada awal abad ke-21, dengan munculnya era Big Data, kemajuan dalam perangkat keras dan
kapabilitas komputasi memungkinkan para peneliti untuk melatih model machine learning dengan
dataset yang sangat besar. Algoritma baru seperti Support Vector Machines, Random Forests, dan
Gradient Boosting menjadi populer dan memberikan keunggulan baru dalam pengolahan data.
Sejarah Machine Learning
Perkembangan terbesar dalam machine learning datang dalam bentuk deep learning. Para ilmuwan
seperti Geoffrey Hinton, Yann LeCun, dan Yoshua Bengio menemukan cara baru untuk
menggunakan jaringan saraf tiruan dengan banyak lapisan (deep neural network). Dalam
eksperimen yang menarik, mereka melatih jaringan saraf untuk mengenali objek dalam gambar,
mengenali suara, dan bahkan menghasilkan teks yang menyerupai tulisan manusia.
Tipe-tipe Machine Learning
Supervised Learning: mempelajari pola dari data yang sudah dilabeli atau diketahui
output-nya, dan digunakan untuk membuat prediksi terhadap data baru.

Membantu untuk mengumpulkan atau memproduksi output data dari pengalaman yang sudah
pernah terjadi.

Algoritma komputer melakukan pembelajaran secara offline sebelum menghadapi data.


Artinya, komputer “dibekali” sejumlah materi tertentu agar nanti dapat mengenali data
dengan mudah.

Contoh: Algoritma regresi, classification.


Tipe-tipe Machine Learning

Supervised Learning
Tipe-tipe Machine Learning
Unsupervised Learning: mempelajari pola dari data tanpa diketahui output-nya, dan
digunakan untuk mengelompokkan atau menemukan struktur dalam data.

Mengolah data yang tidak memiliki label, sehingga tujuan dalam menggunakan Unsupervised
Learning adalah mengelompokkan suatu data yang hampir sama dengan data tertentu.

Algoritma komputer mempelajari data secara real-time. Itu artinya, ketika komputer
berhadapan dengan data, pada saat itu juga, komputer belajar mengenali data.

Contoh: Algoritma clustering, dimensional reduction.


Tipe-tipe Machine Learning

Unsupervised Learning
Tipe-tipe Machine Learning
Reinforcement Learning: teknik pembelajaran mesin (machine learning) yang memungkinkan
agen (subjek yang melakukan tindakan) untuk belajar dalam sebuah lingkungan yang interaktif
melalui sebuah sistem trial and error dari feedback yang didapatkan dari tindakan dan
pengalaman mereka sendiri.

Reinforcement learning menggunakan reward dan punishment sebagai sinyal untuk


mengambil keputusan atau tindakan berikutnya.

Digunakan pada dunia robotika, pertanian, dll.

Contoh algoritma: Q-learning, R-learning


Tipe-tipe Machine Learning

Environment

Reward
Interpreter Action

State
Agent

Reinforcement Learning
Algoritma Machine Learning
Algoritma Machine Learning adalah metode komputasi yang digunakan untuk
mempelajari pola-pola dalam data dan digunakan untuk membuat prediksi atau
klasifikasi terhadap data baru.

● Regresi
● Decision Tree
● Random Forest
● Support Vector Machine (SVM)
● Neural Network (Deep Learning)
● K-Nearest Neighbor (KNN)
● Clustering
https://dqlab.id/variasi-jenis-algoritma-machine-learning-sudah-tahu
Tools Machine Learning
Kita menggunakan alat (tools) dalam machine learning karena mereka menyediakan kerangka kerja,
fungsi, dan fitur yang memudahkan proses pengembangan, pelatihan, evaluasi, dan penerapan
model machine learning.

- Efisiensi pengembangan
- Abstraksi kompleksitas
- Optimalisasi performance
- Skalabilitas
- Kemudahan penggunaan
- Support komunitas
Tools Machine Learning
Membangun Model Machine Learning
1. Pemilihan data dan preprocessing

2. Pemilihan algoritma Machine Learning

3. Pelatihan model

4. Evaluasi model

5. Tuning model
Pemilihan data dan preprocessing
Pemilihan data adalah proses memilih subset yang relevan dari dataset yang tersedia untuk
digunakan dalam pelatihan model.

Tujuan dari pemilihan data adalah untuk meningkatkan kualitas model dengan menggunakan
data yang paling informatif.

Data preprocessing adalah proses persiapan data sebelum menggunakan algoritma machine
learning. Hal ini penting karena dataset yang asli mungkin mengandung noise, outlier, atau
informasi yang tidak relevan, yang dapat mempengaruhi kinerja model.
Pemilihan data dan preprocessing
Beberapa metode pemilihan data yang umum digunakan meliputi:

Pemilihan Fitur (Feature Selection): Memilih subset fitur yang paling penting atau relevan dari
dataset. Hal ini dapat membantu mengurangi dimensi data dan menghindari masalah yang
disebabkan oleh fitur yang tidak informatif atau redundan.

Pemilihan Sampel (Instance Selection): Memilih subset sampel yang mewakili distribusi data
dengan baik. Beberapa teknik yang digunakan dalam pemilihan sampel termasuk pengambilan
sampel acak, pengambilan sampel berimbang, dan pengambilan sampel berdasarkan kriteria
tertentu.
Pemilihan data dan preprocessing
Data preprocessing dapat dilakukan dengan cara sebagai berikut.

Pembersihan Data (Data Cleaning): Menghapus atau mengatasi nilai yang hilang (missing
values) dalam dataset. Ini dapat dilakukan dengan mengisi nilai yang hilang dengan estimasi
yang sesuai atau dengan menghapus baris atau kolom yang mengandung nilai yang hilang.

Normalisasi: Mengubah skala data menjadi rentang yang seragam. Normalisasi umumnya
dilakukan untuk memastikan bahwa semua fitur memiliki pengaruh yang seimbang dalam
pembelajaran model.

Deteksi dan Penanganan Outlier: Mengidentifikasi dan menangani data outlier yang dapat
mempengaruhi pembelajaran model secara negatif.
Pemilihan Algoritma Machine Learning
Proses memilih algoritma yang paling cocok untuk tugas atau masalah yang ingin diselesaikan
dengan mempertimbangkan beberapa faktor:

1. Tipe Masalah (regresi, klasifikasi, clustering, dll).


2. Ukuran dataset.
3. Keberlanjutan (skalabilitas).
4. Kompleksitas masalah.
5. Ketersediaan data.
Pelatihan model
Proses pelatihan model adalah sebuah proses mengekstrak pola atau pengetahuan pada data
latih menggunakan algoritma yang dipilih. Hasil atau output pelatihan menggunakan algoritma
yang dipilih sebelumnya adalah sebuah model machine learning.

Pada proses pelatihan digunakan dua jenis dataset yaitu training yang digunakan untuk
mengekstrak pola pada data, dan validation dataset yang digunakan untuk validasi model dan
optimalisasi hyperparameter.
Evaluasi model
Evaluasi model adalah sebuah proses untuk mengukur performa model yang telah dihasilkan
pada proses training. Metode atau metrik yang umum digunakan adalah:

1. Confusion matrix. Matrix ini memiliki 4 kolom yang masing-masing memiliki nilai:
a. TP (True positive)
b. TN (True negative)
c. FP (False positive)
d. FN (False negative)
Evaluasi model
Berdasarkan nilai-nilai confusion matrix tersebut dapat dihitung beberapa metric-metric
berikut.

- Akurasi = (TP + TN) / (TP + TN + FP + FN)


- Recall = TP / (TP + FN)
- Presisi = TP / (TP + FP)
Evaluasi model
1. Kurva AUC-ROC merupakan pengukuran performa untuk masalah klasifikasi pada
berbagai pengaturan threshold. ROC adalah kurva probabilitas dan AUC memiliki derajat
atau ukuran keterpisahan. Semakin tinggi AUC maka semakin baik model memprediksi 0
sebagai 0 dan 1 sebagai 1.
2. Root mean square error (RMSE) adalah metode pengukuran dengan mengukur
perbedaan nilai dari prediksi sebuah model dengan nilai observasi atau label. Nilai RMSE
dihitung dengan rumus:

Dimana At = Nilai data Aktual, Ft = Nilai hasil peramalan, N= banyaknya data, dan ∑ =
Summation (Jumlahkan keseluruhan nilai)
Evaluasi model
Evaluasi model adalah sebuah proses untuk mengukur performa model yang telah dihasilkan
pada proses training. Metode atau metrik yang umum digunakan adalah:

1. Confusion matrix.
2. Kurva AUC-ROC.
3. Root mean square error (RMSE).
4. R-Square
Tuning model
Tuning model algoritma machine learning adalah proses mengoptimalkan parameter dan
hiperparameter model untuk mencapai performa yang lebih baik.

1. Parameter dan hiperparameter.


2. Metode tuning: Grid search/random search/bayesian optimization.
3. Cross-validation.
4. Metrik evaluasi.
5. Automatisasi tuning.
Implementasi Machine Learning
Menggunakan Python & Scikit-Learn
Mendeteksi jenis buah menggunakan supervised learning metode klasifikasi KNN

https://www.kaggle.com/datasets/mjamilmoughal/fruits-with-colors-dataset
Dataset: Fruits data with colors
fruit_label fruit_name fruit_subtype mass width height color_score
1 apple granny_smith 192 8.4 7.3 0.55
1 apple granny_smith 180 8.0 6.8 0.59
1 apple granny_smith 176 7.4 7.2 0.60
2 mandarin mandarin 86 6.2 4.7 0.80
2 mandarin mandarin 84 6.0 4.6 0.79
2 mandarin mandarin 80 5.8 4.3 0.77
2 mandarin mandarin 80 5.9 4.3 0.81
2 mandarin mandarin 76 5.8 4.0 0.81
1 apple braeburn 178 7.1 7.8 0.92
1 apple braeburn 172 7.4 7.0 0.89
1 apple braeburn 166 6.9 7.3 0.93
1 apple braeburn 172 7.1 7.6 0.92
1 apple braeburn 154 7.0 7.1 0.88
1 apple golden_delicious 164 7.3 7.7 0.70

https://www.kaggle.com/datasets/mjamilmoughal/fruits-with-colors-dataset
Membaca dataset

import numpy as np
import pandas as pd

buah = pd.read_table("fruit_data_with_colors.txt")
buah.head(10)
Membaca jumlah data total

buah.info()
Mengetes asosiasi antar fitur
label_mapping = dict(zip(buah.fruit_label.unique(), buah.fruit_name.unique()))
label_mapping
Mengecek jumlah masing-masing buah

buah["fruit_name"].value_counts()
Mengecek missing value
Mengecek apakah ada nilai fitur 0, yang dapat dianggap sebagai missing value karena tidak
memberikan arti pada informasi dataset.

Melihat informasi dataset secara luas (big picture) menggunakan visualisasi grafik.

import seaborn as sns


g = sns.PairGrid(buah, hue="fruit_name")
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
Analisa dari visualisasi
Ditemukan pencilan (outlier) pada data.

Nilai mass, width, height, dan color_score menunjukkan range nilai (scalling) yang tidak sama.

Untuk penggunaan algoritma KNN pada data seperti ini, dataset dianggap memiliki masalah →
harus dilakukan data scalling.

Menghapus data yang bertipe teks.


Menghapus data teks
buah = buah.drop(["fruit_name", "fruit_subtype"], axis=1)
buah.head(10)
Scalling data
Untuk memudahkan scalling, kita dapat memisahkan fitur-fitur dataset dan labelnya.

fitur = buah[["mass", "width", "height", "color_score"]]


label = buah["fruit_label"]
Scalling data menggunakan MinMaxScaler()
Fungsi MinMaxScaler() melakukan scalling pada data dengan mengubah range data menjadi antara
0 (nilai data terendah) dan 1 (nilai data tertinggi).

from sklearn import preprocessing


scaler = preprocessing.MinMaxScaler()
x_scaled = scaler.fit_transform(x)
x_scaled
Scalling data menggunakan MinMaxScaler()
Split data menjadi training & testing set

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y,


random_state=0)

x_train_scaled, x_test_scaled, y_train_scaled, y_test_scaled =


train_test_split(x_scaled, y, random_state=0)
Membangun model
Membangun model untuk dataset original maupun yang telah discalling.

Untuk membandingkan score kedua model


Membangun model

from sklearn.neighbors import KNeighborsClassifier


m1 = KNeighborsClassifier(n_neighbors=3).fit(x_train, y_train)
acc1 = m1.score(x_test, y_test)
print(acc1)

from sklearn.neighbors import KNeighborsClassifier


m2 = KNeighborsClassifier(n_neighbors=3).fit(x_train_scaled,
y_train)
acc2 = m2.score(x_test_scaled, y_test)
print(acc2)
Membangun model
Mencari nilai K terbaik
K = np.arange(2,30)
akurasi = []
for k in K:
m2 = KNeighborsClassifier(n_neighbors=k).fit(x_train_scaled, y_train)
acc2 = m2.score(x_test_scaled, y_test)
akurasi.append(acc2)
print(akurasi)

import matplotlib.pyplot as plt


plt.plot(K, akurasi)
plt.show()
Mencari nilai K terbaik (Tuning model)

Anda mungkin juga menyukai