Permutation Importance ‐ Audit AI - BlackAlph4ndr01D/Daftar-Militer-AI-zionis-israel-part.2 GitHub Wiki

✅ Penjelasan Lengkap & Mendalam: Permutation Importance

Apa itu Permutation Importance?

Permutation Importance adalah salah satu teknik paling sederhana, intuitif, dan efektif untuk mengukur seberapa penting sebuah fitur (variabel) terhadap performa model Machine Learning.

Metode ini model-agnostic, artinya bisa digunakan pada hampir semua jenis model (Random Forest, Neural Network, XGBoost, Logistic Regression, dll).

Cara Kerja Permutation Importance (Step by Step)

  1. Train model pada dataset asli dan catat akurasinya (misalnya accuracy, F1-score, dll).

  2. Pilih satu fitur, lalu acak (permute) nilai fitur tersebut secara acak di dataset uji.
    (Fitur lain tetap sama).

  3. Uji model lagi dengan data yang sudah diacak fiturnya tersebut, lalu catat penurunan akurasinya.

  4. Ulangi langkah 2–3 untuk semua fitur.

  5. Semakin besar penurunan akurasi setelah fitur diacak → semakin penting fitur tersebut.

Inti Ide:
Jika mengacak sebuah fitur menyebabkan performa model turun drastis, berarti model sangat bergantung pada fitur itu.

Contoh Kode Python

# =============================================
# Permutation Importance Example
# =============================================

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.inspection import permutation_importance
import matplotlib.pyplot as plt

# Data simulasi Threat Scoring
data = pd.DataFrame({
    'age': [28, 34, 19, 45, 22],
    'in_hotspot_area': [1, 0, 1, 1, 0],
    'night_communication': [1, 0, 1, 1, 0],
    'weapon_detected': [0, 1, 0, 1, 0],
    'distance_to_forces': [45, 120, 30, 80, 200]
})

target = [1, 1, 0, 1, 0]   # 1 = High Threat

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(data, target)

# Hitung Permutation Importance
perm_importance = permutation_importance(
    model, data, target, 
    n_repeats=30,          # berapa kali diacak
    random_state=42
)

# Buat DataFrame hasil
importance_df = pd.DataFrame({
    'feature': data.columns,
    'importance_mean': perm_importance.importances_mean,
    'importance_std': perm_importance.importances_std
}).sort_values(by='importance_mean', ascending=False)

print(importance_df)

# Visualisasi
plt.figure(figsize=(8, 5))
plt.barh(importance_df['feature'], importance_df['importance_mean'])
plt.xlabel('Permutation Importance')
plt.title('Feature Importance - Threat Scoring AI')
plt.gca().invert_yaxis()
plt.show()

Kelebihan Permutation Importance

  • Sangat mudah dipahami.
  • Model-agnostic (bisa dipakai di hampir semua model).
  • Memberi gambaran global tentang pentingnya fitur.
  • Tidak bergantung pada cara model di dalam (black-box friendly).

Kekurangan

  • Komputasi mahal jika dataset besar (karena harus mengacak berkali-kali).
  • Bisa menyesatkan jika ada interaksi kuat antar fitur (multicollinearity).
  • Kurang akurat dibanding SHAP untuk kasus yang sangat kompleks.

Perbandingan Singkat dengan Metode Lain

  • Feature Importance (built-in) → Cepat, tapi hanya bekerja baik di pohon keputusan.
  • Permutation Importance → Lebih andal daripada built-in, tapi masih global.
  • SHAP → Lebih akurat dan adil, bisa local + global.
  • LIME → Hanya local, lebih untuk satu prediksi.

Rekomendasi Penggunaan:

  • Gunakan Permutation Importance untuk analisis awal yang cepat.
  • Gunakan SHAP jika butuh penjelasan yang lebih akurat dan forensik.

Mau saya tambahkan contoh interpretasi hasil pada kasus Lavender atau Threat Scoring Arbel? Atau buat perbandingan lengkap dengan metode lain?

SHAP ‐ Audit AI