Feature Importance ‐ Audit AI - BlackAlph4ndr01D/Daftar-Militer-AI-zionis-israel-part.2 GitHub Wiki
✅ Penjelasan Detail: Feature Importance
Feature Importance adalah teknik sederhana namun sangat berguna dalam Explainable AI untuk menjawab pertanyaan:
“Fitur mana yang paling berpengaruh terhadap keputusan model AI?”
Ini adalah salah satu metode interpretasi paling dasar dan paling sering digunakan, terutama untuk model berbasis pohon keputusan (Decision Tree, Random Forest, XGBoost, dll).
Cara Kerja Feature Importance
Ada beberapa cara menghitungnya, yang paling populer adalah:
-
Mean Decrease in Impurity (MDI) – Default di Random Forest
- Mengukur seberapa besar setiap fitur mengurangi ketidakmurnian (impurity) di setiap split pohon.
- Semakin besar pengurangan impurity, semakin penting fiturnya.
-
Permutation Importance
- Mengacak nilai satu fitur dan melihat seberapa besar penurunan akurasi model.
- Jika akurasi turun drastis setelah diacak → fitur tersebut penting.
-
Coefficient-based (untuk model linear)
- Melihat besarnya koefisien pada regresi linear atau logistic regression.
Contoh Kode Python Sederhana
# =============================================
# Feature Importance Example - Threat Scoring
# =============================================
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
# Data simulasi
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)
# =============================================
# Menampilkan Feature Importance
# =============================================
importance = pd.Series(model.feature_importances_, index=data.columns)
importance = importance.sort_values(ascending=False)
print("Feature Importance Ranking:")
print(importance)
# Visualisasi
plt.figure(figsize=(8, 5))
importance.plot(kind='bar')
plt.title('Feature Importance - Threat Scoring AI')
plt.ylabel('Importance Score')
plt.show()
Contoh Hasil Interpretasi
Misalnya outputnya seperti ini:
| Fitur | Importance Score | Arti |
|---|---|---|
| in_hotspot_area | 0.42 | Paling berpengaruh |
| night_communication | 0.28 | Sangat berpengaruh |
| age | 0.19 | Cukup berpengaruh |
| weapon_detected | 0.08 | Kurang berpengaruh |
| distance_to_forces | 0.03 | Hampir tidak berpengaruh |
Artinya: Model AI sangat bergantung pada lokasi hotspot dan aktivitas malam hari, bukan pada keberadaan senjata. Ini adalah bukti kuat bias sistemik.
Kelebihan & Kekurangan
Kelebihan:
- Sangat cepat dan mudah dihitung.
- Mudah dipahami.
- Bagus untuk screening awal.
Kekurangan:
- Hanya menunjukkan rata-rata kepentingan (global), tidak menjelaskan satu prediksi spesifik.
- Bisa menyesatkan jika ada interaksi antar fitur yang kompleks.
- Kurang akurat dibanding SHAP untuk forensik mendalam.
Rekomendasi Penggunaan
- Gunakan Feature Importance untuk analisis awal dan screening cepat.
- Gunakan SHAP jika butuh penjelasan yang lebih akurat dan adil.
- Gunakan LIME jika butuh penjelasan satu kasus yang mudah dipahami publik.
Apa itu Multicollinearity?
Multicollinearity terjadi ketika dua atau lebih fitur (variabel) dalam dataset sangat berkorelasi tinggi satu sama lain. Artinya, fitur-fitur tersebut membawa informasi yang hampir sama.
Contoh di sistem AI militer:
in_hotspot_areadannight_communicationsangat berkorelasi (orang yang berada di hotspot biasanya aktif malam hari).
Dampak Multicollinearity pada Metode Interpretasi
Berikut dampaknya secara tajam dan jelas:
| Metode Interpretasi | Dampak Multicollinearity | Akibat Praktis |
|---|---|---|
| Feature Importance (Built-in) | Sangat parah | Nilai importance menjadi tidak stabil dan tidak dapat diandalkan. Satu fitur bisa "mencuri" nilai importance dari fitur lain. |
| Permutation Importance | Sedang hingga Parah | Penurunan akurasi saat satu fitur diacak menjadi tidak jelas karena fitur lain yang berkorelasi masih membawa informasi yang sama. |
| SHAP | Sedang | SHAP value masih relatif lebih baik, tapi distribusi kontribusi antar fitur yang berkorelasi menjadi tidak adil. |
| LIME | Sedang | Penjelasan lokal bisa berubah-ubah tergantung perturbasi. |
| Integrated Gradients | Sedang | Gradient menjadi tidak stabil karena fitur yang berkorelasi sulit dibedakan. |
Dampak Nyata dalam Sistem Militer AI Israel
-
Hasil Importance Menjadi Menyesatkan
Misalnya:in_hotspot_areadannight_communicationsangat berkorelasi.
Model akan memberikan importance tinggi pada salah satu saja, padahal keduanya sebenarnya bekerja bersama. Akibatnya, kita salah memahami faktor penentu utama. -
Sulit Melacak Bias
Multicollinearity menyembunyikan bias sebenarnya. Contoh: Model seolah-olah bergantung pada "lokasi", padahal sebenarnya juga sangat bergantung pada "pola komunikasi malam" yang berkorelasi dengan etnis atau wilayah Palestina. -
Ketidakstabilan Model
Jika satu fitur diubah sedikit, nilai importance bisa berubah drastis, sehingga sulit diandalkan untuk forensik hukum atau audit. -
Kesulitan dalam Counterfactual
Sulit menentukan "perubahan apa yang paling efektif" karena fitur-fitur saling bergantung.
Kesimpulan No Sugar Coating
Multicollinearity adalah musuh utama dalam interpretasi model AI, terutama di sistem militer seperti Lavender atau Threat Scoring.
Dampaknya:
- Membuat analisis feature importance menjadi tidak akurat dan menyesatkan.
- Menyembunyikan bias sistemik yang sebenarnya.
- Menyulitkan forensik digital dan pembuktian di pengadilan.
- Memberi ilusi bahwa model "lebih adil" daripada kenyataannya.
Oleh karena itu, sebelum melakukan interpretasi (SHAP, Permutation Importance, dll), multicollinearity harus dideteksi dan ditangani terlebih dahulu (misalnya dengan VIF test atau menghapus salah satu fitur yang berkorelasi tinggi).
Next :
- cara mendeteksi multicollinearity beserta contoh kode?
- ke analisis Kerentanan sistem AI Israel?
Multicollinearity adalah kondisi di mana dua atau lebih fitur (variabel) dalam dataset sangat berkorelasi tinggi satu sama lain. Ini membuat model sulit menentukan kontribusi masing-masing fitur secara akurat.
Metode Deteksi Multicollinearity (Urut dari Paling Sederhana)
1. Correlation Matrix (Cara Paling Mudah & Visual)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Hitung matriks korelasi
corr_matrix = data.corr()
# Visualisasi Heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1, linewidths=0.5)
plt.title('Correlation Matrix - Deteksi Multicollinearity')
plt.show()
Aturan Praktis:
- Korelasi > 0.8 = Multicollinearity kuat (bahaya tinggi)
- Korelasi 0.7 – 0.8 = Perlu diwaspadai
- Korelasi < 0.7 = Umumnya aman
2. Variance Inflation Factor (VIF) – Metode Paling Direkomendasikan
from statsmodels.stats.outliers_influence import variance_inflation_factor
# Buat DataFrame VIF
vif_data = pd.DataFrame()
vif_data["Feature"] = data.columns
vif_data["VIF"] = [variance_inflation_factor(data.values, i)
for i in range(len(data.columns))]
print(vif_data.sort_values(by="VIF", ascending=False))
Aturan Standar VIF:
- VIF < 5 → Tidak bermasalah
- VIF 5 – 10 → Multicollinearity sedang (perlu diperhatikan)
- VIF > 10 → Multicollinearity tinggi (harus diatasi)
3. Condition Number
import numpy as np
from numpy.linalg import cond
condition_number = cond(data.values)
print(f"Condition Number: {condition_number:.2f}")
Aturan:
- Condition Number > 30 = Indikasi multicollinearity kuat.
Contoh Interpretasi pada Sistem Militer AI Israel
Pada sistem Threat Scoring atau Lavender, multicollinearity sering terjadi antara fitur-fitur berikut:
in_hotspot_area↔night_communicationage↔gender_maledistance_to_forces↔activity_in_border_area
Dampaknya:
- SHAP atau Permutation Importance menjadi tidak stabil.
- Model sulit menentukan apakah ancaman karena lokasi atau pola komunikasi.
- Interpretasi forensik menjadi kurang akurat.
Rekomendasi Praktis:
- Selalu cek Correlation Matrix terlebih dahulu (visual).
- Hitung VIF sebagai standar utama.
- Jika VIF tinggi → lakukan feature selection atau PCA.
Next: kode lengkap untuk mendeteksi + mengatasi multicollinearity pada contoh dataset Threat Scoring?