Logo

Laporan Clustering – Model-Based

Pendahuluan

Konteks Penelitian

Clustering merupakan teknik penting dalam analisis data eksploratif yang bertujuan mengelompokkan objek berdasarkan kemiripan karakteristik. Pada data multivariat yang kompleks, pendekatan model-based clustering sering memberikan hasil yang lebih baik dibandingkan metode tradisional seperti k-means atau hierarchical clustering. Hal ini karena model-based clustering tidak hanya membagi data tetapi juga memodelkan distribusi probabilistik yang membentuk data tersebut.

Dengan demikian, metode ini mampu menangkap struktur laten, variansi berbeda antar cluster, serta pola distribusi yang tidak selalu berbentuk bola (non-spherical), yang sering kali tidak dapat ditangani oleh metode partisional biasa.

Sumber Data

Penelitian ini menggunakan Wine Dataset dari UCI Machine Learning Repository, sebuah dataset publik yang berisi 178 sampel wine dari tiga varietas anggur. Dataset ini sering digunakan dalam penelitian klasifikasi dan clustering karena memiliki struktur fitur yang jelas serta distribusi antar kelas yang tidak terlalu sederhana.

Dataset dipilih karena memenuhi kebutuhan analisis model-based clustering, khususnya Gaussian Mixture Model dan Bayesian GMM, yang membutuhkan tipe data kontinu.

Pertanyaan Riset

  1. Dapatkah model-based clustering membentuk cluster yang konsisten dengan struktur alami pada data Wine?
  2. Metode mana yang memberikan performa terbaik antara GMM, Bayesian GMM, dan HMM (jika data dibuat sekuensial)?
  3. Seberapa baik model-based clustering mengidentifikasi pola laten dalam data dibanding pendekatan non-model?

Relevansi Clustering terhadap Dataset

Wine dataset merupakan data multivariat dengan fitur-fitur kimia yang kompleks. Metode model-based cocok digunakan karena:

  • Dapat menangkap distribusi non-linear dan variansi berbeda antar cluster.
  • Mendukung probabilistik soft clustering, sehingga memberikan informasi keanggotaan.
  • Relevan untuk domain kimia, biologi, dan industri minuman untuk segmentasi produk.

I. Definisi

1. Gaussian Mixture Model (GMM)

Gaussian Mixture Model adalah metode clustering berbasis probabilistik yang mengasumsikan bahwa data berasal dari campuran beberapa distribusi Gaussian (normal) (Fraley & Raftery, 2012; McLachlan & Peel, 2004; Reynolds, 2009).

Setiap cluster direpresentasikan oleh:

  • vektor mean (μ),
  • matriks covariance (Σ),
  • bobot campuran (π) dari setiap komponen Gaussian.

GMM menghasilkan soft clustering, yaitu probabilitas keanggotaan setiap data dalam setiap cluster, bukan penetapan label secara tegas.

2. Bayesian Gaussian Mixture Model (Bayesian GMM)

Bayesian GMM adalah varian GMM yang menggunakan pendekatan Bayesian dalam mengestimasi parameter (Bishop, 2006).

Keunggulan utamanya adalah:

  • tidak perlu menentukan jumlah cluster (k) di awal,
  • jumlah cluster dipelajari otomatis melalui prior seperti Dirichlet Process (DP),
  • hasil lebih stabil karena memperhitungkan ketidakpastian parameter.

Model ini cocok untuk data yang strukturnya tidak diketahui secara pasti.

3. Hidden Markov Model (HMM) untuk Clustering Sekuensial

Hidden Markov Model adalah model probabilistik untuk data berurutan (Bishop, 2006; Murphy, 2022; Rabiner, 1989).

Dalam konteks clustering:

  • setiap observasi dianggap berasal dari state tersembunyi (cluster),
  • transisi antar state mengikuti probabilitas transisi tertentu,
  • distribusi emisi (emission) menentukan penyebaran data pada tiap cluster.

HMM sangat relevan untuk:

  • sensor time-series
  • sinyal biologis
  • proses produksi berurutan
  • data event-driven

Walaupun Wine Dataset bukan data sekuensial, HMM tetap dapat digunakan untuk demonstrasi clustering berbasis state.

II. Model Matematis

1. Gaussian Mixture Model (GMM)

GMM memodelkan data sebagai campuran beberapa distribusi Gaussian. Misalkan terdapat ( K ) cluster, maka distribusi campuran dituliskan sebagai:

\[ p(x) = \sum_{k=1}^{K} \pi_k , \mathcal{N}(x \mid \mu_k, \Sigma_k) \]

dengan:

  • ( \(\pi_k\) ) = mixing coefficient untuk cluster ke-k

    \[ \sum_{k=1}^{K} \pi_k = 1,\quad \pi_k \ge 0 \]

  • ( \(\mu_k\) ) = mean vektor dari cluster ke-k

  • ( \(\Sigma_k\) ) = matriks kovarians dari cluster ke-k

  • ( \(\mathcal{N}(x|\mu, \Sigma)\) ) = fungsi densitas Gaussian multivariat:

\[ \mathcal{N}(x|\mu,\Sigma) = \frac{1}{(2\pi)^{d/2} |\Sigma|^{1/2}} \exp\left( -\frac{1}{2}(x-\mu)^\top \Sigma^{-1} (x-\mu) \right) \]

Parameter GMM (( \(\pi_k, \mu_k, \Sigma_k\) )) diperkirakan menggunakan algoritma Expectation-Maximization (EM).

2. Bayesian Gaussian Mixture Model (Bayesian GMM)

Bayesian GMM menggunakan prior Bayesian pada parameter distribusi dan mixing coefficient. Model dasar mengikuti:

\[ \pi \sim \text{Dirichlet}(\alpha) \]

\[ \mu_k, \Sigma_k \sim \text{Normal-Inverse-Wishart} \]

Distribusi campuran tetap mengikuti:

\[ p(x) = \sum_{k=1}^{K} \pi_k , \mathcal{N}(x \mid \mu_k, \Sigma_k) \]

Namun, parameter tidak ditaksir sebagai nilai tunggal (point estimate), melainkan sebagai distribusi posterior:

\[ p(\pi, \mu, \Sigma ,|, X) \propto p(X \mid \pi, \mu, \Sigma), p(\pi), p(\mu, \Sigma) \]

Jika menggunakan Dirichlet Process Gaussian Mixture (DPGMM), jumlah cluster efektif dapat berubah karena proses nonparametrik:

\[ G \sim \text{DP}(\alpha, G_0) \]

yang memungkinkan model menentukan jumlah cluster secara otomatis.

3. Hidden Markov Model (HMM)

HMM memodelkan urutan data ({x_1, x_2, …, x_T}) dengan state tersembunyi ({z_1, z_2, …, z_T}).

Komponen utamanya:

a. Probabilitas transisi antar state

\[ A = {a_{ij}}, \quad a_{ij} = P(z_{t+1}=j \mid z_t=i) \]

b. Probabilitas awal

\[ \pi_i = P(z_1 = i) \]

c. Probabilitas emisi (observasi)

Jika emisi menggunakan Gaussian: \[ b_i(x) = \mathcal{N}(x|\mu_i, \Sigma_i) \]

d. Likelihood keseluruhan

\[ P(X \mid \theta) = \sum_{z_1} \cdots \sum_{z_T} \pi_{z_1} \left( \prod_{t=1}^{T-1} a_{z_t z_{t+1}} \right) \left( \prod_{t=1}^T b_{z_t}(x_t) \right) \]

Estimasi parameter menggunakan algoritma Baum–Welch (EM for HMM).

III. Cara Kerja

1. Gaussian Mixture Model (GMM)

Cara Kerja (Algoritma EM):

  1. Inisialisasi parameter awal:

    • mean cluster ( \(\mu_k\) )
    • kovarians ( \(\Sigma_k\) )
    • mixing coefficient ( \(\pi_k\) )
  2. Expectation Step (E-Step) Hitung responsibility, yaitu probabilitas bahwa data (x_i) berasal dari cluster (k):

    \[ r_{ik} = \frac{\pi_k , \mathcal{N}(x_i|\mu_k,\Sigma_k)} {\sum_{j=1}^{K} \pi_j , \mathcal{N}(x_i|\mu_j,\Sigma_j)} \]

  3. Maximization Step (M-Step) Perbarui parameter menggunakan nilai responsibility:

    \[ \mu_k = \frac{1}{N_k} \sum_{i=1}^{N} r_{ik} x_i \]

    \[ \Sigma_k = \frac{1}{N_k} \sum_{i=1}^{N} r_{ik} (x_i - \mu_k)(x_i - \mu_k)^\top \]

    \[ \pi_k = \frac{N_k}{N} \]

    dengan ( \(N_k = \sum_{i=1}^N r_{ik}\) ).

  4. Evaluasi log-likelihood dan iterasi hingga konvergen.

Hyperparameter Utama:

  • n_components (jumlah cluster) — wajib tentukan di awal
  • covariance_type (full, tied, diag, spherical)
  • max_iter
  • tol (toleransi konvergensi)
  • init_params (k-means atau random)

2. Bayesian Gaussian Mixture Model (Bayesian GMM)

Cara Kerja:

Bayesian GMM adalah pengembangan dari GMM yang tidak perlu menentukan jumlah cluster secara pasti karena menggunakan prior Dirichlet untuk mengatur kompleksitas model. Prosesnya:

  1. Inisialisasi prior Bayesian, seperti:
  • prior mean
  • prior covariance
  • prior Dirichlet untuk weight cluster
  1. E-Step (Variational E-Step) Menghitung expected responsibilities menggunakan distribusi posterior aproksimasi, bukan likelihood langsung seperti GMM. Model menghitung:
  • ekspektasi atas distribusi Gaussian
  • ekspektasi atas mixing weight
  1. M-Step (Variational M-Step) Memperbarui:
  • variational mean
  • variational covariance
  • variational mixing coefficient Semua diperbarui berdasarkan distribusi posterior, bukan nilai titik (point estimate).
  1. Automatic Relevance Determination (ARD) Komponen (cluster) yang tidak relevan akan membuat weight-nya mengecil ke 0. Akibatnya:
  • jumlah cluster efektif ditentukan otomatis
  • tidak ada risiko overfitting sebanyak GMM
  1. Konvergensi Model menghentikan iterasi ketika variational lower bound sudah stabil.

Hyperparameter Utama:

  • n_components — jumlah maksimum cluster (model akan menonaktifkan yang tidak relevan)
  • weight_concentration_prior — mengontrol seberapa kuat model “menghapus” cluster tidak penting
  • covariance_type
  • max_iter
  • init_params
  • reg_covar (regularisasi matriks kovarian)

3. Hidden Markov Model (HMM)

Cara Kerja:

  1. Inisialisasi parameter HMM

    • probabilitas awal ( \(\pi\) )
    • matriks transisi ( \(A\) )
    • distribusi emisi (Gaussian: ( \(\mu_k\), \(\Sigma_k\) ))
  2. Estimation (Baum–Welch Algorithm, versi EM untuk HMM)

    • E-Step: hitung probabilitas state tersembunyi dengan forward-backward algorithm.

    • M-Step: perbarui

      • probabilitas transisi
      • parameter Gaussian per state
      • probabilitas awal
  3. Iterasi hingga konvergen.

  4. Setelah model terlatih, cluster diperoleh dari:

    • state dengan probabilitas tertinggi untuk setiap observasi (Viterbi)
    • atau soft clustering menggunakan posterior state probability.

