乐于分享
好东西不私藏

机器学习及 SHAP 模型解释工具更新说明|v5.7.3

机器学习及 SHAP 模型解释工具更新说明|v5.7.3

机器学习及 SHAP 模型解释工具更新说明|v5.7.3

概述

v5.7.3 在保留 v5.7.2 全部能力(含缺失值 MICE、双模式数据导出等)的基础上,将 「步骤 13:参数优化」 从「黑盒式固定策略」升级为 可配置、可解释、可复现、可多模型协作 的工作流:您可以在界面中直接设定搜索用的折数与评分、随机/贝叶斯尝试次数、自定义或分算法的 JSON 搜索空间;训练日志中会输出 实际使用的网格摘要CV Top 候选、以及 调参前后在同一测试集上的对比;在勾选基线对比时,程序还会 自动导出对比表 CSV 并 弹出独立窗口 展示结果。另修复了上一版本中 「贝叶斯搜索」界面选项与内部判断不一致 导致贝叶斯分支从未生效的问题。

文末有演示视频!


一、相对 v5.7.2 的行为变化一览

维度
v5.7.2
v5.7.3
优化用交叉验证折数
固定为 3 折
默认可与 步骤 14 同步;也可 单独指定(2~20 折)
优化用评分指标
分类固定 accuracy,回归固定 r2
与步骤 14 同源可配(含 auto 等),或 优化专用 下拉独立设置
随机搜索迭代次数
固定 20
界面 3~200 可调
贝叶斯搜索迭代次数
固定 30
与随机搜索共用 「尝试次数」 设置
分类任务 CV 划分
传入整数 cv(由 sklearn 默认策略)
显式 分层 StratifiedKFold(与步骤 14 思路一致,更利于不平衡二分类等场景)
贝叶斯选项
界面为「贝叶斯搜索 ⭐智能」,代码判断 "贝叶斯搜索"
已对齐
,贝叶斯搜索可正常执行
自定义搜索空间
无界面编辑;内置网格对用户不可见
JSON 文本框
 + 内置/替换/合并 三种模式 + 填入内置 / 清空 / 保存 / 加载
多模型 + 自定义网格
同一内置网格逻辑;无分模型语义
支持 分算法 JSON,训练时 按当前算法名自动取块
调参效果感知
仅日志中最佳参数与 CV 分
基线 vs 调参后
 测试集指标对比、Top 5 CV 候选CSV 导出弹窗表格

二、步骤 13 界面新增与含义(功能更新)

1. 优化后与基线对比

  • • 「优化后与『当前默认/自定义参数』对比(同一测试集)」(默认勾选)
    • • 基线:在搜索开始前,用步骤 12 中 默认参数 + 已填自定义 JSON 参数 在训练集上拟合,再在 同一划分得到的测试集 上算指标。
    • • 调参后:搜索结束且模型已在全训练集上拟合后,再次在 同一测试集 上评估。
    • • 日志与弹窗中会给出 分类:测试准确率、F1 的基线 → 调参后及 差值回归:测试 R²、RMSE 及差值。
  • • 取消勾选则不做基线拟合与对比(仍可正常搜索,但无对比表导出/弹窗链路)。

2. 优化过程是否沿用步骤 14 的折数与评分

  • • 勾选「优化过程使用步骤 14 的折数与评分指标」(默认):网格/随机/贝叶斯内部的 GridSearchCV / RandomizedSearchCV / BayesSearchCV 使用与 步骤 14 相同的 K 折 与 评分(含 auto 在二分类时走 roc_auc 等逻辑)。
  • • 取消勾选:展开 「优化专用 K 折」(2~20)与 「优化评分」 下拉,仅作用于 参数优化,不改变步骤 14 事后评估模型的行为。

3. 随机 / 贝叶斯尝试次数

  • • 「随机/贝叶斯 尝试次数」(默认 20,范围 3~200):仅影响 随机搜索 与 贝叶斯搜索 的 n_iter
  • • 网格搜索仍会枚举 全部参数组合,不受此项限制(组合过多时请注意耗时)。

4. 搜索空间模式与 JSON 文本框

  • • 使用内置搜索空间:忽略文本框中的 JSON,仅使用程序内置网格(与 v5.7.2 语义接近,但折数/评分/迭代等仍按新版可配)。
  • • JSON 完全替换内置:以文本框解析出的 参数网格 完全替代该算法的内置网格(需合法 JSON 对象,键为参数名,值为 候选列表)。
  • • JSON 与内置合并:在内置网格上,用 JSON 中出现的同名键 覆盖 对应参数的候选集合。

贝叶斯搜索说明:贝叶斯仍使用程序内置 连续搜索空间(skopt);文本框中的离散 JSON 不参与贝叶斯空间构造;若选择了非「使用内置」模式,日志中会提示 JSON 对贝叶斯不生效。

5. 按钮:填入内置 / 清空 / 保存 / 加载

按钮
作用
填入内置网格
根据 当前在步骤 16 勾选的算法,为 每个有内置网格的算法 生成 分算法 JSON{ "算法名": { 参数: [候选] } }),并自动将模式设为 「JSON 与内置合并」。若部分算法无内置网格,会提示跳过。
清空
清空文本框。
保存
将文本框内容 校验为合法 JSON 对象 后,保存为 UTF-8 格式化文件(默认从 输出目录 打开保存对话框,默认文件名 hyperopt_search_space.json)。
加载
从文件读取 JSON 对象,格式化后 替换 文本框内容。

6. 分算法 JSON(多模型自动切换)

