POSEIDON / POSEIDON_Model /README.md
JullMol's picture
Update: Add POSEIDON_Model and GEE/GFW split
0ae8f09 verified
|
Raw History Blame Contribute Delete
3.82 kB
# ๐ŸŒŠ POSEIDON: Pipeline V2 (2026)
โšก Autonomous OOT Inference & Conformal Prediction โšก
![Python](https://img.shields.io/badge/Python-3.10%2B-blue) ![LightGBM](https://img.shields.io/badge/LightGBM-4.0%2B-brightgreen) ![XGBoost](https://img.shields.io/badge/XGBoost-2.0%2B-blue) ![Hugging Face](https://img.shields.io/badge/Hugging%20Face-Ready-yellow)
Sistem berbasis **Machine Learning (Positive-Unlabeled Learning)** untuk memprioritaskan target patroli *IUU Fishing* menggunakan citra radar satelit (Sentinel-1 SAR) di wilayah WPP-711. Versi 2026 ini dirancang sebagai sistem yang **sepenuhnya otonom** untuk deteksi *real-time*.
---
## ๐ŸŽฏ Overview
Berbeda dengan *Phase 4* sebelumnya, folder **POSEIDON_Model** berisi artefak model untuk *Pipeline* versi terbaru yang telah mengatasi masalah latensi GFW. Model di sini mengestimasi dimensi fisik dan indikasi *fishing score* secara mandiri, menjadikannya sistem *end-to-end* yang lepas dari ketergantungan API pihak ketiga.
Selain itu, model dievaluasi menggunakan skema **Out-of-Time (OOT)** murni untuk mencegah *data leakage*, dengan acuan data historis 2023-2025 untuk mendeteksi anomali pada tahun 2026.
---
## โœจ Features
### ๐Ÿง  Autonomous Estimation & Scoring
- **Phase 3 Estimators** - Memuat model regresi (`model_length_gb.pkl`) dan klasifikasi (`model_fishing_score_xgboost.pkl`) untuk memprediksi panjang fisik kapal dan *fishing score* langsung dari *raw features* satelit.
- **Unified Pipeline Object** - Menggunakan *pipeline* berbasis `joblib` yang di dalamnya sudah merangkum *Hybrid Stacking Model* (LightGBM + XGBoost), daftar 17 fitur terbaru, dan batas kalibrasi kuartalan. Kini terbagi menjadi model **GEE** dan **GFW**.
### ๐Ÿ›‘ Multi-Tier Alert System
Model telah dikalibrasi untuk memancarkan 3 tingkat status berdasarkan distribusi kuartalan tahun sebelumnya:
- **SIAGA 1 (Prioritas Verifikasi)**: $Q_{90}$ ke atas
- **SIAGA 2 (Pengamatan Terarah)**: $Q_{75}$ hingga $Q_{90}$
- **SIAGA 3 (Pemantauan Pasif)**: Di bawah $Q_{75}$
---
## ๐Ÿ“ฆ File Structure
```text
POSEIDON_Model/
โ”œโ”€โ”€ ๐Ÿ“‚ GEE/ # Model khusus deteksi GEE
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ poseidon_models_gee.pkl # Unified Pipeline Object untuk GEE
โ”‚ โ””โ”€โ”€ ๐Ÿ“‚ isolation_forest_model.pkl # Deteksi Anomali Geospasial
โ”œโ”€โ”€ ๐Ÿ“‚ GFW/ # Model khusus deteksi GFW
โ”‚ โ””โ”€โ”€ ๐Ÿ“‚ poseidon_models_gfw.pkl # Unified Pipeline Object untuk GFW
โ”œโ”€โ”€ ๐Ÿ“‚ model_length_gb.pkl # Estimator Panjang Kapal (Phase 3)
โ”œโ”€โ”€ ๐Ÿ“‚ model_fishing_score_xgboost.pkl # Estimator Fishing Score (Phase 3)
โ””โ”€โ”€ ๐Ÿ“– README.md # Dokumentasi ini
```
---
## ๐Ÿš€ Usage (GitHub Actions / Automation)
Untuk lingkungan *Production* (seperti GitHub Actions), Anda cukup mengunduh model menggunakan `wget` dan memuatnya menggunakan `joblib`.
```bash
# Contoh pengunduhan file GFW dari Hugging Face ke runner
wget https://huggingface.co/JullMol/POSEIDON/resolve/main/POSEIDON_Model/GFW/poseidon_models_gfw.pkl
```
```python
import joblib
# Load Unified Models
models_data = joblib.load('poseidon_models_gfw.pkl')
# Akses Model dan Threshold
models_lgb = models_data['models_lgb_new']
models_xgb = models_data['models_xgb_new']
features = models_data['features_new']
thresholds_2025 = models_data['quarterly_alert_thresholds_2025_new']
# Terapkan Threshold Siaga 1/2/3
q1_q90_threshold = thresholds_2025['1']['q90']
```
---
## ๐Ÿ‘จโ€๐Ÿ’ป Contributors
Dipersembahkan oleh Tim Mahasiswa dari **Universitas Negeri Surabaya**:
- **Faishal Muflih Irfanu Tsaqib**
- **Daffa Ahmad Pangreksa**
- **Dimas Rafi Izzulhaq**
*Dibuat untuk mendukung penjagaan kedaulatan maritim dan kelestarian sumber daya laut Indonesia.* ๐Ÿ‡ฎ๐Ÿ‡ฉ