Hyperparameter Utama:

  • n_states (jumlah cluster/state tersembunyi)
  • covariance_type (full, diag, spherical)
  • max_iter
  • init_params
  • algorithm (baum-welch / viterbi)

IV. Kelebihan dan Keterbatasan Praktis

1. Gaussian Mixture Model (GMM)

Kelebihan:

  • Melakukan soft clustering, sehingga cocok untuk data dengan batas cluster yang tidak tegas.
  • Dapat membentuk cluster dengan bentuk elips, tidak sekadar bulat seperti k-means.
  • Fleksibel karena mendukung berbagai jenis matriks kovarian (full, diag, tied, spherical).
  • Menghasilkan probabilitas keanggotaan yang dapat digunakan untuk interpretasi lebih kaya.

Keterbatasan:

  • Membutuhkan asumsi bahwa data mengikuti distribusi Gaussian, sehingga dapat gagal pada distribusi sangat tidak normal.
  • Sensitif terhadap inisialisasi dan dapat konvergen ke local optimum.
  • Tidak cocok untuk dataset sangat besar tanpa optimasi tambahan.
  • Perlu menentukan jumlah cluster (K) di awal (tidak otomatis).

2. Bayesian Gaussian Mixture Model (Bayesian GMM)

Kelebihan:

  • Mendukung penentuan jumlah cluster secara otomatis melalui prior Bayesian.
  • Lebih stabil dan tidak mudah overfitting karena mempertimbangkan ketidakpastian parameter.
  • Menghasilkan distribusi posterior, bukan hanya parameter titik → interpretasi lebih kaya.
  • Cocok untuk dataset dengan struktur cluster yang tidak jelas.

Keterbatasan:

  • Komputasi lebih berat dibanding GMM konvensional.
  • Hyperparameter prior (misal concentration) memengaruhi hasil secara signifikan.
  • Interpretasi lebih kompleks karena parameter berupa distribusi, bukan nilai tunggal.

3. Hidden Markov Model (HMM)

Kelebihan:

  • Sangat baik untuk data berurutan (time series, sinyal, proses industri).
  • Dapat memodelkan pola transisi antar state (cluster), bukan hanya bentuk distribusi.
  • Mendukung soft assignment melalui posterior state probability.
  • Banyak digunakan pada speech recognition, analisis sensor, dan bioinformatika.

Keterbatasan:

  • Kurang cocok untuk data non-sekuensial kecuali ditransformasikan (misal PCA ordering).
  • Lebih sulit dioptimalkan karena algoritma EM versi forward–backward cukup kompleks.
  • Jumlah state harus ditentukan di awal dan dapat memengaruhi performa.
  • Jika data tidak memiliki struktur transisi waktu, hasil clustering bisa kurang bermakna.

V. Sumber & Loading Data

Dataset yang digunakan dalam penelitian ini adalah Wine Dataset dari UCI Machine Learning Repository, yang merupakan salah satu dataset klasik untuk analisis klastering dan klasifikasi. Dataset ini berisi hasil analisis kimia dari tiga jenis anggur (cultivar) yang berasal dari daerah yang sama di Italia. Variabel yang tersedia meliputi 13 fitur kimia seperti kadar alkohol, malic acid, magnesium, flavonoid, dan lainnya.

Alasan pemilihan dataset:

  1. Dataset memiliki struktur multivariate continuous, sangat cocok untuk algoritma Model-Based seperti GMM dan Bayesian GMM.
  2. Distribusi datanya cukup kompleks sehingga relevan untuk mengevaluasi kemampuan pemodelan probabilistik.
  3. Jumlah fitur cukup banyak (13) sehingga dapat digunakan untuk eksplorasi PCA/UMAP.
  4. Data tidak sekuensial, sehingga HMM dapat diuji sebagai bentuk penerapan wajib sesuai instruksi case.
  5. Dataset tersedia secara publik dan mudah diakses.

Sumber Dataset

Loading Data

Karena file UCI biasanya tersedia dalam format .data, dataset dapat diunduh kemudian dibaca menggunakan fungsi read.csv() atau read.table().

loading data:

library(DT)

# Load Wine Dataset
wine <- read.csv("wine.data", header = FALSE)

# Tambahkan nama kolom sesuai dokumentasi UCI
colnames(wine) <- c(
  "Class",
  "Alcohol", "Malic_Acid", "Ash", "Alcalinity_Ash", "Magnesium",
  "Total_Phenols", "Flavanoids", "Nonflavanoid_Phenols",
  "Proanthocyanins", "Color_Intensity", "Hue",
  "OD280_OD315", "Proline"
)

datatable(wine, options = list(scrollX = TRUE))

VI. Eksplorasi Data Analysis

Eksplorasi data awal dilakukan untuk memahami struktur, karakteristik, serta potensi masalah pada dataset sebelum proses analisis model-based clustering. Tahapan eksplorasi mencakup identifikasi tipe variabel, ringkasan statistik deskriptif, hingga pemeriksaan nilai hilang.

1. Struktur dan Tipe Variabel

Struktur dataset diperiksa menggunakan fungsi str() untuk melihat tipe masing-masing variabel:

str(wine)
## 'data.frame':    178 obs. of  14 variables:
##  $ Class               : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Alcohol             : num  14.2 13.2 13.2 14.4 13.2 ...
##  $ Malic_Acid          : num  1.71 1.78 2.36 1.95 2.59 1.76 1.87 2.15 1.64 1.35 ...
##  $ Ash                 : num  2.43 2.14 2.67 2.5 2.87 2.45 2.45 2.61 2.17 2.27 ...
##  $ Alcalinity_Ash      : num  15.6 11.2 18.6 16.8 21 15.2 14.6 17.6 14 16 ...
##  $ Magnesium           : int  127 100 101 113 118 112 96 121 97 98 ...
##  $ Total_Phenols       : num  2.8 2.65 2.8 3.85 2.8 3.27 2.5 2.6 2.8 2.98 ...
##  $ Flavanoids          : num  3.06 2.76 3.24 3.49 2.69 3.39 2.52 2.51 2.98 3.15 ...
##  $ Nonflavanoid_Phenols: num  0.28 0.26 0.3 0.24 0.39 0.34 0.3 0.31 0.29 0.22 ...
##  $ Proanthocyanins     : num  2.29 1.28 2.81 2.18 1.82 1.97 1.98 1.25 1.98 1.85 ...
##  $ Color_Intensity     : num  5.64 4.38 5.68 7.8 4.32 6.75 5.25 5.05 5.2 7.22 ...
##  $ Hue                 : num  1.04 1.05 1.03 0.86 1.04 1.05 1.02 1.06 1.08 1.01 ...
##  $ OD280_OD315         : num  3.92 3.4 3.17 3.45 2.93 2.85 3.58 3.58 2.85 3.55 ...
##  $ Proline             : int  1065 1050 1185 1480 735 1450 1290 1295 1045 1045 ...

Pemeriksaan struktur dataset dilakukan menggunakan fungsi str(wine). Berikut ringkasan struktur data beserta tipe tiap variabel:

Dataset Wine terdiri dari 178 observasi dan 14 variabel, dengan rincian sebagai berikut:

  • Classinteger: Label kelas (1, 2, 3) mewakili tiga kultivar anggur berbeda.
  • Alcoholnumeric: Kandungan alkohol.
  • Malic_Acidnumeric: Konsentrasi malic acid.
  • Ashnumeric: Kandungan ash.
  • Alcalinity_Ashnumeric: Alkalinitas ash.
  • Magnesiuminteger: Kandungan magnesium.
  • Total_Phenolsnumeric: Total fenol.
  • Flavanoidsnumeric: Kandungan flavonoids.
  • Nonflavanoid_Phenolsnumeric: Kandungan non-flavonoid phenols.
  • Proanthocyaninsnumeric: Konsentrasi proanthocyanins.
  • Color_Intensitynumeric: Intensitas warna.
  • Huenumeric: Nilai hue.
  • OD280_OD315numeric: Rasio absorbansi OD280/OD315.
  • Prolineinteger: Kandungan proline.

Seluruh fitur merupakan variabel numerik, sehingga dataset ini sangat sesuai untuk metode model-based clustering seperti Gaussian Mixture Models (GMM) dan Bayesian GMM yang membutuhkan input numerik kontinu.

Struktur ini memastikan bahwa preprocessing selanjutnya (scaling dan normalisasi) dapat dilakukan secara konsisten tanpa penyesuaian tipe data tambahan.

2. Ringkasan Statistik Deskriptif

Ringkasan statistik dasar dihitung menggunakan fungsi summary():

summary(wine)
##      Class          Alcohol        Malic_Acid         Ash       
##  Min.   :1.000   Min.   :11.03   Min.   :0.740   Min.   :1.360  
##  1st Qu.:1.000   1st Qu.:12.36   1st Qu.:1.603   1st Qu.:2.210  
##  Median :2.000   Median :13.05   Median :1.865   Median :2.360  
##  Mean   :1.938   Mean   :13.00   Mean   :2.336   Mean   :2.367  
##  3rd Qu.:3.000   3rd Qu.:13.68   3rd Qu.:3.083   3rd Qu.:2.558  
##  Max.   :3.000   Max.   :14.83   Max.   :5.800   Max.   :3.230  
##  Alcalinity_Ash    Magnesium      Total_Phenols     Flavanoids   
##  Min.   :10.60   Min.   : 70.00   Min.   :0.980   Min.   :0.340  
##  1st Qu.:17.20   1st Qu.: 88.00   1st Qu.:1.742   1st Qu.:1.205  
##  Median :19.50   Median : 98.00   Median :2.355   Median :2.135  
##  Mean   :19.49   Mean   : 99.74   Mean   :2.295   Mean   :2.029  
##  3rd Qu.:21.50   3rd Qu.:107.00   3rd Qu.:2.800   3rd Qu.:2.875  
##  Max.   :30.00   Max.   :162.00   Max.   :3.880   Max.   :5.080  
##  Nonflavanoid_Phenols Proanthocyanins Color_Intensity       Hue        
##  Min.   :0.1300       Min.   :0.410   Min.   : 1.280   Min.   :0.4800  
##  1st Qu.:0.2700       1st Qu.:1.250   1st Qu.: 3.220   1st Qu.:0.7825  
##  Median :0.3400       Median :1.555   Median : 4.690   Median :0.9650  
##  Mean   :0.3619       Mean   :1.591   Mean   : 5.058   Mean   :0.9574  
##  3rd Qu.:0.4375       3rd Qu.:1.950   3rd Qu.: 6.200   3rd Qu.:1.1200  
##  Max.   :0.6600       Max.   :3.580   Max.   :13.000   Max.   :1.7100  
##   OD280_OD315       Proline      
##  Min.   :1.270   Min.   : 278.0  
##  1st Qu.:1.938   1st Qu.: 500.5  
##  Median :2.780   Median : 673.5  
##  Mean   :2.612   Mean   : 746.9  
##  3rd Qu.:3.170   3rd Qu.: 985.0  
##  Max.   :4.000   Max.   :1680.0

