模型预测结果与期望值差异分析监控系统
在机器学习模型生产环境中,实时监控模型输出与期望值的偏差是确保模型性能稳定的关键环节。本文将构建一套基于Python的监控系统,通过具体指标和告警配置来实现对模型预测质量的持续追踪。
核心监控指标设置
首先定义三个关键指标:
- 均方误差(MSE) - 计算预测值与真实值差值平方的平均值
- 平均绝对误差(MAE) - 预测值与真实值差值绝对值的平均值
- R²决定系数 - 衡量模型拟合优度的指标
实现代码示例
import numpy as np
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import pandas as pd
class ModelMonitor:
def __init__(self):
self.metrics_history = []
def calculate_metrics(self, y_true, y_pred):
mse = mean_squared_error(y_true, y_pred)
mae = mean_absolute_error(y_true, y_pred)
r2 = r2_score(y_true, y_pred)
return {
'mse': mse,
'mae': mae,
'r2': r2,
'timestamp': pd.Timestamp.now()
}
def add_to_history(self, metrics):
self.metrics_history.append(metrics)
# 告警配置
monitor = ModelMonitor()
class AlertManager:
def __init__(self):
self.thresholds = {
'mse': 0.1,
'mae': 0.05,
'r2': 0.8
}
def check_alerts(self, current_metrics):
alerts = []
for metric, value in current_metrics.items():
if metric in self.thresholds and value > self.thresholds[metric]:
alerts.append(f"{metric} exceeded threshold: {value}")
return alerts
告警触发条件配置
当MSE超过0.1、MAE超过0.05或R²低于0.8时,系统将自动发送告警通知至Slack或邮件。
复现步骤
- 部署监控脚本到生产环境
- 设置每小时执行一次指标计算
- 配置Prometheus抓取指标并建立Grafana仪表盘
- 在Alertmanager中配置阈值告警规则

讨论