Spaces:
Sleeping
Sleeping
File size: 1,498 Bytes
c9875bd | 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 | """
Configuration settings for the telecom anomaly detection system
"""
import os
from pathlib import Path
# Base paths
BASE_DIR = Path(__file__).parent.parent
DATA_DIR = BASE_DIR / 'data'
INPUT_DIR = DATA_DIR / 'input'
OUTPUT_DIR = DATA_DIR / 'output'
SAVE_PDF_DIR = DATA_DIR / 'save_pdf'
LOG_DIR = BASE_DIR / 'logs'
# Logging configuration
LOGGING_CONFIG = {
'level': 'INFO',
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
'log_file': LOG_DIR / 'telecom_anomaly_detection.log'
}
# Default detection thresholds (can be overridden by config file)
DEFAULT_THRESHOLDS = {
'short_call_threshold': 3.0,
'long_call_threshold': 5400.0,
'extreme_call_threshold': 10800.0,
'max_calls_per_hour': 60,
'max_calls_per_day': 300,
'max_calls_per_minute': 10,
'max_sms_per_hour': 100,
'max_sms_per_minute': 20,
'max_location_change_speed': 1000.0,
'location_cluster_radius': 10.0,
'call_ratio_outgoing_incoming': 20.0,
'unique_contacts_per_day': 100,
'z_score_threshold': 4.0,
'iqr_multiplier': 2.0,
'night_hours_start': 23,
'night_hours_end': 5,
'min_samples_for_pattern': 20,
'batch_size': 10000
}
# Service numbers to ignore
SERVICE_NUMBERS = [
'MTN', 'MOBILEMONEY', 'MTN-DATA', 'MTNXTRATIME', 'MTN-JUST4U',
'EVD', '5040', '1506', '431', '1326', '1349', '438840',
'54211', '435942', '5381060', '783273271', '141', '402',
'TWO SURE LP', 'DRMBAWUMIA', 'MYMTN 2.0', 'EOCO', 'DREAMTRAVEL'
] |