Contoh Soal Hidden Markov Model untuk Machine Learning dan Data Science

Dunia machine learning sering kali berurusan dengan data yang tidak statis, melainkan data yang memiliki urutan waktu atau sekuensial. Salah satu algoritma paling fundamental namun sangat kuat dalam menangani masalah ini adalah Hidden Markov Model (HMM). Meskipun model-model deep learning seperti RNN atau Transformer saat ini mendominasi, pemahaman mendalam tentang HMM tetap menjadi fondasi penting bagi para praktisi Data Science.

Artikel ini akan mengupas tuntas konsep HMM, mulai dari teori dasar hingga contoh soal perhitungan manual agar Anda benar-benar memahami mekanisme di balik layar.

Baca juga: Belajar Hidden Markov Model: Contoh Soal, Rumus, dan Pembahasan Lengkap

Apa itu Hidden Markov Model (HMM)?

Hidden Markov Model adalah model statistik yang digunakan untuk menggambarkan evolusi dari variabel yang dapat diamati (observable) yang bergantung pada variabel internal yang tidak dapat diamati secara langsung (hidden/tersembunyi).

🔖 Baca juga:
Prospek karir Pendidikan Olahraga Universitas Teknokrat Indonesia Kampus Terbaik di Lampung

Bayangkan Anda berada di dalam ruangan tanpa jendela. Anda tidak tahu apakah di luar sedang hujan atau cerah. Namun, Anda melihat teman Anda masuk membawa payung yang basah. Kondisi cuaca adalah Hidden State, sedangkan “payung basah” adalah Observation.

Komponen Utama HMM

Sebelum masuk ke contoh soal, kita harus memahami lima elemen kunci yang membentuk HMM:

  1. States (S): Sekumpulan keadaan tersembunyi (misalnya: Hujan, Cerah).
  2. Observations (O): Sekumpulan simbol yang dapat diamati (misalnya: Membawa Payung, Tidak Membawa Payung).
  3. Transition Probabilities (A): Matriks probabilitas perpindahan dari satu state ke state lainnya.
  4. Emission Probabilities (B): Matriks probabilitas munculnya observasi tertentu dari sebuah state.
  5. Initial State Probabilities ($\pi$): Peluang sistem dimulai pada state tertentu.

Tiga Masalah Utama dalam HMM

Dalam aplikasi Machine Learning, kita biasanya menggunakan HMM untuk menyelesaikan tiga tipe persoalan:

  • Evaluation (The Forward Algorithm): Menghitung probabilitas dari suatu urutan observasi tertentu.
  • Decoding (The Viterbi Algorithm): Menentukan urutan state tersembunyi yang paling mungkin menghasilkan urutan observasi tersebut.
  • Learning (The Baum-Welch Algorithm): Menyesuaikan parameter model (A, B, $\pi$) berdasarkan data observasi yang ada.

Contoh Soal 1: Prediksi Cuaca Berdasarkan Aktivitas (Evaluation)

Mari kita gunakan studi kasus sederhana untuk memahami bagaimana probabilitas dihitung dalam HMM.

Skenario

Seorang ilmuwan data ingin memprediksi kondisi cuaca di sebuah kota berdasarkan aktivitas seorang warga bernama Budi. Budi memiliki dua aktivitas: Jalan-jalan atau Membersihkan Rumah. Cuaca hanya ada dua kemungkinan: Cerah atau Hujan.

Data Model:

  • States: {Cerah, Hujan}
  • Observations: {Jalan, Bersih}

Matriks Transisi (A):

| Dari \ Ke | Cerah | Hujan |

| :— | :— | :— |

| Cerah | 0.7 | 0.3 |

| Hujan | 0.4 | 0.6 |

Matriks Emisi (B):

| State \ Obs | Jalan | Bersih |

| :— | :— | :— |

| Cerah | 0.8 | 0.2 |

| Hujan | 0.1 | 0.9 |

Initial Probabilities ($\pi$):

  • P(Cerah) = 0.6
  • P(Hujan) = 0.4

Pertanyaan:

Berapa probabilitas Budi melakukan aktivitas {Jalan, Bersih} secara berurutan?

Penyelesaian Manual:

Untuk menghitung $P(O_1 = \text{Jalan}, O_2 = \text{Bersih})$, kita harus menjumlahkan semua kemungkinan jalur state yang bisa terjadi (Cerah-Cerah, Cerah-Hujan, Hujan-Cerah, Hujan-Hujan).

Formula umum:

$$P(O) = \sum_{S} P(O|S)P(S)$$

Langkah 1: Hitung untuk tiap kemungkinan jalur

  1. Cerah -> Cerah: $0.6 (\pi) \times 0.8 (\text{Jalan|C}) \times 0.7 (\text{Trans C-C}) \times 0.2 (\text{Bersih|C}) = 0.0672$
  2. Cerah -> Hujan: $0.6 (\pi) \times 0.8 (\text{Jalan|C}) \times 0.3 (\text{Trans C-H}) \times 0.9 (\text{Bersih|H}) = 0.1296$
  3. Hujan -> Cerah: $0.4 (\pi) \times 0.1 (\text{Jalan|H}) \times 0.4 (\text{Trans H-C}) \times 0.2 (\text{Bersih|C}) = 0.0032$
  4. Hujan -> Hujan: $0.4 (\pi) \times 0.1 (\text{Jalan|H}) \times 0.6 (\text{Trans H-H}) \times 0.9 (\text{Bersih|H}) = 0.0216$

