Spaces:
Sleeping
Sleeping
File size: 1,549 Bytes
892b85b | 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 | """Print the full model_summary block the API will emit at the end of
every detection that runs the iforest. Verifies every key the planning
doc promises is populated and well-formed.
"""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
from telecom_anomaly.core.detector import TelecomAnomalyDetector
from telecom_anomaly.core.models import TelecomConfig
CSV = (
r"C:\my_project\work\GH_Police\main project\backend"
r"\telecom_anomaly_detection\data\strictly_cleaned_data"
r"\591296805 calls (1)_strictly_cleaned.csv"
)
cfg = TelecomConfig()
det = TelecomAnomalyDetector(cfg)
det.load_data([CSV])
# Cover all three modes.
for label, kwargs in [
("Rules-only", {"use_model": False, "run_rules": True}),
("AI-only", {"use_model": True, "run_rules": False}),
("Both", {"use_model": True, "run_rules": True}),
]:
# Reset tracking between modes.
det.anomalies = []
det.rows_with_anomalies = set()
det.row_anomaly_map.clear()
det.row_anomaly_reasons.clear()
det.row_anomaly_attribution.clear()
det.subscriber_anomalies.clear()
det.detect_anomalies(**kwargs)
stats = det.get_statistics()
print(f"\n=== {label} ({kwargs}) ===")
print(f"total_anomalies_detected: {stats.total_anomalies_detected}")
print(f"anomaly_types : {stats.anomaly_types}")
print(f"model_feature_drivers : {stats.model_feature_drivers}")
print("model_summary:")
print(json.dumps(stats.model_summary, indent=2, default=str))
|