Sumber utama: Rodríguez, J. J., Kuncheva, L. I., & Alonso, C. J. (2006). Rotation Forest: A New Classifier Ensemble Method. IEEE TPAMI.
🇮🇩 Pendahuluan
Rotation Forest adalah metode ensemble untuk klasifikasi yang membangun banyak decision tree, tetapi tiap pohon dilatih pada data yang sudah “dirotasi” menggunakan PCA. Tujuannya sederhana: membuat pohon-pohon yang tetap kuat (akurasi tinggi) namun berbeda satu sama lain (diversitas tinggi).
Intuisi singkatnya:
Random Forest merandomisasi pemilihan fitur saat split, sedangkan Rotation Forest merandomisasi orientasi ruang fitur sebelum pohon dilatih.
🇬🇧 Introduction
Rotation Forest is an ensemble classification method that builds multiple decision trees, where each tree is trained on a PCA-rotated version of the data. The goal is to create base learners that are both accurate and diverse.
Quick intuition:
Random Forest randomizes feature selection during splitting, while Rotation Forest randomizes the geometry (orientation) of the feature space before training.
1) Notasi Dasar | Basic Notation
🇮🇩
Misalkan dataset latih adalah:
- Jumlah observasi:
- Jumlah fitur:
- Jumlah kelas:
- Matriks fitur:
- Label kelas:
- Jumlah classifier dalam ensemble:
Tiap classifier ke- akan memiliki rotation matrix sendiri, yaitu .
🇬🇧
Let the training data be:
- Number of samples:
- Number of features:
- Number of classes:
- Feature matrix:
- Class labels:
- Number of ensemble members:
Each classifier i has its own rotation matrix .
2) Inti Model Rotation Forest | The Core Model
🇮🇩
Untuk classifier ke-i, data latih dirotasi menjadi:
Pohon keputusan Di dilatih menggunakan X(i) (bukan X asli).
🇬🇧
For classifier i, the training data is rotated as:
Then decision tree is trained on .
3) Membagi Fitur Menjadi K Subset | Splitting Features into K Subsets
🇮🇩
Himpunan fitur dibagi acak menjadi subset yang saling lepas:
Jika n habis dibagi K, ukuran subset adalah:
🇬🇧
The feature set F={1,2,…,n} is randomly split into K disjoint subsets:
If n is divisible by K, the subset size is:
4) PCA per Subset (Tanpa Membuang Komponen) | PCA per Subset (No Component Dropping)
🇮🇩
Untuk setiap subset fitur Fi,j, diambil sampel bootstrap (misalnya 75% data) untuk membentuk matriks data subset Xi,j. Lalu PCA dilakukan lewat kovarians:
Kemudian eigen-decomposition:
Kumpulan eigenvector membentuk matriks:
Catatan penting: Rotation Forest menyimpan semua komponen PCA (tidak ada reduksi dimensi).
🇬🇧
For each feature subset Fi,j, bootstrap samples are taken (e.g., 75% of data) to form Xi,j. PCA is computed via covariance:
Then eigen-decomposition:
Eigenvectors are collected into:
Key note: Rotation Forest keeps all PCA components (no dimensionality reduction).
5) Menyusun Rotation Matrix (Persamaan “Resmi”) | Constructing the Rotation Matrix (Canonical Form)
Ini bentuk yang paling “rapi” untuk blog, namun tetap sesuai struktur paper: matriks rotasi Ri berbentuk blok-diagonal dari hasil PCA tiap subset.
Lalu dilakukan pengaturan ulang kolom (reordering) agar urutan fitur kembali cocok dengan fitur asli, menghasilkan:
Data latih untuk pohon Di:
6) Agregasi Prediksi Ensemble | Ensemble Prediction Aggregation
🇮🇩
Untuk data uji x, setiap classifier memberi probabilitas kelas di,j(⋅). Kombinasi dilakukan dengan rata-rata:
Prediksi akhir:
🇬🇧
For a test instance x, each classifier outputs class probabilities di,j(⋅). The ensemble averages them:
Final prediction:
7) (Opsional) Kappa–Error untuk Mengukur Diversitas | (Optional) Kappa–Error for Diversity
🇮🇩
Untuk dua classifier Di dan Dj, kappa dihitung dari matriks coincidence M=[mk,s]. Definisi kappa:
dengan:
🇬🇧
For two classifiers Di and Dj, kappa is computed from the coincidence matrix M=[mk,s]:
where:
Kesimpulan | Conclusion
🇮🇩
Rotation Forest bisa diringkas dalam tiga ide:
- fitur dibagi menjadi beberapa subset,
- tiap subset diputar dengan PCA (semua komponen disimpan),
- tiap pohon dilatih pada data hasil rotasi, lalu output digabung rata-rata.
Hasilnya adalah ensemble yang biasanya memiliki kombinasi optimal antara akurasi dan diversitas.
🇬🇧
Rotation Forest can be summarized into three ideas:
- split features into subsets,
- rotate each subset using PCA (keep all components),
- train each tree on rotated data and average predictions.
This often yields a strong balance between accuracy and diversity.