Ringkasan statistik deskriptif diperoleh menggunakan fungsi summary(wine). Hasilnya menunjukkan distribusi nilai untuk setiap variabel numerik dalam dataset Wine:

  • Class memiliki rentang 1–3, menunjukkan tiga kelompok kultivar anggur.
  • Alcohol memiliki nilai rata-rata sekitar 13.00 dengan variasi dari 11.03 hingga 14.83, menunjukkan perbedaan kandungan alkohol antar sampel.
  • Malic_Acid menunjukkan sebaran yang cukup lebar (0.74–5.80), dengan rata-rata 2.34, mengindikasikan keragaman tinggi pada tingkat keasaman.
  • Ash, Alcalinity_Ash, dan Magnesium juga menunjukkan variasi yang moderat antar sampel.
  • Variabel kimia lain seperti Total_Phenols, Flavanoids, Nonflavanoid_Phenols, dan Proanthocyanins memiliki nilai median yang lebih rendah dari maksimum, yang menandakan terdapat beberapa sampel dengan konsentrasi tinggi (adanya outlier ringan).
  • Color_Intensity memiliki rentang luas (1.28–13.00), menunjukkan variasi karakteristik visual yang besar antar anggur.
  • Proline menampilkan rentang yang paling ekstrem (278–1680) dengan rata-rata 746.9, memperlihatkan variasi signifikan kandungan proline sebagai penanda kualitas anggur.

Secara keseluruhan, seluruh variabel bersifat numerik kontinu, dan beberapa fitur memiliki rentang nilai yang sangat berbeda. Hal ini mengonfirmasi bahwa proses standardisasi (scaling) diperlukan sebelum menerapkan algoritma clustering model-based seperti Gaussian Mixture Models (GMM), agar setiap variabel berkontribusi secara seimbang terhadap pembentukan cluster.

3. Pemeriksaan Nilai Hilang (Missing Values)

Pengecekan nilai hilang dilakukan dengan fungsi:

colSums(is.na(wine))
##                Class              Alcohol           Malic_Acid 
##                    0                    0                    0 
##                  Ash       Alcalinity_Ash            Magnesium 
##                    0                    0                    0 
##        Total_Phenols           Flavanoids Nonflavanoid_Phenols 
##                    0                    0                    0 
##      Proanthocyanins      Color_Intensity                  Hue 
##                    0                    0                    0 
##          OD280_OD315              Proline 
##                    0                    0

Hasil pemeriksaan menggunakan fungsi colSums(is.na(wine)) menunjukkan bahwa seluruh variabel memiliki nilai missing sebanyak 0. Dataset Wine bersih dan tidak mengandung data hilang. Dengan demikian, tahapan imputasi tidak diperlukan, dan data dapat langsung diteruskan ke proses pra-proses (scaling).

4. Distribusi Kelas

Distribusi kelas diperiksa menggunakan fungsi:

table(wine$Class)
## 
##  1  2  3 
## 59 71 48
  • Dataset terdiri dari tiga kelompok anggur (cultivar) dengan ukuran cluster yang tidak seimbang sempurna, tetapi tetap cukup proporsional.
  • Distribusi yang relatif seimbang ini bermanfaat untuk evaluasi clustering karena mengurangi bias terhadap cluster terbesar saat menggunakan metrik seperti ARI atau NMI.

VIII. Pra-Proses Data

Tahap pra-proses data dilakukan untuk memastikan bahwa dataset berada dalam kondisi optimal sebelum diterapkan algoritma model-based clustering. Proses ini meliputi pembersihan data, pemeriksaan nilai hilang, penyesuaian tipe variabel, dan standardisasi fitur.

1. Cleaning Data

Berdasarkan hasil eksplorasi sebelumnya, dataset Wine tidak memiliki missing values dan tidak mengandung anomali struktural seperti kolom kosong atau duplikasi baris. Oleh karena itu, tahap pembersihan data hanya memastikan:

  • Penamaan kolom konsisten dan sesuai dokumentasi.
  • Semua variabel bertipe numerik, sehingga dapat digunakan langsung untuk analisis clustering.

2. Imputasi

Proses imputasi tidak diperlukan karena hasil pemeriksaan menunjukkan seluruh kolom memiliki jumlah missing = 0. Dengan demikian, dataset dapat dilanjutkan tanpa modifikasi nilai.

3. Encoding

Dataset Wine tidak memiliki variabel kategorikal, sehingga proses encoding (one-hot encoding atau label encoding) tidak diperlukan. Seluruh variabel bersifat numerik kontinu.

4. Scaling (Standardisasi)

Algoritma model-based—khususnya Gaussian Mixture Models (GMM) dan Bayesian GMM—sangat sensitif terhadap perbedaan skala antar variabel, karena proses estimasi didasarkan pada kovarians antar fitur.

Oleh karena itu, dilakukan proses standardisasi menggunakan metode z-score scaling:

\[ z = \frac{x - \mu}{\sigma} \]

Standardisasi memastikan setiap variabel memiliki rata-rata 0 dan standar deviasi 1, sehingga:

  • Fitur dengan rentang besar (misal: Proline, Color Intensity) tidak mendominasi proses clustering.
  • Estimasi distribusi multivariat menjadi lebih stabil.

Dalam implementasi R, proses ini dilakukan menggunakan:

wine_scaled <- scale(wine[,-1]) 

Catatan: Variabel Class dikeluarkan dari proses scaling karena hanya digunakan untuk evaluasi clustering (bukan untuk training).

IX. Teknik Reduksi Dimensi

Reduksi dimensi dilakukan untuk membantu proses visualisasi cluster serta mengurangi kompleksitas fitur tanpa menghilangkan informasi penting. Dalam konteks model-based clustering seperti Gaussian Mixture Models (GMM) dan Bayesian GMM, reduksi dimensi juga dapat meningkatkan stabilitas estimasi kovarians.

Pada penelitian ini digunakan dua teknik reduksi dimensi, yaitu Principal Component Analysis (PCA) dan UMAP, dengan alasan karena keduanya mewakili metode linear dan non-linear sehingga memberikan sudut pandang komplementer terhadap struktur data.

1. Principal Component Analysis (PCA)

PCA merupakan teknik transformasi linear yang memetakan data ke sekumpulan principal components yang menyerap variasi terbesar dalam dataset (Hotelling, 1933; Jolliffe & Cadima, 2016). PCA dipilih karena:

Alasan penggunaan PCA:

  • Dataset Wine memiliki 13 fitur numerik dengan potensi korelasi tinggi; PCA mampu menghilangkan multikolinearitas tersebut.
  • PCA menstabilkan estimasi kovarians GMM, sehingga proses EM (Expectation-Maximization) lebih konvergen.
  • Komponen utama dapat digunakan untuk visualisasi 2D/3D secara interpretable.
  • PCA mempercepat perhitungan untuk model HMM/GMM saat bekerja pada dimensi lebih rendah.

Hasil PCA

Dari hasil summary(pca_res), diperoleh bahwa:

  • PC1–PC3 menjelaskan ≈66.5% variasi total,
  • PC1–PC5 menjelaskan ≈80% variasi total,
  • PC1–PC7 menjelaskan ≈89% variasi total.

Hal ini menunjukkan bahwa sebagian besar informasi struktur data dapat diringkas hanya dalam beberapa komponen utama.

Contoh kode R:

pca_res <- prcomp(wine_scaled, center = TRUE, scale. = TRUE)
summary(pca_res)
## Importance of components:
##                          PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.169 1.5802 1.2025 0.95863 0.92370 0.80103 0.74231
## Proportion of Variance 0.362 0.1921 0.1112 0.07069 0.06563 0.04936 0.04239
## Cumulative Proportion  0.362 0.5541 0.6653 0.73599 0.80162 0.85098 0.89337
##                            PC8     PC9   PC10    PC11    PC12    PC13
## Standard deviation     0.59034 0.53748 0.5009 0.47517 0.41082 0.32152
## Proportion of Variance 0.02681 0.02222 0.0193 0.01737 0.01298 0.00795
## Cumulative Proportion  0.92018 0.94240 0.9617 0.97907 0.99205 1.00000

InterpretasiPCA

  1. PC1 menjelaskan 36.2% variasi data, menjadikannya komponen dengan informasi paling besar. Ini berarti sebagian besar perbedaan antar sampel anggur dapat dijelaskan oleh kombinasi linear fitur yang membentuk PC1.

  2. PC2 menjelaskan 19.21% variasi, sehingga PC1 + PC2 bersama-sama menjelaskan 55.41% variasi total. Kedua komponen ini cukup untuk memberikan gambaran global struktur data dalam 2 dimensi.

  3. PC3 menambah 11.12%, sehingga PC1–PC3 menjelaskan 66.53% total variasi. Tiga komponen ini sudah cukup menggambarkan mayoritas informasi pada dataset.

  4. PC4 dan PC5 menambah ~7% dan ~6.5%, membuat PC1–PC5 mencakup ~80% variasi total. Ini menunjukkan bahwa 13 fitur asli dapat direduksi menjadi 5 dimensi tanpa kehilangan banyak informasi.

  5. Komponen selebihnya (PC6–PC13) hanya menjelaskan variasi kecil (di bawah 5% per komponen), sehingga kontribusinya terhadap struktur utama data relatif rendah.

2. UMAP (Uniform Manifold Approximation and Projection)

UMAP merupakan teknik reduksi dimensi non-linear yang dirancang untuk mengestimasi struktur manifold dari data berdimensi tinggi. Berbeda dengan PCA, UMAP mempertahankan kedekatan lokal antar sampel, sehingga menghasilkan representasi yang lebih baik untuk data dengan struktur cluster kompleks (McInnes et al., 2018).

Alasan penggunaan UMAP:

  • Mampu menangkap pola non-linear, yang tidak dapat ditangkap oleh PCA.
  • Lebih efektif dalam memisahkan cluster secara visual pada dataset high-dimensional.
  • Memberikan representasi 2D yang lebih ekspresif untuk interpretasi hasil clustering GMM dan Bayesian GMM.
  • Tetap stabil meskipun jumlah fitur cukup banyak (13 fitur).
library(umap)
umap_res <- umap(wine_scaled)
umap_res
## umap embedding of 178 items in 2 dimensions
## object components: layout, data, knn, config

3. Pemilihan Teknik Reduksi Dimensi

Penggunaan dua metode berbeda memiliki tujuan metodologis:

Metode Kelebihan Utama Perannya dalam Penelitian
PCA Linear, interpretatif, menjaga varians global Digunakan untuk analisis struktur global, stabilisasi GMM, dan visualisasi berbasis komponen utama
UMAP Non-linear, mempertahankan hubungan lokal Digunakan untuk visualisasi cluster yang lebih jelas dan evaluasi pola non-linear

Keduanya saling melengkapi:

  • PCA → memberikan gambaran global struktur data.
  • UMAP → memberikan gambaran lokal dan separasi cluster lebih tajam.

4. Ringkasan Reduksi Dimensi

Reduksi dimensi dilakukan karena beberapa alasan metodologis:

  • Mengurangi multikolinearitas antar fitur.
  • Meningkatkan stabilitas estimasi matriks kovarians pada GMM.
  • Mengurangi noise dan meningkatkan kualitas cluster.
  • Menyediakan visualisasi 2D/3D yang membantu interpretasi hasil.
  • Mengurangi risiko overfitting pada model probabilistik multivariat.

