π§ 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:
{ "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.pkldanisolation_forest.pklHARUS 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):
- Jalankan
python tools/model_train.py - File
.pklbaru akan di-generate - 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:
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