机器学习及 SHAP 模型解释工具更新说明|v5.7.3
概述
v5.7.3 在保留 v5.7.2 全部能力(含缺失值 MICE、双模式数据导出等)的基础上,将 「步骤 13:参数优化」 从「黑盒式固定策略」升级为 可配置、可解释、可复现、可多模型协作 的工作流:您可以在界面中直接设定搜索用的折数与评分、随机/贝叶斯尝试次数、自定义或分算法的 JSON 搜索空间;训练日志中会输出 实际使用的网格摘要、CV Top 候选、以及 调参前后在同一测试集上的对比;在勾选基线对比时,程序还会 自动导出对比表 CSV 并 弹出独立窗口 展示结果。另修复了上一版本中 「贝叶斯搜索」界面选项与内部判断不一致 导致贝叶斯分支从未生效的问题。
文末有演示视频!
一、相对 v5.7.2 的行为变化一览
accuracy,回归固定 r2 | auto 等),或 优化专用 下拉独立设置 | |
cv(由 sklearn 默认策略) | StratifiedKFold(与步骤 14 思路一致,更利于不平衡二分类等场景) | |
"贝叶斯搜索" | 已对齐 | |
| JSON 文本框 | ||
| 基线 vs 调参后 |
二、步骤 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. 按钮:填入内置 / 清空 / 保存 / 加载
| 填入内置网格 | { "算法名": { 参数: [候选] } }),并自动将模式设为 「JSON 与内置合并」。若部分算法无内置网格,会提示跳过。 |
| 清空 | |
| 保存 | hyperopt_search_space.json)。 |
| 加载 |
6. 分算法 JSON(多模型自动切换)
支持两种写法(可同时理解「全局 + 分块」):
1. 全局(所有参与训练的模型共用同一组参数键,除非键仅对某类模型有效): {"n_estimators": [50, 100], "max_depth": [4, 8]}2. 纯分算法(顶层键 全部为 界面中的 算法英文名,且每个值为对象): {"RandomForest": {...}, "XGBoost": {...}}训练 RandomForest 时只取RandomForest块;训练 XGBoost 时只取XGBoost块。若某次训练的算法在 JSON 中 没有对应块,则 该模型本次不使用自定义网格(回退内置),日志中会说明。3. 混合:顶层包含 "RandomForest": { ... }等 当前算法块,同时还有 非算法名 的键(如全局n_estimators),则训练该算法时 = 该算法块 ∪ 顶层全局键(同名时全局键覆盖块内字段)。
训练时日志会有一行 「自定义网格: …」 说明本次解析走的是分算法、全局还是回退内置。
三、训练日志与交付物(对比表)
在 开启基线对比 且 实际完成了一次搜索(网格/随机/贝叶斯成功跑完)时:
1. 日志:除原有最佳参数与 CV 分外,增加 • 本次优化配置摘要(是否与步骤 14 同步、折数、评分、尝试次数、搜索空间模式); • CV 均值 Top 5 组参数; • 调参前后测试集对比(含 CV 最优均值与最优参数)。 2. CSV 文件(写入当前 输出目录): • 文件名形如: hyperopt_compare_<算法名>_<时间戳>.csv• UTF-8 BOM,便于 Excel 直接打开。 • 含 「汇总与测试集对比」 与 「CV_Top试次」 两段表格。 3. 弹窗:主线程打开 「参数优化对比」 窗口,含只读路径、打开文件所在文件夹、两个页签(汇总表 / Top 试次)。
注意:若一次训练勾选 多个 算法且均触发对比,会 多次弹出窗口 并生成 多份 CSV(每个模型一份)。训练在后台线程执行,弹窗通过队列调度到主线程,避免界面线程安全问题。
四、步骤 12 与步骤 13 的协作说明
• 步骤 12 自定义模型参数(JSON)仍会 在构建模型时 通过 set_params应用到该算法实例上;该实例即作为 搜索起点 与 基线模型 的基础。• v5.7.3 提示文案已更新:在步骤 13 选择 「JSON 与内置合并」(或替换)时,文本框中的网格可 参与超参搜索,与 v5.7.2「自定义参数不影响参数优化」的表述不同,请以 v5.7.3 界面与本文 为准。
五、详细用户使用说明
5.1 仅使用内置网格、快速调参
1. 完成数据加载、特征与目标选择、准备数据。 2. 步骤 13:选择 网格搜索 / 随机搜索 / 贝叶斯搜索。 3. 搜索空间选 「使用内置搜索空间」。 4. 按需勾选 是否与步骤 14 同步折数与评分;若否,展开设置优化专用折数与指标。 5. 随机/贝叶斯时调整 尝试次数。 6. 步骤 16 勾选要训练的算法 → 开始训练。 7. 在 日志 中查看配置摘要、最佳参数、CV Top、若开启对比则还有测试集前后对比;需要留档时查看输出目录下的 CSV 与 弹窗。
5.2 手写或修改 JSON 搜索空间(单模型)
1. 步骤 13 模式选 「JSON 完全替换内置」 或 「JSON 与内置合并」。 2. 在文本框中写入合法 JSON:键 = 超参名,值 = 候选列表(单值也写成单元素列表)。 3. 训练 一个 模型时,可直接用全局格式;或用 分算法 仅写一块: {"YourAlgoName": { ... }}(YourAlgoName须与界面算法英文名一致)。4. 用 保存 备份到文件,下次 加载 复用。
5.3 多模型批量训练 + 每模型不同搜索空间
1. 在步骤 16 勾选多个算法。 2. 点击 填入内置网格 → 自动生成 多算法分块 JSON(模式会设为 合并)。 3. 在文本框中 分别编辑 各算法块内的列表;可选在顶层加 全局键 作用于所有带块的模型。 4. 开始训练:每个算法训练时 只解析属于自己的块;无块的算法仅用内置网格并打日志说明。 5. 若需团队共用配置,保存 JSON 到仓库或网盘,他人 加载 即可。
5.4 与步骤 14 的关系(避免混淆)
• 步骤 13:在训练 单个模型 过程中,为 选超参 而做的 内部交叉验证(及可选基线对比)。 • 步骤 14:训练完成后,对 已确定参数的模型 在训练集上做的 额外 CV 评估(用于报告均值±方差等),不改变已训练模型参数。两者可独立配置;若希望「搜参用的指标与折数」和「报告用的」一致,请保持步骤 13 中 「与步骤 14 同步」 为勾选状态。
六、依赖与兼容性提示
• Excel 打开 CSV:本版对比表使用 UTF-8 BOM;若使用其他编辑器,一般也可正常显示中文。 • 极大规模网格:网格搜索组合数随参数指数增长,请结合 随机搜索 或缩小 JSON 列表控制耗时。
七、小结
| 选项与逻辑已修复 | |
| 分算法 JSON |
版本信息:应用内版本号 5.7.3。
已关注
关注
重播 分享 赞
已关注
关注
重播 分享 赞
夜雨聆风