File size: 3,195 Bytes
bd15e44 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | # π§ Tools Directory
Folder ini berisi model machine learning dan konfigurasi untuk anomali detection.
---
## π¦ Files Required
```
tools/
βββ scaler.pkl β StandardScaler model (binary)
βββ isolation_forest.pkl β Isolation Forest model (binary)
βββ metadata.json β Configuration
βββ model_train.py β Training script (optional)
βββ simpanan_analisis.py β Helper functions (optional)
```
---
## π File Descriptions
### scaler.pkl
- **Type:** Binary (Pickle format)
- **Purpose:** Standardize features untuk ML model
- **Used by:** Tab 2 (Analisa Simpanan)
- **Size:** ~1-2 KB
### isolation_forest.pkl
- **Type:** Binary (Pickle format)
- **Purpose:** Pre-trained Isolation Forest model untuk anomali detection
- **Used by:** Tab 2 (Analisa Simpanan)
- **Features:** 8 fitur (Db_Sukarela dan Cr_Sukarela aggregates)
- **Size:** ~10-50 KB
### metadata.json
- **Type:** JSON (Text)
- **Purpose:** Konfigurasi model dan parameter
- **Content:**
```json
{
"feature_cols": [...], // Nama kolom untuk model
"rolling_zscore_threshold": 1.0, // Threshold untuk Z-Score
"rolling_window": 3 // Window size untuk rolling aggregation
}
```
### model_train.py (Optional)
Script untuk melatih ulang model jika diperlukan.
### simpanan_analisis.py (Optional)
Helper functions untuk analisa simpanan.
---
## β οΈ Important Notes
### Binary Model Files (.pkl)
- File `scaler.pkl` dan `isolation_forest.pkl` HARUS ada untuk Tab 2 berfungsi
- Files ini di-generate saat training, bukan di-create manual
- Jangan di-edit manual - format binary
### File Locations
- App mencari file di path relatif: `../tools/` (dari app folder)
- Pastikan struktur folder sesuai template
### Model Updates
Jika ingin update model (retrain):
1. Jalankan `python tools/model_train.py`
2. File `.pkl` baru akan di-generate
3. Restart aplikasi
---
## π Troubleshooting
### Error: "Model tidak ditemukan"
```
Solusi:
1. Pastikan scaler.pkl ada di tools/
2. Pastikan isolation_forest.pkl ada di tools/
3. Check file paths (case-sensitive di Linux/Mac)
```
### Error: "Model load failed"
```
Solusi:
1. Pastikan Python version sama saat training dan running
2. Pastikan scikit-learn version sama
3. Re-train model jika masih error
```
---
## π Model Info
### Isolation Forest
- **Algorithm:** Anomaly detection via Isolation Forest
- **Training data:** Historical simpanan transactions
- **Features:** 8 aggregated metrics
- Db_Sukarela_Total, Db_Sukarela_Avg, Db_Sukarela_Std, Db_Sukarela_Max
- Cr_Sukarela_Total, Cr_Sukarela_Avg, Cr_Sukarela_Std, Cr_Sukarela_Max
- **Output:** Binary (Anomaly: -1, Normal: 1)
### StandardScaler
- **Purpose:** Feature normalization
- **Fitted on:** Historical data statistics
- **Usage:** Pre-process features before model prediction
---
## π Quick Check
Verify tools setup:
```bash
cd THC_APP
python -c "import joblib; print('scaler:', joblib.load('tools/scaler.pkl')); print('model:', joblib.load('tools/isolation_forest.pkl'))"
```
Success jika output menunjukkan objects tanpa error.
---
**Last Updated:** May 2026
|