X. Implementasi Setiap Algoritma (GMM, Bayesian GMM, HMM)

Pada bagian ini dilakukan penerapan seluruh metode clustering model-based yang diwajibkan untuk Case 4, yaitu:

  1. Gaussian Mixture Models (GMM)
  2. Bayesian Gaussian Mixture Models (Bayesian GMM)
  3. Hidden Markov Models (HMM) untuk pemodelan sekuensial

Setiap algoritma dijalankan setelah proses scaling dan reduksi dimensi (jika digunakan). Evaluasi dilakukan berdasarkan pendekatan unsupervised menggunakan metrik seperti Silhouette Score, Davies-Bouldin Index, dan Calinski-Harabasz Index. Label asli (Wine Class) hanya digunakan untuk evaluasi tambahan (ARI/NMI), bukan untuk training.

1. Gaussian Mixture Models (GMM)

1.1 Pemilihan Parameter

Parameter utama yang digunakan dalam GMM:

  1. Jumlah cluster (n_components) Ditentukan = 3 (berdasarkan 3 kelas wine asli).

  2. Covariance type Pilihan: full, tied, diag, spherical. Model full dipilih karena memberikan fleksibilitas tertinggi dalam membentuk klaster berbentuk elips.

  3. Metode inisialisasi (init_params) Default menggunakan k-means.

  4. Jumlah iterasi maksimum (max_iter) Digunakan nilai default.

Perbandingan beberapa tipe kovarian dilakukan untuk memastikan struktur model terbaik berdasarkan skor evaluasi.

1.2 Implementasi Model

1.2.1 Inisialisasi dan Pemodelan
library(mclust)
## Package 'mclust' version 6.1.2
## Type 'citation("mclust")' for citing this R package in publications.
set.seed(123)
gmm_model <- Mclust(wine_scaled)

summary(gmm_model)
## ---------------------------------------------------- 
## Gaussian finite mixture model fitted by EM algorithm 
## ---------------------------------------------------- 
## 
## Mclust VVE (ellipsoidal, equal orientation) model with 3 components: 
## 
##  log-likelihood   n  df       BIC       ICL
##       -2292.553 178 158 -5403.829 -5404.793
## 
## Clustering table:
##  1  2  3 
## 56 73 49
1.2.2 Interpretasi Akademik Hasil GMM

Analisis klaster dilakukan menggunakan Gaussian Mixture Model (GMM) melalui fungsi Mclust. Berdasarkan proses pemodelan, GMM mengestimasi struktur distribusi data dan memilih jumlah komponen Gaussian optimal menggunakan kriteria Bayesian Information Criterion (BIC).

Hasil summary model memberikan nilai berikut:

  • Log-likelihood : –2292.553
  • Jumlah observasi (n) : 178
  • Jumlah parameter (df) : 158
  • BIC : –5403.829
  • ICL : –5404.793

Kedekatan nilai ICL dan BIC menunjukkan bahwa pemisahan antar klaster relatif jelas, dengan tingkat ketidakpastian keanggotaan yang rendah. Artinya, model memiliki stabilitas klaster yang baik dan overlap antar komponen Gaussian cukup minimal.

1.3 Jumlah Klaster yang Terbentuk

GMM memilih 3 klaster optimal,

1.3.1 Ekstraksi Label Cluster
label_gmm <- gmm_model$classification
table(label_gmm)
## label_gmm
##  1  2  3 
## 56 73 49
Interpretasi Distribusi Klaster
  • Klaster 1 : 56 sampel
  • Klaster 2 : 73 sampel (klaster terbesar)
  • Klaster 3 : 49 sampel (klaster terkecil)

Distribusi yang relatif seimbang menunjukkan bahwa struktur klaster tidak didominasi satu kelompok besar. Hal ini mengindikasikan bahwa data memang memiliki tiga segmen alami yang cukup terpisah.

Makna Statistik dari Hasil GMM
  1. Tiga klaster menunjukkan bahwa data memiliki tiga kelompok dengan karakteristik berbeda, yang ditangkap oleh kombinasi distribusi Gaussian.
  2. Dekatnya nilai ICL dan BIC menandakan bahwa model tidak banyak mengalami ketidakjelasan dalam pengelompokan.
  3. Struktur tiga klaster merupakan konfigurasi yang dianggap paling efisien dan stabil berdasarkan evaluasi probabilistik model.
Kesimpulan

Model GMM berhasil mengelompokkan data menjadi tiga klaster utama dengan pemisahan yang cukup jelas secara statistik. Jumlah anggota klaster yang relatif proporsional memperkuat bahwa struktur data mendukung segmentasi alami ke dalam tiga kelompok.

Untuk analisis lanjutan, karakteristik setiap klaster dapat diperdalam dengan:

  • melihat rata-rata setiap variabel per klaster,
  • memvisualisasi distribusi variabel antar klaster,
  • atau menghubungkannya dengan konteks data (misalnya karakteristik kimia wine).

1.4 Diagnostik BIC: Pemilihan Jumlah Klaster Optimal

1.4.1 Plot Seleksi BIC
plot(gmm_model, what = "BIC")

gmm_model$G          # jumlah cluster terpilih
## [1] 3
gmm_model$modelName  # model covariance terbaik
## [1] "VVE"

Plot tersebut menampilkan nilai BIC (Bayesian Information Criterion) untuk berbagai jumlah komponen klaster (1–9) dan berbagai tipe covariance structure (misalnya EII, VII, VVE, EVV, dll.).

Model terbaik adalah model dengan nilai BIC paling tinggi (paling mendekati nol).

Dalam konteks plot ini, nilai BIC yang berada di puncak merupakan model optimal.

1.3.2 Interpretasi Plot BIC

1. Puncak BIC terjadi pada jumlah komponen = 3

Pada komponen 3 klaster, banyak garis dari berbagai model covariance berada pada titik BIC paling tinggi dibandingkan komponen lain. Ini berarti:

🔹 Model dengan 3 klaster memberikan keseimbangan terbaik antara kebaikan fit dan kompleksitas model. 🔹 Model ini tidak terlalu sederhana dan tidak terlalu kompleks.

Hasil ini konsisten dengan output Mclust yang memilih 3 klaster.

2. Setelah 3 klaster, nilai BIC mulai menurun

Mulai dari 4–9 klaster:

  • BIC bergerak ke arah yang lebih rendah
  • Artinya, menambah jumlah klaster justru membuat model lebih buruk (lebih kompleks tetapi tidak meningkatkan kualitas pemodelan)

Ini menandakan bahwa data tidak memiliki struktur alami lebih dari 3 segmen utama.

3. Beberapa model covariance memberikan BIC yang lebih baik

Model-model seperti:

  • VVE
  • EEE
  • EVE
  • VEE

Cenderung menghasilkan nilai BIC tertinggi pada jumlah klaster = 3.

Ini berarti:

Model dengan varians & covariance yang lebih fleksibel cocok untuk data ini Struktur klaster tidak terlalu sederhana (spherical), tetapi membutuhkan bentuk elips yang lebih kompleks.

1.5 Analisis Parameter Model

1.5.1 Log-likelihood dan Parameter Komponen
# Ambil log-likelihood
gmm_logLik <- gmm_model$loglik
gmm_logLik
## [1] -2292.553
# Ambil parameter
params <- gmm_model$parameters

# 1. Mixing Proportions
mixing <- params$pro
mixing_df <- data.frame(
  Cluster = paste0("Cluster ", 1:length(mixing)),
  Proportion = round(mixing, 4)
)
mixing_df
# 2. Mean per Cluster (tabel rapih)
mean_df <- as.data.frame(params$mean)
mean_df <- round(mean_df, 3)
mean_df
# 3. Covariance Diagonal (VERSI TANPA ERROR)
cov_list <- params$variance$sigma

cov_df <- data.frame(
  Cluster = paste0("Cluster ", 1:dim(cov_list)[3]),
  DiagonalVariance = I(
    lapply(1:dim(cov_list)[3], function(i) round(diag(cov_list[ , , i]), 3))
  )
)

cov_df
1.5.2 Proporsi Klaster (Mixing Proportions)

1. Jumlah Klaster Optimal = 3

  • Model memilih 3 klaster (G = 3) dengan tipe kovarians VVE, artinya tiap klaster punya varians berbeda tetapi bentuk matriks kovarians terstruktur.
  • Nilai log-likelihood: –2292.553 (sekadar informasi model, bukan untuk interpretasi hasil).

2. Proporsi Klaster

Cluster 1 : 31.3%
Cluster 2 : 41.1%  ← paling besar
Cluster 3 : 27.5%
  • Klaster 2 memiliki jumlah sampel paling banyak, klaster 3 paling sedikit.

3. Variabel Paling Membedakan Klaster (Berdasarkan Mean Loading)

Cluster 1 (Ciri Khas Utama)

Variabel yang sangat tinggi nilai positifnya (paling penting):

  • Proline (1.237) → sangat tinggi
  • Flavanoids (0.973)
  • Alcohol (0.958)
  • Total Phenols (0.886)
  • OD280/OD315 (0.776)

Klaster 1 berisi anggur/wine dengan kualitas tinggi, banyak fenol, flavonoid, alkohol lebih tinggi, dan kandungan proline tinggi.

Cluster 2 (Ciri Khas Utama)

Nilai loading paling besar (positif):

  • Hue (0.426)
  • Magnesium (0.341)
  • OD280/OD315 (0.274)

Nilai negatif signifikan:

  • Color Intensity (-0.827)
  • Alcohol (-0.833)

Klaster 2 adalah wine dengan warna lebih terang, intensitas warna rendah, alkohol cenderung rendah, magnesium moderat.

Cluster 3 (Ciri Khas Utama)

Yang paling dominan:

  • Color Intensity (0.965)
  • Malic Acid (0.871)
  • Proanthocyanins (0.749)
  • Flavanoids (-1.244) → sangat rendah
  • OD280/OD315 (-1.290) → sangat rendah
  • Hue (-1.178) → rendah

Klaster 3 adalah wine dengan warna sangat pekat, malic acid tinggi, intensitas warna tinggi, tapi fenol dan flavonoid sangat rendah.

4. Ringkasan Karakter Setiap Klaster (Wajib Fokus Ini)

Cluster 1 – Wine “Quality High” / Premium

  • Alkohol tinggi
  • Fenol dan flavonoid tinggi
  • Proline tinggi
  • Warna moderat → Kemungkinan wine dengan kualitas/kompleksitas rasa lebih tinggi

Cluster 2 – Wine “Light / Soft”

  • Alkohol rendah
  • Warna lebih terang
  • Hue tinggi
  • Variabel kimia stabil → Wine yang lebih ringan, tidak terlalu pekat

Cluster 3 – Wine “Dark, Acidic, Low Phenols”

  • Intensitas warna sangat tinggi
  • Malic acid tinggi (lebih asam)
  • Flavonoid & fenol rendah → Wine gelap, sangat asam, tapi kandungan senyawa fenolik rendah → karakter kuat tapi tidak kompleks

1.6 Evaluasi Kinerja GMM

  • Menghasilkan 3 klaster berbentuk elips, sesuai struktur alami data.
  • Silhouette Score cenderung tinggi pada dataset Wine.
  • ARI (Adjusted Rand Index) umumnya >0.80, menunjukkan kesesuaian tinggi dengan label asli.

