Repositori ini menyediakan alat pendeteksi anomali pada log aktivitas berbasis Python. Sistem memanfaatkan model Isolation Forest untuk mengidentifikasi perilaku tidak wajar (anomali) dalam data numerik dan mendukung proses pelatihan ulang model.
Python 3.9 atau lebih baru.
Paket pendukung:
- pandas
- scikit-learn
- joblib
Instalasi dependensi:
pip install -r requirements.txt
project/
├─ data/
│ ├─ log_example.csv
├─ models/
│ ├─ anomaly_detector.pkl
│ ├─ train_model.py
├─ src/
│ ├─ main.py
│ ├─ utils.py
├─ README.md
└─ requirements.txt
Jalankan perintah berikut:
python src/main.py <lokasi_file_log.csv>
Contoh:
python src/main.py data/log_example.csv
Berkas CSV minimal memiliki kolom berikut:
timestamp,activity
2025-01-01 00:00:00,5
2025-01-01 00:00:30,7
2025-01-01 00:02:00,100
Kolom timestamp akan dibersihkan dan dikonversi menjadi tipe datetime.
Kolom activity akan diperiksa untuk memastikan bertipe numerik.
Program menghasilkan:
- Data lengkap dengan label
anomaly. - Baris‐baris yang teridentifikasi sebagai anomali.
Label anomaly:
1→ normal-1→ anomali
Anda dapat melatih ulang model menggunakan data baru.
Jalankan:
python models/train_model.py --data data/log_example.csv --output models/anomaly_detector.pkl --contamination 0.05
Parameter:
--data→ lokasi data input--output→ lokasi penyimpanan model--contamination→ proporsi asumsi anomali dalam data
Parameter contamination pada Isolation Forest menentukan perkiraan persentase data yang dianggap anomali. Nilai ini dapat disesuaikan dengan sifat data.
Fungsi utilitas tambahan tersedia:
- Pembersihan kolom timestamp
- Validasi tipe data numerik
Penggunaan terbuka sesuai kebutuhan. Proyek ini dilisensikan dibawah MIT License. silahkan gunakan,ubah, dan distribusikan sesuai ketentuan lisensi.