使用Scikit-learn包的ScoringMonitorLog
【摘要】 ScoringMonitorLog 是 Scikit-learn 1.9 版本中引入的一个实验性回调类 ScoringMonitor 所产生的日志对象。它用于记录模型在训练过程中每一步的评分指标,方便你洞察模型的性能变化。 📖 ScoringMonitorLog 的结构ScoringMonitorLog 对象包含了某一次训练运行(run)的完整日志,主要属性如下:run_id: 本次运行的...
ScoringMonitorLog 是 Scikit-learn 1.9 版本中引入的一个实验性回调类 ScoringMonitor 所产生的日志对象。它用于记录模型在训练过程中每一步的评分指标,方便你洞察模型的性能变化。
📖 ScoringMonitorLog 的结构
ScoringMonitorLog 对象包含了某一次训练运行(run)的完整日志,主要属性如下:
run_id: 本次运行的唯一标识符(UUID格式)。estimator_name: 被监控的(元)估计器的名称。timestamp: 本次运行的开始时间戳。data: 记录的核心数据,是一个字典列表。每个字典代表一个迭代步骤的记录。data_as_pandas: 与data内容相同,但以 Pandas DataFrame 格式呈现,更便于分析。
在 data 或 data_as_pandas 中,每一行都包含以下关键列:
task_id_path: 从根任务到当前任务的ID路径。parent_task_id_path: 从根任务到父任务的ID路径,可用于分组。task_name: 任务名称(例如fit)。task_id: 当前任务的ID。sequential_subtasks: 是否包含顺序子任务。[score_name]: 你所指定的每一个评分指标(如accuracy)都会成为单独的一列。
💻 如何获取和使用日志
-
创建并注册
ScoringMonitor:首先,创建一个ScoringMonitor实例并指定要监控的评分指标,然后通过估计器的set_callbacks方法将其注册。from sklearn.callback import ScoringMonitor from sklearn.linear_model import LogisticRegression from sklearn.datasets import make_classification X, y = make_classification(n_samples=1000, n_features=20, random_state=0) # 1. 创建 ScoringMonitor 实例,监控 'accuracy' 指标 scoring_monitor = ScoringMonitor(scoring="accuracy") # 2. 创建模型并注册回调 logreg = LogisticRegression(solver="lbfgs") logreg.set_callbacks(scoring_monitor) -
训练模型并获取日志:正常调用
fit方法训练模型。训练完成后,通过scoring_monitor.get_logs()方法获取日志。get_logs()默认返回最近一次运行(most_recent)的日志。- 若要获取所有历史运行记录,可使用
get_logs(select='all')。
-
分析日志数据:
get_logs()返回的就是一个ScoringMonitorLog对象。你可以像下面这样轻松地查看和分析数据:# 3. 训练模型 logreg.fit(X, y) # 4. 获取日志 (ScoringMonitorLog 对象) log = scoring_monitor.get_logs() # 以 DataFrame 形式查看特定列 print(log.data_as_pandas[["task_name", "task_id", "accuracy"]])
⚠️ 注意事项
- 实验性 API:
ScoringMonitor和ScoringMonitorLog的回调 API 目前是实验性的,在未来的版本中可能会有变动。 - 估计器兼容性:此功能尚未对所有估计器实现,仅对部分兼容的估计器(如
LogisticRegression)有效。 - 复合估计器:
ScoringMonitor可以与Pipeline和GridSearchCV等复合估计器协同工作,为每个步骤或每个参数组合记录详细的评分轨迹。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)