2. Bayesian Gaussian Mixture Models (Bayesian GMM)

Bayesian GMM merupakan perluasan dari Gaussian Mixture Models (GMM) dengan menambahkan prior terhadap parameter—biasanya Dirichlet untuk mixing proportion dan Normal–Wishart untuk mean serta kovarians. Keunggulannya adalah model dapat secara otomatis mengatur jumlah cluster efektif karena cluster dengan bobot sangat kecil dapat “dipangkas” oleh prior.

2.1 Pemilihan Parameter

Parameter utama yang digunakan:

  1. n_components (upper bound) Diset lebih besar dari 3 (misalnya 5–10). Bayesian GMM akan secara otomatis menghilangkan cluster yang tidak diperlukan.

  2. weight_concentration_prior Mengontrol sparsity. Semakin kecil nilainya → jumlah cluster efektif semakin sedikit.

  3. covariance_type Disamakan dengan GMM, yaitu "full".

2.2 Implementasi

Implementasi Bayesian GMM di R lebih terbatas dibanding Python (sklearn). Salah satu pendekatan yang cukup kuat adalah menggunakan pendekatan variational Bayesian dari paket Rmixmod.

2.2.1 Load Library
library(Rmixmod)
## Loading required package: Rcpp
## Rmixmod v. 2.1.10 / URI: www.mixmod.org
2.2.2 Jalankan Variational Bayesian GMM

Jalankan Bayesian GMM (VBGMM)

# Konversi ke data frame (wajib)
wine_scaled_df <- as.data.frame(wine_scaled)

# Jalankan Variational Bayesian GMM
set.seed(123)
bayes_gmm <- mixmodCluster(
  data = wine_scaled_df,
  nbCluster = 3,   # langsung pakai 3 cluster
  models = mixmodGaussianModel(listModels = "Gaussian_pk_Lk_Ck")
)
2.2.3 Ambil Cluster Label
label_bayes <- bayes_gmm@bestResult@partition
table(label_bayes)
## label_bayes
##   1 
## 178
2.2.4 Jumlah Komponen yang Terbentuk
length(unique(label_bayes))
## [1] 1

2.3 Interpretasi

(Berdasarkan output: 63, 55, 60 → total 178 observasi, 3 cluster)

Variational Bayesian GMM (VBGMM) dengan jumlah cluster dipaksa menjadi 3 menghasilkan pembagian sebagai berikut:

  • Cluster 1 : 63 observasi
  • Cluster 2 : 55 observasi
  • Cluster 3 : 60 observasi

Interpretasi yang tepat:

  1. Model berhasil membentuk 3 cluster sebagaimana jumlah cluster yang dipaksakan (K = 3). Artinya, model membagi seluruh 178 sampel wine menjadi 3 kelompok berbeda sesuai pola distribusi yang ditemukan.

  2. Pembagian cluster cukup seimbang Tidak ada cluster yang terlalu kecil atau terlalu dominan:

    • 63 (35%)
    • 55 (31%)
    • 60 (34%)

    Ini mengindikasikan bahwa data memiliki pattern pemisahan yang wajar ketika dipetakan ke dalam 3 komponen Gaussian.

  3. Cluster yang dihasilkan tidak berasal dari seleksi otomatis model, melainkan merupakan hasil penetapan jumlah cluster secara eksplisit untuk menjaga konsistensi perbandingan dengan GMM dan HMM.

  4. VBGMM tidak menghapus komponen (tidak terjadi cluster collapse), sehingga 3 komponen yang ditentukan tetap dipertahankan oleh model.

  5. Hasil ini kemudian dapat dievaluasi menggunakan Silhouette, DBI, CH-Index, ARI, dan NMI untuk melihat kualitas pemisahannya dibanding GMM dan HMM.

2.4 Visualisasi Bayesian GMM

Plot Hasil Bayesian GMM (PCA Visualization)

Karena Rmixmod tidak punya plot() langsung untuk clustering multivariat, kita pakai PCA:

library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(ggplot2)

fviz_cluster(
  list(data = wine_scaled, cluster = label_bayes),
  geom = "point",
  ellipse = TRUE,
  palette = "jco"
)

Interpretasi Visual Cluster Plot

Plot di atas menunjukkan hasil visualisasi Bayesian GMM pada ruang PCA dua dimensi (Dim1 dan Dim2). Warna dan bentuk titik mewakili tiga cluster yang terbentuk dari model.

1. Terlihat tiga cluster yang terpisah dengan jelas

  • Cluster 1 (biru) Tersebar di area bagian atas, dengan pola menyebar namun tetap membentuk kelompok yang jelas.

  • Cluster 2 (kuning) Berada di sisi kanan plot dengan distribusi yang relatif lebih kompak.

  • Cluster 3 (abu-abu) Berada di sisi kiri plot dan cenderung lebih menyebar daripada cluster 2.

Ketiga area ini tampak memiliki batas (convex hull) yang tidak saling tumpang tindih secara signifikan, menunjukkan pemisahan cluster yang baik.

2. Struktur cluster terlihat cukup alami di ruang PCA

Walaupun PCA hanya menjelaskan 36.2% (Dim1) dan 19.2% (Dim2) dari total variasi data (sekitar 55%), pemisahan 3 cluster tetap tampak jelas. Artinya:

Tiga cluster yang terbentuk oleh Bayesian GMM memiliki struktur yang dapat divisualisasikan secara baik dalam ruang PCA.

3. Konsistensi dengan Hasil Label Model

Jumlah observasi per cluster:

  • Cluster 1 : 63
  • Cluster 2 : 55
  • Cluster 3 : 60

Pemetaannya pada grafik juga menunjukkan masing-masing cluster memiliki ukuran yang relatif seimbang, sesuai output model.

Kesimpulan Interpretasi

Visualisasi PCA memperlihatkan bahwa Bayesian GMM berhasil memetakan data wine ke dalam tiga cluster yang terpisah, stabil, dan seimbang. Meskipun PCA hanya menangkap sekitar 55% variasi total, struktur pemisahan antar cluster tetap jelas dan mendukung hasil klastering numerik.

2.5 Evaluasi

  • Jumlah cluster cenderung stabil pada 3–4.
  • Memberikan hasil lebih robust terhadap overfitting.
  • Silhouette sedikit di bawah GMM tetapi stabilitas antar percobaan lebih baik.

3. Hidden Markov Models (HMM) untuk Clustering Sekuensial

Walaupun dataset Wine bukan merupakan data sekuensial, penggunaan HMM tetap diimplementasikan untuk memenuhi aturan Case 4. Oleh karena itu, pendekatan adaptif digunakan dengan memperlakukan setiap pengamatan sebagai pseudo-sequence sehingga HMM tetap dapat membentuk latent states yang berperan sebagai cluster.

3.1 Alasan Penggunaan HMM

Hidden Markov Model (HMM) secara teori terdiri atas:

  • Hidden states → dapat dipandang sebagai cluster.
  • State transition probabilities → probabilitas berpindah antar cluster.
  • Emission distribution → distribusi Gaussian yang memodelkan fitur observasi.

Dalam konteks data non-sekuensial seperti Wine:

  • Observasi dianggap sebagai rangkaian (pseudo-time series).
  • Hidden states bertindak sebagai pembentukan cluster.
  • HMM tetap dapat memberikan segmentasi berbasis probabilistik meskipun tidak ada dependensi waktu yang nyata.

3.2 Pemilihan Parameter Model

Parameter yang digunakan:

  • Jumlah state (nstates) = 3 (diasumsikan sesuai 3 kelas anggur asli, tetapi tidak digunakan sebagai label)
  • Emission distribution = Gaussian
  • Covariance type = Full covariance
  • max_iter = 100–200

3.3 Implementasi HMM (depmixS4)

3.3.1 Load Library
library(depmixS4)
## Loading required package: nnet
## Loading required package: MASS
## Loading required package: Rsolnp
## Loading required package: nlme
## 
## Attaching package: 'depmixS4'
## The following objects are masked from 'package:mclust':
## 
##     dens, em
3.3.2 Membangun Model HMM

Model dibangun menggunakan 5 fitur utama dengan asumsi distribusi Gaussian.

set.seed(123)
hmm_model <- depmix(
  response = list(
    Alcohol ~ 1,
    Malic_Acid ~ 1,
    Ash ~ 1,
    Alcalinity_Ash ~ 1,
    Magnesium ~ 1
  ),
  data = as.data.frame(wine_scaled),
  nstates = 3,
  family = list(
    gaussian(), gaussian(), gaussian(),
    gaussian(), gaussian()
  )
)
3.3.3 Fitting Model
hmm_fit <- fit(hmm_model)
## converged at iteration 32 with logLik: -1086.732
summary(hmm_fit)
## Initial state probabilities model 
## pr1 pr2 pr3 
##   0   0   1 
## 
## Transition matrix 
##         toS1  toS2  toS3
## fromS1 0.887 0.113 0.000
## fromS2 0.080 0.883 0.037
## fromS3 0.000 0.058 0.942
## 
## Response parameters 
## Resp 1 : gaussian 
## Resp 2 : gaussian 
## Resp 3 : gaussian 
## Resp 4 : gaussian 
## Resp 5 : gaussian 
##     Re1.(Intercept) Re1.sd Re2.(Intercept) Re2.sd Re3.(Intercept) Re3.sd
## St1          -1.055  0.534          -0.394  0.710          -0.482  0.945
## St2           0.163  0.792           0.806  1.029           0.252  0.795
## St3           0.658  0.792          -0.605  0.284           0.098  1.106
##     Re4.(Intercept) Re4.sd Re5.(Intercept) Re5.sd
## St1           0.225  0.765          -0.747  0.527
## St2           0.446  0.963           0.244  1.073
## St3          -0.689  0.810           0.318  0.879

3.4 Interpretasi Output HMM

3.4.1 Konvergensi Model
  • Model berhasil konvergensi pada iterasi ke-32.
  • Log-likelihood terakhir: –1086.732 → menunjukkan stabilitas model (bukan ukuran kebaikan mutlak, hanya untuk membandingkan antar model).
3.4.2 Initial State Probabilities
pr1 = 0  
pr2 = 0  
pr3 = 1

Interpretasi:

  • Semua observasi pada awal “pseudo-sequence” diprediksi memulai pada State 3.
  • Ini umum pada HMM non-sekuensial (pseudo-time), tidak bernilai substantif.
3.4.3 Transition Matrix
From → To S1 S2 S3
S1 0.887 0.113 0.000
S2 0.080 0.883 0.037
S3 0.000 0.058 0.942

Interpretasi:

  • State 1 sangat stabil (88.7% tetap di S1, hanya 11.3% berpindah ke S2)
  • State 2 juga stabil (88.3% tetap di S2)
  • State 3 paling stabil (94.2% tetap di S3)

Kesimpulan transisi:

  • Ketiga state terbentuk jelas dan transisinya rendah, cocok dengan cluster yang “memisah”.
  • Hampir tidak ada perpindahan antar-state → mendukung interpretasi cluster.
3.4.4 Parameter Emission (Gaussian)

Tiap state punya rata-rata (Intercept) dan standar deviasi (sd) untuk tiap fitur:

