abcj / ai /risk_scoring.py
theghostcmd's picture
Upload 10 files
758edb3 verified
Raw
History Blame Contribute Delete
766 Bytes
class RiskScorer:
def __init__(self, rule_weight=0.6, ai_weight=0.4):
self.rule_weight = rule_weight
self.ai_weight = ai_weight
def compute_risk(self, rule_threats, ai_anomaly_score):
if rule_threats:
max_rule_risk = max(score for _, score in rule_threats) / 100.0
else:
max_rule_risk = 0.0
combined = self.rule_weight * max_rule_risk + self.ai_weight * ai_anomaly_score
return min(100, int(combined * 100))
def threat_level(self, risk_score):
if risk_score >= 80:
return "CRITICAL"
elif risk_score >= 60:
return "HIGH"
elif risk_score >= 30:
return "MEDIUM"
else:
return "LOW"