Langkah 2: Total Probabilitas

Total = $0.0672 + 0.1296 + 0.0032 + 0.0216 = 0.2216$

Jadi, probabilitas urutan observasi tersebut adalah 22.16%.

Contoh Soal 2: Algoritma Viterbi (Decoding)

Masalah decoding adalah yang paling sering muncul di Data Science, seperti pada Part-of-Speech (POS) Tagging dalam NLP. Kita ingin tahu urutan state yang “paling mungkin”.

Pertanyaan:

Menggunakan data yang sama dengan Contoh 1, jika Budi terlihat Jalan lalu Bersih, manakah urutan cuaca yang paling mungkin terjadi?

Penyelesaian dengan Algoritma Viterbi:

Viterbi bekerja dengan mencari nilai maksimum di setiap langkah waktu.

Waktu $t=1$ (Observasi: Jalan):

  • V(Cerah) = $\pi(\text{C}) \times B(\text{Jalan|C}) = 0.6 \times 0.8 = 0.48$
  • V(Hujan) = $\pi(\text{H}) \times B(\text{Jalan|H}) = 0.4 \times 0.1 = 0.04$

Waktu $t=2$ (Observasi: Bersih):

  • Untuk State Cerah:
    • Dari Cerah: $V(C, t=1) \times A(\text{C-C}) \times B(\text{Bersih|C}) = 0.48 \times 0.7 \times 0.2 = 0.0672$
    • Dari Hujan: $V(H, t=1) \times A(\text{H-C}) \times B(\text{Bersih|C}) = 0.04 \times 0.4 \times 0.2 = 0.0032$
    • Maksimum = 0.0672 (Datang dari Cerah)
  • Untuk State Hujan:
    • Dari Cerah: $V(C, t=1) \times A(\text{C-H}) \times B(\text{Bersih|H}) = 0.48 \times 0.3 \times 0.9 = 0.1296$
    • Dari Hujan: $V(H, t=1) \times A(\text{H-H}) \times B(\text{Bersih|H}) = 0.04 \times 0.6 \times 0.9 = 0.0216$
    • Maksimum = 0.1296 (Datang dari Cerah)

Kesimpulan Viterbi:

Nilai tertinggi di $t=2$ adalah 0.1296 yang berakhir di state Hujan dan berasal dari state Cerah. Maka, urutan paling mungkin adalah Cerah -> Hujan.

Penerapan HMM dalam Real-World Data Science

Mengapa kita mempelajari soal-soal ini? Karena di industri, HMM digunakan untuk:

  1. Bioinformatika: Memprediksi urutan gen (DNA) di mana state adalah exon/intron dan observasi adalah nukleotida.
  2. Pemrosesan Bahasa Alami (NLP): Menentukan jenis kata (kata benda, kata kerja) dalam sebuah kalimat.
  3. Finance: Mendeteksi perubahan rezim pasar (bullish vs bearish) yang tidak terlihat langsung dari harga saham saja.
  4. Speech Recognition: Mengubah sinyal suara (observasi) menjadi fonem atau kata (hidden states).

Tips Implementasi di Python

Untuk menyelesaikan soal-soal di atas menggunakan pemrograman, Anda tidak perlu menghitung manual. Library hmmlearn adalah standar industri untuk Python.

Python

from hmmlearn import hmm
import numpy as np

# Definisi Model
model = hmm.CategoricalHMM(n_components=2)
model.startprob_ = np.array([0.6, 0.4])
model.transmat_ = np.array([[0.7, 0.3], 
                            [0.4, 0.6]])
model.emissionprob_ = np.array([[0.8, 0.2], 
                                [0.1, 0.9]])

# Observasi: Jalan (0), Bersih (1)
X = np.array([[0, 1]]).T

# Prediksi urutan state (Viterbi)
logprob, states = model.decode(X, algorithm="viterbi")
print(f"Urutan state: {states}")

Baca juga: Universitas Teknokrat Indonesia Pamerkan Cookies Premium Bonava Karya Mahasiswa FEB di Teknokrat Academic Expo 2026

Kesimpulan

Hidden Markov Model adalah jembatan antara data statistik murni dan pemodelan sekuensial. Melalui contoh soal di atas, kita belajar bahwa HMM bukan sekadar menebak, melainkan menghitung probabilitas matematis dari transisi dan emisi untuk membuat prediksi yang cerdas.

Meskipun terlihat kompleks dengan notasi matematikanya, prinsip HMM sangat logis: masa lalu memengaruhi masa kini, dan apa yang kita lihat hanyalah cerminan dari apa yang tersembunyi.

Penulis: Aripin

Post Comment