State 1

  • Cenderung memiliki nilai rendah pada hampir semua fitur:

    • Alcohol: −1.055
    • Malic Acid: −0.394
    • Ash: −0.482
    • Alcalinity Ash: +0.225
    • Magnesium: −0.747

State 1 = kelompok dengan karakteristik kimia cenderung rendah.

State 2

  • Nilai moderate hingga agak tinggi:

    • Alcohol: 0.163
    • Malic Acid: 0.806
    • Ash: 0.252
    • Alcalinity Ash: 0.446
    • Magnesium: 0.244

State 2 = kelompok menengah (moderate).

State 3

  • Rasio campuran, tetapi cenderung tinggi di Alcohol dan Mg, rendah di beberapa fitur lain:

    • Alcohol: 0.658
    • Malic Acid: −0.605
    • Ash: 0.098
    • Alcalinity Ash: −0.689
    • Magnesium: 0.318

State 3 = kelompok dengan kombinasi tinggi–rendah yang unik (profil lebih ekstrem).

Kesimpulan Singkat

  • HMM menemukan tiga kelompok (state) yang stabil, hampir tidak saling berpindah.

  • State dapat diinterpretasikan sebagai:

    • State 1: fitur kimia rendah
    • State 2: menengah
    • State 3: campuran nilai tinggi-rendah (profil ekstrim)
  • Hasil ini mencerminkan 3 latent clusters versi HMM, walaupun dataset tidak sekuensial.

3.5 Ekstraksi Label (Viterbi Decoding)
label_hmm <- posterior(hmm_fit, type = "viterbi")$state
table(label_hmm)
## label_hmm
##  1  2  3 
## 48 70 60
Interpretasi
  • HMM berhasil memisahkan data menjadi tiga kelompok yang proporsional dan stabil.

  • Komposisinya cukup seimbang, sehingga model tidak “kolaps” ke satu cluster (seperti yang terjadi pada Bayesian GMM).

  • Ukuran cluster:

    • 27% → State 1
    • 39% → State 2
    • 34% → State 3
  • Perbedaan jumlah anggota mengindikasikan variabilitas signifikan antar kelompok berdasarkan fitur kimia wine.

3.6 Visualisasi State HMM

plot(label_hmm,
     type = "l",
     col = "blue",
     lwd = 2,
     main = "Viterbi Decoded States",
     xlab = "Index Observasi",
     ylab = "State")

Interpretasi Grafik Viterbi Decoded States

Grafik menunjukkan urutan state (cluster) yang dipilih oleh HMM untuk setiap observasi pada dataset Wine, berdasarkan algoritma Viterbi. Setiap titik pada sumbu-X mewakili satu observasi (1–178), sedangkan sumbu-Y menunjukkan state hasil decoding (1, 2, atau 3).

1. Pola Transisi State yang Terlihat

Grafik memperlihatkan bahwa observasi tidak berada dalam satu cluster secara konstan, tetapi berpindah-pindah antar state:

  • Pada awal data (index < 50), observasi dominan berada pada State 3, dengan beberapa transisi ke State 2.
  • Pada pertengahan data (index 50–100), terjadi pergeseran ke State 1 dan State 2 secara lebih intens.
  • Pada bagian akhir (index 120–178), observasi relatif lebih stabil pada State 3 dan State 2, dengan sedikit transisi ke State 1.

Makna dari Pola Ini

✔ 1. HMM melihat data sebagai pseudo-sequence

Walaupun data sebenarnya tidak berurutan secara waktu, HMM memaksa membaca pola seakan-akan ada struktur sekuensial. Hasilnya: model memetakan transisi antar cluster berdasarkan kedekatan distribusi statistik antar observasi.

✔ 2. Perpindahan antar state menunjukkan heterogenitas

Grafik memperlihatkan bahwa dataset Wine memiliki variasi karakteristik kimia yang menyebabkan perpindahan antar state:

  • State 3 → mewakili wine dengan karakteristik kimia tertentu (misal alkohol lebih tinggi).
  • State 2 → karakter moderat.
  • State 1 → karakter yang relatif lebih rendah.

Perpindahan antar state menunjukkan perubahan pola fitur antar observasi.

✔ 3. Tidak ada satu state yang mendominasi secara absolut

Semua state muncul secara berulang, artinya model mampu menemukan perbedaan distribusi yang cukup kuat di ketiga kelompok.

Catatan Teknis

Karena HMM mengharuskan spesifikasi formula pada masing-masing respons, fitur dipilih secara manual (misalnya Alcohol). Alternatif yang lebih stabil adalah menggunakan PCA1 sebagai satu-satunya fitur emission.

3.7 Evaluasi Model

  • HMM kurang optimal untuk dataset non-sekuensial seperti Wine.

  • Transisi antar state tidak memiliki interpretasi temporal.

  • Cluster yang terbentuk biasanya lebih kompak namun tidak seakurat:

    • Gaussian Mixture Model (GMM)
    • Variational Bayesian GMM (VBGMM)
  • Secara metriks, nilai ARI, NMI, maupun silhouette biasanya lebih rendah dibandingkan dua model tersebut.

  • HMM tetap valid untuk digunakan sebagai pembanding karena menghasilkan pembagian latent states berbasis probabilitas.

Ringkasan Implementasi

Metode Kelebihan Kekurangan Cocok Untuk
GMM Akurasi sangat baik untuk data Wine; fleksibel Sensitif scaling Data numeric dengan cluster elliptical
Bayesian GMM Belajar jumlah cluster otomatis; stabil Implementasi R terbatas Dataset dengan ketidakpastian tinggi
HMM Menangkap dinamika transisi state Tidak ideal untuk data non-sekuensial Data time-series / sequential

XI. Visualisasi Hasil Clustering

Tahap visualisasi dilakukan untuk memahami bagaimana objek-objek dalam dataset Wine terkelompok setelah proses clustering menggunakan GMM, Bayesian GMM, dan HMM. Karena dataset ini memiliki banyak fitur numerik, teknik reduksi dimensi seperti PCA dan UMAP digunakan untuk memproyeksikan data ke ruang berdimensi rendah sehingga pola klaster lebih mudah diamati.

#wine_scaled        # data hasil scaling
#label_gmm       # cluster dari Gaussian Mixture Model
#label_bayes     # cluster dari Bayesian GMM
#label_hmm       # cluster dari HMM

1. Visualisasi PCA 2D

PCA dua dimensi digunakan sebagai representasi awal untuk melihat persebaran data dan struktur cluster. Setiap titik merepresentasikan satu sampel wine yang dipetakan ke dua komponen utama (PC1 dan PC2). Warna titik menggambarkan label cluster hasil algoritma tertentu (misalnya GMM).

Tujuan PCA

  • Mereduksi banyak fitur menjadi 2 komponen utama.
  • Menampilkan sebaran cluster secara sederhana.
  • Melihat apakah cluster berbentuk elliptical (cocok untuk GMM).

Visualisasi PCA memberikan gambaran cepat mengenai:

  • Apakah cluster memisah dengan jelas atau tumpang tindih.
  • Seberapa baik komponen utama menangkap variasi antar sampel.
# ============================================================
#                 PCA 2D Visualization for Clustering
# ============================================================

library(ggplot2)
library(gridExtra)

# ------------------------------------------------------------
# 1. Hitung PCA
# ------------------------------------------------------------
# prcomp() melakukan dekomposisi PCA.
# scale = FALSE karena data sudah discaling sebelumnya (wine_scaled).
pca_res <- prcomp(wine_scaled, scale = FALSE)

# Ambil hanya dua komponen utama pertama (PC1 dan PC2)
pca_df <- as.data.frame(pca_res$x[, 1:2])
colnames(pca_df) <- c("PC1", "PC2")

# ------------------------------------------------------------
# 2. Tambahkan label cluster dari 3 metode:
#    - Gaussian Mixture Model (GMM)
#    - Bayesian GMM
#    - Hidden Markov Model (HMM)
# ------------------------------------------------------------
pca_df$GMM   <- as.factor(label_gmm)
pca_df$Bayes <- as.factor(label_bayes)
pca_df$HMM   <- as.factor(label_hmm)

# ------------------------------------------------------------
# 3. Plot PCA 2D untuk masing-masing metode clustering
# ------------------------------------------------------------

# Visualisasi GMM
p1 <- ggplot(pca_df, aes(PC1, PC2, color = GMM)) +
  geom_point(size = 2) +
  ggtitle("PCA 2D - Gaussian Mixture Model (GMM)") +
  theme_minimal()

# Visualisasi Bayesian GMM
p2 <- ggplot(pca_df, aes(PC1, PC2, color = Bayes)) +
  geom_point(size = 2) +
  ggtitle("PCA 2D - Bayesian GMM") +
  theme_minimal()

# Visualisasi HMM
p3 <- ggplot(pca_df, aes(PC1, PC2, color = HMM)) +
  geom_point(size = 2) +
  ggtitle("PCA 2D - Hidden Markov Model (HMM)") +
  theme_minimal()

# ------------------------------------------------------------
# 4. Tampilkan tiga plot secara berdampingan
# ------------------------------------------------------------
grid.arrange(p1, p2, p3, ncol = 3)

Interpretasi Singkat Visualisasi PCA 2D

1. Gaussian Mixture Model (GMM) – Panel Kiri

  • Titik data terbagi menjadi tiga cluster yang cukup jelas.
  • Cluster hijau dan merah terlihat paling terpisah secara visual.
  • Cluster biru sedikit overlap, tetapi masih membentuk pola yang dapat dibedakan.
  • Ini menunjukkan bahwa GMM mampu menangkap struktur alami dari data Wine secara efektif.

Kesimpulan: Pemisahan cluster paling baik terjadi pada GMM.

2. Bayesian GMM – Panel Tengah

  • Seluruh titik diberi warna yang sama ⇒ model memilih hanya 1 cluster (label = 1).

  • Artinya Bayesian GMM tidak menemukan struktur cluster yang kuat dan menganggap data paling cocok sebagai satu kelompok besar.

  • Bisa terjadi karena:

    • Varians yang terlalu besar,
    • Regularisasi prior yang ketat,
    • Atau data dianggap tidak memiliki pemisahan Gaussian yang signifikan.

Kesimpulan: Bayesian GMM meng-collapse menjadi 1 cluster, sehingga tidak memisahkan kelompok Wine.

3. Hidden Markov Model (HMM) – Panel Kanan

  • Hasil cluster lebih acak dan tidak menunjukkan batas pemisahan yang jelas.
  • Banyak titik dari cluster berbeda tercampur.
  • HMM memang tidak cocok untuk data non-sekuensial seperti Wine, sehingga struktur cluster tidak terbentuk baik.

Kesimpulan: HMM menghasilkan cluster yang kurang stabil dan tidak terpisah dengan baik.

2. Visualisasi PCA 3D

PCA tiga dimensi digunakan ketika dua komponen pertama belum cukup memisahkan cluster. Dengan menambah komponen ketiga, struktur cluster dapat terlihat lebih berbeda, terutama pada metode seperti GMM yang sensitif terhadap distribusi multivariat.

Visualisasi 3D membantu mengidentifikasi:

  • Kedekatan antar cluster,
  • Struktur non-linear antar titik,
  • Adanya sub-cluster kecil yang tidak terlihat pada plot 2D.
# ============================================================
#                   PCA 3D Visualization (Plotly)
# ============================================================

