使用Scikit-learn包的ScoringMonitorLog

举报
yd_37369233 发表于 2026/09/09 23:11:24 2026/09/09
【摘要】 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 格式呈现,更便于分析。

datadata_as_pandas 中,每一行都包含以下关键列:

  • task_id_path: 从根任务到当前任务的ID路径。
  • parent_task_id_path: 从根任务到父任务的ID路径,可用于分组。
  • task_name: 任务名称(例如 fit)。
  • task_id: 当前任务的ID。
  • sequential_subtasks: 是否包含顺序子任务。
  • [score_name]: 你所指定的每一个评分指标(如 accuracy)都会成为单独的一列。

💻 如何获取和使用日志

  1. 创建并注册 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)
    
  2. 训练模型并获取日志:正常调用 fit 方法训练模型。训练完成后,通过 scoring_monitor.get_logs() 方法获取日志。

    • get_logs() 默认返回最近一次运行(most_recent)的日志。
    • 若要获取所有历史运行记录,可使用 get_logs(select='all')
  3. 分析日志数据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"]])
    

⚠️ 注意事项

  • 实验性 APIScoringMonitorScoringMonitorLog 的回调 API 目前是实验性的,在未来的版本中可能会有变动。
  • 估计器兼容性:此功能尚未对所有估计器实现,仅对部分兼容的估计器(如 LogisticRegression)有效。
  • 复合估计器ScoringMonitor 可以与 PipelineGridSearchCV 等复合估计器协同工作,为每个步骤或每个参数组合记录详细的评分轨迹。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。