支持两种写法(可同时理解「全局 + 分块」):

  1. 1. 全局(所有参与训练的模型共用同一组参数键,除非键仅对某类模型有效):{"n_estimators": [50, 100], "max_depth": [4, 8]}
  2. 2. 纯分算法(顶层键 全部为 界面中的 算法英文名,且每个值为对象):{"RandomForest": {...}, "XGBoost": {...}}训练 RandomForest 时只取 RandomForest 块;训练 XGBoost 时只取 XGBoost 块。若某次训练的算法在 JSON 中 没有对应块,则 该模型本次不使用自定义网格(回退内置),日志中会说明。
  3. 3. 混合:顶层包含 "RandomForest": { ... } 等 当前算法块,同时还有 非算法名 的键(如全局 n_estimators),则训练该算法时 = 该算法块 ∪ 顶层全局键(同名时全局键覆盖块内字段)。

训练时日志会有一行 「自定义网格: …」 说明本次解析走的是分算法、全局还是回退内置。


三、训练日志与交付物(对比表)

在 开启基线对比 且 实际完成了一次搜索(网格/随机/贝叶斯成功跑完)时:

  1. 1. 日志:除原有最佳参数与 CV 分外,增加
    • • 本次优化配置摘要(是否与步骤 14 同步、折数、评分、尝试次数、搜索空间模式);
    • • CV 均值 Top 5 组参数;
    • • 调参前后测试集对比(含 CV 最优均值与最优参数)。
  2. 2. CSV 文件(写入当前 输出目录):
    • • 文件名形如:hyperopt_compare_<算法名>_<时间戳>.csv
    • • UTF-8 BOM,便于 Excel 直接打开。
    • • 含 「汇总与测试集对比」 与 「CV_Top试次」 两段表格。
  3. 3. 弹窗:主线程打开 「参数优化对比」 窗口,含只读路径、打开文件所在文件夹、两个页签(汇总表 / Top 试次)。

注意:若一次训练勾选 多个 算法且均触发对比,会 多次弹出窗口 并生成 多份 CSV(每个模型一份)。训练在后台线程执行,弹窗通过队列调度到主线程,避免界面线程安全问题。


四、步骤 12 与步骤 13 的协作说明

  • • 步骤 12 自定义模型参数(JSON)仍会 在构建模型时 通过 set_params 应用到该算法实例上;该实例即作为 搜索起点 与 基线模型 的基础。
  • • v5.7.3 提示文案已更新:在步骤 13 选择 「JSON 与内置合并」(或替换)时,文本框中的网格可 参与超参搜索,与 v5.7.2「自定义参数不影响参数优化」的表述不同,请以 v5.7.3 界面与本文 为准。

五、详细用户使用说明

5.1 仅使用内置网格、快速调参

  1. 1. 完成数据加载、特征与目标选择、准备数据。
  2. 2. 步骤 13:选择 网格搜索 / 随机搜索 / 贝叶斯搜索
  3. 3. 搜索空间选 「使用内置搜索空间」
  4. 4. 按需勾选 是否与步骤 14 同步折数与评分;若否,展开设置优化专用折数与指标。
  5. 5. 随机/贝叶斯时调整 尝试次数
  6. 6. 步骤 16 勾选要训练的算法 → 开始训练
  7. 7. 在 日志 中查看配置摘要、最佳参数、CV Top、若开启对比则还有测试集前后对比;需要留档时查看输出目录下的 CSV 与 弹窗

5.2 手写或修改 JSON 搜索空间(单模型)

  1. 1. 步骤 13 模式选 「JSON 完全替换内置」 或 「JSON 与内置合并」
  2. 2. 在文本框中写入合法 JSON:键 = 超参名,值 = 候选列表(单值也写成单元素列表)。
  3. 3. 训练 一个 模型时,可直接用全局格式;或用 分算法 仅写一块:{"YourAlgoName": { ... }}YourAlgoName 须与界面算法英文名一致)。
  4. 4. 用 保存 备份到文件,下次 加载 复用。

5.3 多模型批量训练 + 每模型不同搜索空间

  1. 1. 在步骤 16 勾选多个算法
  2. 2. 点击 填入内置网格 → 自动生成 多算法分块 JSON(模式会设为 合并)。
  3. 3. 在文本框中 分别编辑 各算法块内的列表;可选在顶层加 全局键 作用于所有带块的模型。
  4. 4. 开始训练:每个算法训练时 只解析属于自己的块;无块的算法仅用内置网格并打日志说明。
  5. 5. 若需团队共用配置,保存 JSON 到仓库或网盘,他人 加载 即可。

5.4 与步骤 14 的关系(避免混淆)

  • • 步骤 13:在训练 单个模型 过程中,为 选超参 而做的 内部交叉验证(及可选基线对比)。
  • • 步骤 14:训练完成后,对 已确定参数的模型 在训练集上做的 额外 CV 评估(用于报告均值±方差等),不改变已训练模型参数。两者可独立配置;若希望「搜参用的指标与折数」和「报告用的」一致,请保持步骤 13 中 「与步骤 14 同步」 为勾选状态。

六、依赖与兼容性提示

  • • Excel 打开 CSV:本版对比表使用 UTF-8 BOM;若使用其他编辑器,一般也可正常显示中文。
  • • 极大规模网格:网格搜索组合数随参数指数增长,请结合 随机搜索 或缩小 JSON 列表控制耗时。

七、小结

升级动机
v5.7.3 提供的价值
看不见搜了什么
日志输出网格摘要、Top 候选、配置行
不知道有没有变好
同测试集 基线 vs 调参后 + CSV + 弹窗
贝叶斯点了没用
选项与逻辑已修复
多模型维护多份配置
分算法 JSON
 + 保存/加载 + 一键填入多算法内置

版本信息:应用内版本号 5.7.3

已关注
关注
重播 分享
v5.37.3新增功能演示
已关注
关注
重播 分享
早期较全功能演示