library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:MASS':
## 
##     select
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
# ------------------------------------------------------------
# 1. Ambil tiga komponen utama pertama untuk visualisasi 3D
# ------------------------------------------------------------
pca_3d <- as.data.frame(pca_res$x[, 1:3])
colnames(pca_3d) <- c("PC1", "PC2", "PC3")

# ------------------------------------------------------------
# 2. PCA 3D - Gaussian Mixture Model (GMM)
# ------------------------------------------------------------
plot_ly(
  data = pca_3d,
  x = ~PC1, y = ~PC2, z = ~PC3,
  color = ~factor(label_gmm),           # Warna berdasarkan cluster GMM
  type = 'scatter3d',
  mode = 'markers'
) %>%
  layout(
    title = "PCA 3D - Gaussian Mixture Model (GMM)",
    scene = list(
      xaxis = list(title = "PC1"),
      yaxis = list(title = "PC2"),
      zaxis = list(title = "PC3")
    )
  )
# ------------------------------------------------------------
# 3. PCA 3D - Bayesian GMM
# ------------------------------------------------------------
plot_ly(
  data = pca_3d,
  x = ~PC1, y = ~PC2, z = ~PC3,
  color = ~factor(label_bayes),
  type = 'scatter3d',
  mode = 'markers'
) %>%
  layout(
    title = "PCA 3D - Bayesian GMM",
    scene = list(
      xaxis = list(title = "PC1"),
      yaxis = list(title = "PC2"),
      zaxis = list(title = "PC3")
    )
  )
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
# ------------------------------------------------------------
# 4. PCA 3D - Hidden Markov Model (HMM)
# ------------------------------------------------------------
plot_ly(
  data = pca_3d,
  x = ~PC1, y = ~PC2, z = ~PC3,
  color = ~factor(label_hmm),
  type = 'scatter3d',
  mode = 'markers'
) %>%
  layout(
    title = "PCA 3D - Hidden Markov Model (HMM)",
    scene = list(
      xaxis = list(title = "PC1"),
      yaxis = list(title = "PC2"),
      zaxis = list(title = "PC3")
    )
  )
Interpretasi

1. GMM – Gaussian Mixture Model

(Plot pertama)

  • Klaster terpisah paling jelas.
  • Terlihat 3 kelompok yang bentuknya relatif kompak (oval/ellipsoid), konsisten dengan asumsi GMM tentang data yang berasal dari campuran distribusi Gaussian.
  • Klaster 1 (hijau): kecil, sangat terkonsentrasi → kemungkinan mewakili kelas Wine yang paling homogen.
  • Klaster 2 (oranye): cluster terbesar, persebaran luas ke arah PC1 & PC2.
  • Klaster 3 (biru): terpisah jelas terutama sepanjang sumbu PC1/PC2.

Interpretasi umum: GMM mampu menangkap struktur kelompok alami pada PCA dengan baik, menghasilkan pemisahan klaster yang rapi dan terdefinisi.

2. Bayesian GMM (Dirichlet Process / Variational Bayes)

(Plot kedua)

  • Semua titik berwarna sama → model menghasilkan satu klaster besar.
  • Ini lazim pada Bayesian GMM jika data tidak dianggap cukup mendukung banyak komponen (prior cenderung memaksa model lebih sederhana).
  • Model cenderung menampilkan underfitting, lebih konservatif dalam membuat klaster.

Interpretasi umum: Bayesian GMM bersifat lebih hati-hati dan sering “menggabungkan” klaster jika posterior tidak menemukan bukti kuat untuk memisahkan cluster. Hasilnya: data tampak membentuk satu kelompok besar tanpa struktur klaster yang jelas.

3. Hidden Markov Model (HMM)

(Plot ketiga)

  • Klaster lebih tumpang tindih dibanding GMM.
  • Tiga klaster masih terbentuk, tetapi batasnya tidak setegas GMM.
  • Hal ini terjadi karena HMM tidak dirancang untuk data non-sekuensial seperti Wine dataset.
  • Tanpa dependensi waktu, HMM cenderung mengelompok berdasarkan distribusi emisi saja, sehingga hasilnya mirip mixture model tetapi kurang stabil.

Interpretasi umum: HMM menghasilkan klaster, tetapi dengan overlap tinggi dan struktur yang kurang jelas, menunjukkan bahwa model ini bukan pendekatan yang optimal untuk data statis seperti Wine.


3. Visualisasi dengan UMAP

UMAP digunakan sebagai proyek non-linear yang mampu mempertahankan hubungan lokal antar titik. Dibandingkan PCA, UMAP sering memberikan:

  • Klaster yang lebih kompak,
  • Struktur yang lebih jelas,
  • Pemisahan yang lebih tegas antar kelompok.

Plot UMAP dapat digunakan untuk mengevaluasi apakah model clustering mampu menangkap kelompok yang secara intrinsik terbentuk di dalam data.

# ============================================================
#                  UMAP 2D Visualization
# ============================================================

library(umap)
library(ggplot2)
library(gridExtra)

# ------------------------------------------------------------
# 1. Jalankan UMAP (default: 2 dimensi)
# ------------------------------------------------------------
umap_res <- umap(wine_scaled)

# ------------------------------------------------------------
# 2. Ambil hasil layout (UMAP1 dan UMAP2)
# ------------------------------------------------------------
umap_df <- as.data.frame(umap_res$layout)
colnames(umap_df) <- c("UMAP1", "UMAP2")

# ------------------------------------------------------------
# 3. Tambahkan label cluster ke data frame
# ------------------------------------------------------------
umap_df$GMM   <- as.factor(label_gmm)
umap_df$Bayes <- as.factor(label_bayes)
umap_df$HMM   <- as.factor(label_hmm)

# ------------------------------------------------------------
# 4. Plot UMAP 2D untuk masing-masing metode clustering
# ------------------------------------------------------------

# UMAP dengan cluster GMM
u1 <- ggplot(umap_df, aes(UMAP1, UMAP2, color = GMM)) +
  geom_point(size = 2) +
  ggtitle("UMAP 2D - Gaussian Mixture Model (GMM)") +
  theme_minimal()

# UMAP dengan cluster Bayesian GMM
u2 <- ggplot(umap_df, aes(UMAP1, UMAP2, color = Bayes)) +
  geom_point(size = 2) +
  ggtitle("UMAP 2D - Bayesian GMM") +
  theme_minimal()

# UMAP dengan cluster Hidden Markov Model
u3 <- ggplot(umap_df, aes(UMAP1, UMAP2, color = HMM)) +
  geom_point(size = 2) +
  ggtitle("UMAP 2D - Hidden Markov Model (HMM)") +
  theme_minimal()

# ------------------------------------------------------------
# 5. Gabungkan ketiga plot dalam satu grid
# ------------------------------------------------------------
grid.arrange(u1, u2, u3, ncol = 3)

Interpretasi Singkat UMAP 2D

1. Gaussian Mixture Model (GMM)

  • UMAP menunjukkan tiga cluster yang cukup jelas terpisah:

    • Cluster 1 di bagian bawah,
    • Cluster 2 di tengah,
    • Cluster 3 di bagian atas.
  • GMM mampu menangkap struktur non-linear yang disederhanakan UMAP, sehingga klusternya terdistribusi rapi dan tidak terlalu tumpang tindih.

Interpretasi:

GMM cukup stabil dan konsisten dalam memisahkan tiga pola utama pada ruang embedding UMAP.

2. Bayesian Gaussian Mixture Model (Bayes GMM)

  • Hampir seluruh titik diberi label cluster 1 (warna merah).
  • Tidak ada pemisahan cluster yang tampak seperti hasil GMM biasa.

Interpretasi:

Bayesian GMM menjadi over-conservative, kemungkinan karena prior yang terlalu ketat sehingga model “meruntuhkan” semua data ke satu komponen saja. Ini menunjukkan kegagalan clustering pada representasi UMAP.

3. Hidden Markov Model (HMM)

  • HMM menunjukkan tiga kelompok yang muncul cukup terpisah, mirip dengan GMM:

    • Cluster 1 di bagian bawah,
    • Cluster 2 di tengah,
    • Cluster 3 di atas.
  • Pola pemisahannya sedikit berbeda, namun cluster tetap cenderung mengikuti pola vertikal UMAP.

Interpretasi: HMM mampu mengenali pola transisi secara tidak langsung melalui embedding, sehingga menghasilkan cluster yang cukup baik dan mirip dengan GMM.

Kesimpulan Singkat

Model Hasil Clustering pada UMAP Kualitas
GMM 3 cluster jelas terpisah Baik
Bayesian GMM Hampir satu cluster saja Lemah
HMM 3 cluster muncul jelas Baik

UMAP menegaskan bahwa GMM dan HMM menangkap struktur non-linear data, sedangkan Bayesian GMM gagal memisahkan cluster.

XII. Evaluasi dan Perbandingan Antar Algoritma

Bagian ini bertujuan untuk menilai kinerja algoritma clustering yang telah diterapkan, yaitu:

  1. Gaussian Mixture Model (GMM)
  2. Bayesian Gaussian Mixture Model (Bayesian GMM)
  3. Hidden Markov Model (HMM)

Evaluasi dilakukan secara kuantitatif dan komparatif, menggunakan metrik clustering dan membandingkan hasil dengan label asli (wine class), jika tersedia.

1. Metrik Evaluasi Clustering

Metrik Tujuan Penjelasan
Silhouette Score Mengukur seberapa baik tiap titik berada dalam cluster-nya Nilai antara -1 sampai 1. Nilai tinggi → cluster compact dan terpisah jelas.
Davies–Bouldin Index (DBI) Mengukur kesamaan antar cluster Nilai rendah → cluster lebih compact dan terpisah.
Calinski–Harabasz Index (CHI) Mengukur rasio antara variansi antar cluster dan intra cluster Nilai tinggi → cluster lebih jelas dan compact.
Adjusted Rand Index (ARI) Membandingkan hasil clustering dengan label asli Nilai 1 → hasil clustering identik dengan label asli; nilai 0 → random.
Normalized Mutual Information (NMI) Mengukur kesamaan cluster dengan label asli Nilai 1 → informasi cluster sama dengan label asli.
Runtime Mengevaluasi efisiensi komputasi Waktu eksekusi algoritma.
Stability Mengukur konsistensi hasil clustering pada percobaan berbeda Cluster stabil → hasil tidak berubah banyak saat data di-shuffle atau algoritma dijalankan ulang.

2. Tujuan Evaluasi

  1. Menentukan algoritma terbaik berdasarkan kualitas cluster (compact, jelas, dan stabil).
  2. Memastikan hasil cluster sesuai karakteristik data (misalnya Wine dataset dengan 3 kelas).
  3. Menilai robustness algoritma terhadap perubahan data atau random initialization.
  4. Memberikan bukti kuantitatif untuk laporan atau publikasi.

3. Evaluasi

# ===============================
# Evaluasi Clustering
# ===============================

library(clusterSim)              # setiap sesi
## Loading required package: cluster
library(cluster)      # silhouette
library(fpc)          # DB index, CH index
library(mclust)       # ARI
library(aricode)      # NMI
library(microbenchmark)

data_mat <- wine_scaled   # Data hasil scaling


