....md - candrayu/SistemOperasiGenap24-25 GitHub Wiki

🌲 Perhitungan Manual Random Forest

📊 Contoh Dataset Sederhana

Misalnya kita punya data berikut untuk memprediksi apakah seseorang akan beli produk atau tidak:

Umur Penghasilan Beli
Muda Rendah Tidak
Muda Tinggi Tidak
Paruh Rendah Ya
Tua Sedang Ya
Tua Tinggi Ya
Tua Rendah Tidak
Paruh Tinggi Ya

Jumlah total data S = 7
Jumlah "Ya" = 4, "Tidak" = 3


1️⃣ Entropy(S) - Sebelum Split

Rumus:

Entropy(S) = -p_ya * log2(p_ya) - p_tidak * log2(p_tidak)

Perhitungan:

p_ya = 4/7 ≈ 0.571 p_tidak = 3/7 ≈ 0.429

Entropy(S) ≈ -0.571 * log2(0.571) - 0.429 * log2(0.429) ≈ -0.571 * (-0.807) - 0.429 * (-1.222) ≈ 0.461 + 0.524 ≈ 0.985


2️⃣ Split Berdasarkan Umur

Data Per Umur:

  • Muda (2 data): Tidak, Tidak → Entropy = 0
  • Paruh (2 data): Ya, Ya → Entropy = 0
  • Tua (3 data): Ya, Ya, Tidak → 2 Ya, 1 Tidak

Entropy(Tua):

p_ya = 2/3 ≈ 0.667 p_tidak = 1/3 ≈ 0.333

Entropy(Tua) = -0.667 * log2(0.667) - 0.333 * log2(0.333) ≈ -0.667 * (-0.585) - 0.333 * (-1.585) ≈ 0.390 + 0.528 ≈ 0.918


3️⃣ Information Gain dari Atribut Umur

Rumus:

Gain(S, Umur) = Entropy(S) - ∑(|Sv|/|S|) * Entropy(Sv)

Perhitungan:

Gain(S, Umur) = 0.985 - [(2/7)*0 + (2/7)*0 + (3/7)*0.918] = 0.985 - (0 + 0 + 0.393) = 0.592


4️⃣ Gini Index S (Sebelum Split)

Rumus:

Gini(S) = 1 - (p_ya² + p_tidak²)

Perhitungan:

p_ya = 4/7 ≈ 0.571 p_tidak = 3/7 ≈ 0.429

Gini(S) = 1 - (0.571² + 0.429²) = 1 - (0.327 + 0.184) = 1 - 0.510 = 0.49


✅ Kesimpulan:

  • Entropy(S) = 0.985
  • Gain dari atribut Umur = 0.592
  • Gini(S) = 0.49