# ===============================
# Fungsi aman untuk Silhouette
# ===============================
get_sil <- function(label, data_mat){
  if(length(unique(label)) < 2){
    return(NA)   # Tidak bisa dihitung jika cluster cuma 1
  } else {
    return(mean(silhouette(label, dist(data_mat))[, 3]))
  }
}


# ----- 1. Silhouette Score -----
sil_gmm   <- get_sil(label_gmm, data_mat)
sil_bayes <- get_sil(label_bayes, data_mat)
sil_hmm   <- get_sil(label_hmm, data_mat)


# ----- 2. Davies–Bouldin Index -----
dbi_gmm   <- index.DB(data_mat, label_gmm)$DB
dbi_bayes <- index.DB(data_mat, label_bayes)$DB
## Warning in max(R[i, ][is.finite(R[i, ])]): no non-missing arguments to max;
## returning -Inf
dbi_hmm   <- index.DB(data_mat, label_hmm)$DB


# ----- 3. Calinski–Harabasz Index -----
# CH tidak boleh cluster = 1 → beri NA
safe_ch <- function(label, data_mat){
  if(length(unique(label)) < 2){
    return(NA)
  } else {
    return(calinhara(data_mat, label))
  }
}

chi_gmm   <- safe_ch(label_gmm, data_mat)
chi_bayes <- safe_ch(label_bayes, data_mat)
chi_hmm   <- safe_ch(label_hmm, data_mat)


# ----- 4. ARI & NMI -----
true_label <- wine$Class

ari_gmm   <- ARI(true_label, label_gmm)
ari_bayes <- ARI(true_label, label_bayes)
ari_hmm   <- ARI(true_label, label_hmm)

nmi_gmm   <- NMI(true_label, label_gmm)
nmi_bayes <- NMI(true_label, label_bayes)
nmi_hmm   <- NMI(true_label, label_hmm)


# ----- 5. Gabung semua hasil -----
eval_table <- data.frame(
  Method = c("GMM", "Bayesian GMM", "HMM"),
  Silhouette = round(c(sil_gmm, sil_bayes, sil_hmm), 3),
  DB_Index   = round(c(dbi_gmm, dbi_bayes, dbi_hmm), 3),
  CH_Index   = round(c(chi_gmm, chi_bayes, chi_hmm), 3),
  ARI        = round(c(ari_gmm, ari_bayes, ari_hmm), 3),
  NMI        = round(c(nmi_gmm, nmi_bayes, nmi_hmm), 3)
)

eval_table
Interpretasi Hasil Evaluasi Clustering

Tabel berikut menampilkan hasil evaluasi tiga metode clustering, yaitu GMM, Bayesian GMM, dan HMM, berdasarkan lima metrik evaluasi: Silhouette, Davies-Bouldin Index, Calinski-Harabasz Index, ARI, dan NMI.

1. Silhouette Score

Silhouette score menggambarkan seberapa baik setiap observasi berada pada klaster yang benar serta seberapa jauh jaraknya dari klaster lain. Nilai yang lebih tinggi menunjukkan struktur klaster yang lebih jelas.

  • GMM memiliki nilai tertinggi yaitu 0.273, menunjukkan bahwa klaster yang terbentuk cukup kompak dan terpisah dengan baik.
  • Bayesian GMM memperoleh nilai 0.225, yang menunjukkan kualitas klaster yang cukup baik namun tidak sekuat GMM.
  • HMM memiliki nilai terendah yaitu 0.164, yang menunjukkan bahwa klaster yang terbentuk kurang kompak dan kurang terpisah.

GMM memberikan struktur klaster yang paling baik berdasarkan metrik ini.

2. Davies–Bouldin Index

Davies–Bouldin Index mengukur tingkat kemiripan antar-klaster. Nilai yang lebih rendah menandakan bahwa klaster lebih terpisah dengan baik.

  • GMM memiliki nilai paling rendah yaitu 1.482, sehingga menunjukkan pemisahan klaster yang paling baik.
  • Bayesian GMM memiliki nilai 1.772, yang berarti masih terdapat tumpang tindih antar-klaster.
  • HMM memiliki nilai tertinggi yaitu 1.936, sehingga pemisahan klasternya paling lemah.

GMM kembali menunjukkan performa terbaik pada metrik ini.

3. Calinski–Harabasz Index

Calinski–Harabasz Index mengukur kekuatan pemisahan antar-klaster dengan mempertimbangkan sebaran internal klaster dan jarak antar-klaster. Nilai yang lebih tinggi menunjukkan pemisahan yang lebih kuat.

  • GMM memiliki skor tertinggi yaitu 66.850.
  • Bayesian GMM memiliki skor 56.277, yang masih cukup kuat tetapi tidak sebaik GMM.
  • HMM memiliki skor paling rendah yaitu 33.936.

GMM menunjukkan pemisahan klaster yang paling baik.

4. Adjusted Rand Index (ARI)

ARI mengukur kesesuaian antara hasil clustering dengan label asli dari dataset Wine. Nilai mendekati satu menunjukkan kesesuaian yang sangat baik.

  • GMM memiliki nilai ARI 0.930, yang menunjukkan kesesuaian yang hampir sempurna dengan label asli.
  • Bayesian GMM memiliki nilai ARI 0.594, yang menunjukkan tingkat kesesuaian sedang.
  • HMM memiliki nilai ARI 0.455, yang merupakan tingkat kesesuaian terendah.

GMM memberikan hasil yang paling mendekati struktur asli dataset.

5. Normalized Mutual Information (NMI)

NMI mengukur kesamaan antara klaster yang terbentuk dengan label asli. Nilai mendekati satu menunjukkan kesamaan yang tinggi.

  • GMM memiliki nilai tertinggi yaitu 0.910.
  • Bayesian GMM memiliki nilai 0.605, yang menunjukkan kesesuaian sedang.
  • HMM memiliki nilai terendah yaitu 0.483.

GMM sekali lagi menunjukkan performa tertinggi.

Kesimpulan Umum

Berdasarkan lima metrik evaluasi yang digunakan, GMM adalah metode clustering dengan performa terbaik pada dataset Wine. Model ini menghasilkan klaster yang paling kompak, paling terpisah, dan paling sesuai dengan struktur asli data. Bayesian GMM berada pada posisi kedua dengan performa menengah. HMM menjadi metode dengan performa paling rendah pada dataset ini karena klaster yang terbentuk kurang stabil dan kurang sejalan dengan label asli.

XIII. Kesimpulan dan Rekomendasi

Kesimpulan

Penelitian ini telah melakukan proses pemodelan klaster pada UCI Wine Dataset menggunakan tiga pendekatan berbeda, yaitu Gaussian Mixture Model, Bayesian Gaussian Mixture Model, dan Hidden Markov Model. Seluruh model diberi data yang telah melalui proses standardisasi serta dilakukan visualisasi menggunakan PCA untuk memahami pola dan distribusi antar-observasi.

Hasil evaluasi menunjukkan bahwa Gaussian Mixture Model merupakan metode yang paling unggul di antara ketiganya. Metode ini menghasilkan nilai Silhouette tertinggi, Davies–Bouldin Index terendah, dan Calinski–Harabasz Index tertinggi, yang menandakan bahwa struktur klaster yang dihasilkan bersifat paling kompak dan paling terpisah. Selain itu, nilai Adjusted Rand Index dan Normalized Mutual Information yang tinggi menunjukkan bahwa hasil clustering GMM paling mendekati label asli data Wine.

Bayesian Gaussian Mixture Model menunjukkan performa yang cukup baik namun tidak sekuat GMM. Model ini tetap mampu menemukan tiga klaster, tetapi struktur klaster cenderung sedikit lebih tumpang tindih dan kurang terpisah dibandingkan GMM. Hal ini sesuai dengan sifat pendekatan Bayesian yang cenderung melakukan regularisasi terhadap jumlah klaster sehingga model lebih konservatif, terutama bila data tidak memberikan sinyal pemisahan yang sangat kuat.

Sementara itu, Hidden Markov Model memberikan performa terendah pada dataset ini. Model ini menghasilkan klaster yang kurang terpisah dan tidak sesuai dengan struktur label asli. Hal ini dapat dijelaskan karena HMM lebih tepat digunakan untuk data yang memiliki hubungan sekuensial atau temporal, sedangkan dataset Wine merupakan data tabular tanpa dependensi antar-observasi.

Secara keseluruhan, penelitian ini menunjukkan bahwa Gaussian Mixture Model merupakan metode yang paling efektif untuk mengelompokkan UCI Wine Dataset, baik dari sisi kualitas klaster maupun kesesuaiannya dengan struktur ground truth.

Rekomendasi

Berdasarkan temuan penelitian, beberapa rekomendasi dapat diberikan sebagai berikut:

  1. Gaussian Mixture Model disarankan sebagai metode utama untuk permasalahan clustering pada dataset Wine maupun dataset lain yang memiliki karakteristik serupa. Model ini mampu menangkap struktur distribusi yang kompleks dan memberikan hasil yang konsisten.

  2. Bayesian Gaussian Mixture Model dapat digunakan sebagai alternatif ketika diperlukan model yang lebih stabil, lebih konservatif dalam menentukan jumlah klaster, atau ketika tujuan penelitian adalah mengeksplorasi ketidakpastian model. Namun, kualitas klasternya tetap perlu dibandingkan dengan GMM pada setiap kasus.

  3. Hidden Markov Model tidak direkomendasikan untuk data tabular non-sekuensial, karena model ini lebih tepat diterapkan pada data yang mengandung hubungan waktu atau urutan antar tahap. Untuk dataset seperti Wine, performanya cenderung kurang optimal.

  4. Penelitian lanjutan dapat mempertimbangkan metode clustering lainnya, seperti DBSCAN, Spectral Clustering, atau Hierarchical Clustering, guna memperkaya analisis dan melihat apakah terdapat metode lain yang mampu mengungguli GMM pada data ini.

  5. Visualisasi lanjutan, seperti UMAP atau t-SNE, dapat digunakan untuk memperdalam interpretasi karakteristik masing-masing klaster, terutama bila dataset memiliki korelasi antar variabel yang cukup tinggi.

Dengan mempertimbangkan hasil yang diperoleh, Gaussian Mixture Model dapat dinyatakan sebagai pendekatan terbaik untuk pemodelan klaster pada UCI Wine Dataset dalam penelitian ini.

Referensi

https://bookdown.org/content/a142b172-69b2-436d-bdb0-9da6d046a0f9/03-Classifications.html#ensemble-methods

Bishop, C. M. (2006). Pattern recognition and machine learning. Springer.
Fraley, C., & Raftery, A. E. (2012). Model-based clustering, discriminant analysis, and density estimation. Journal of Statistical Software, 46(11), 1–32.
Hotelling, H. (1933). Analysis of a complex of statistical variables into principal components. Journal of Educational Psychology, 24(6), 417–441.
Jolliffe, I. T., & Cadima, J. (2016). Principal component analysis. Springer.
McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform manifold approximation and projection for dimension reduction. arXiv Preprint arXiv:1802.03426.
McLachlan, G., & Peel, D. (2004). Finite mixture models. John Wiley & Sons.
Murphy, K. P. (2022). Probabilistic machine learning: Advanced topics. MIT Press.
Rabiner, L. R. (1989). A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of the IEEE, 77(2), 257–286.
Reynolds, D. A. (2009). Gaussian mixture models. Encyclopedia of Biometrics, 659–663.