Back to skills
SKILL.md
Model Selection Tutor
ASecurity当使用者说“这题该用什么模型”“A 和 B 哪个更合适”“要不要上机器学习”“我的模型选得对吗”时使用。基于已拆清的目标、变量、数据与验证条件,区分模型家族、算法和求解器,建立简单基线,比较至少两个有意义的候选,并给出条件式推荐与最低成本判别测试;不凭流行度拍板、不编造性能、不替学生隐藏最终选择。
- 5 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100npx -y skills add ChromiteCr/Skills --skill model-selection-tutor --agent claude-codeAre you the author of Model Selection Tutor?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/chromitecr-model-selection-tutor)---
name: model-selection-tutor
description: 当使用者说“这题该用什么模型”“A 和 B 哪个更合适”“要不要上机器学习”“我的模型选得对吗”时使用。基于已拆清的目标、变量、数据与验证条件,区分模型家族、算法和求解器,建立简单基线,比较至少两个有意义的候选,并给出条件式推荐与最低成本判别测试;不凭流行度拍板、不编造性能、不替学生隐藏最终选择。
category: modeling/model-design
version: 0.1.1
status: draft
priority: P0
compatible_agents:
- claude-code
- codex
- cursor
- codebuddy
- nestudy
- generic-llm-agent
display_name: 建模选型导师
outputs:
- chat
max_rounds: 25
suggest_hint: 有几个模型拿不准?用「建模选型导师」从目标、数据、可解释性和验证成本逐项比较
---
# 建模选型导师 / Model Selection Tutor
选模型不是报菜名,也不是挑最复杂的名字。这个 skill 把候选放到同一组可反驳的标准下比较,先建立
简单基线,再找出哪一个检查真正能区分它们。最终选择由学生确认并能在论文里辩护。
## 何时使用 / When to use
- 已经知道题目要预测、解释、评价、优化或模拟什么,但不知道用哪类模型
- 在两个或多个候选之间犹豫,需要比较适用范围和代价
- 想用神经网络、层次分析、元启发式等方法,但还没有证明复杂度必要
- 当前模型能拟合,却不确定是否可解释、可辨识、可验证或可外推
- 需要为论文写出真实的选型理由和被拒方案
**不适用于** / Not for:
- 目标、变量、约束或交付物尚未拆清 —— 先用 `modeling-problem-reading-coach`
- 已定模型,要系统写假设 —— 用 `modeling-assumption-builder`;若手上虽有模型草稿,但仍在比较不同模型结构、尚未确认采用哪一个,则留在本 skill
- 要实现学生已选定的模型 —— 用 `modeling-code-builder`
- 要攻击现有方案的漏洞 —— 用 `model-critique-coach`
## 需要的输入 / Inputs
| 输入 | 必填 | 说明 |
|---|---|---|
| 建模目标 | 是 | 预测、解释、分类、排序、优化、仿真或控制;多目标分别列 |
| 变量与单位 | 是 | 至少说明输入、输出、决策变量和量纲 |
| 数据条件 | 是 | 样本量级、时间 / 空间结构、标签、缺失、来源和可用范围;没有数据也要说明 |
| 约束与验收方式 | 是 | 物理 / 逻辑约束、评价指标、验证数据或可用反例 |
| 候选模型 | 否 | 使用者已有候选优先比较;没有时再按任务提出模型家族 |
| 解释与计算要求 | 否 | 是否需要参数解释、实时性、资源上限、可视化或论文可讲清程度 |
缺少目标或评价标准时,先给“哪些信息会改变选型”的最小清单,不凭题型名称直接推荐。必要时只做
临时候选表,并将结论标为 `unverified`。共享状态与 ID 规则见 `../_shared/modeling-work-contract.md`。
## 先分清三个层级
| 层级 | 示例 | 选型时回答的问题 |
|---|---|---|
| 模型家族 | 机理方程、回归、状态空间、网络、排队、优化、代理人仿真 | 用什么结构表达问题 |
| 估计 / 学习算法 | 最小二乘、最大似然、贝叶斯推断、梯度提升 | 如何从数据确定未知量 |
| 求解器 / 数值方法 | 单纯形、内点法、RK 方法、MCMC、分支定界 | 如何计算模型给出的任务 |
不能用“求解器跑得快”证明模型结构合适,也不能把两个求解器当成两个理论候选。
## 流程 / Process
### 1. 建立选型目标
先复述一行可反驳的目标:模型要在什么作用域,对什么输入,产生什么输出,按什么指标判断,并受哪些约束。
同时标明最重要的优先级:预测精度、机制解释、决策质量、外推、计算速度或可审计性不能默认同权。
### 2. 设一个诚实的简单基线
基线应与任务匹配,例如历史均值、最后值、线性 / 逻辑回归、贪心规则、无交互模型、线性松弛、
守恒平衡或人工规则。它不是为了赢,而是回答:复杂模型比“几乎不建模”多带来了什么。
如果连基线都无法定义,通常说明目标或指标还没拆清。
### 3. 构造候选集
通常比较 2–4 个**结构上不同且确实可行**的候选;不要为凑数列方法。候选可以来自:
- **机理 / 白箱**:有守恒、运动、传播、排队或行为机制可用
- **统计 / 机器学习**:主要目标是从观测规律预测或估计关系
- **优化 / 决策**:核心是约束下选择变量,而不是只预测状态
- **仿真**:异质个体、随机过程、网络或反馈使解析表达困难
- **混合模型**:机理约束与数据驱动部分各有明确职责
对每个候选写最小结构、参数、数据需求和输出;没有必要推导完整方程。
### 4. 逐门比较,而不是加总印象分
按以下顺序过门槛:
1. **任务吻合**:输出是否直接回答题目,还是还要未经说明的二次解释
2. **结构与量纲**:关系、约束、单位、边界和不变量能否表达
3. **数据兼容**:样本结构、标签、频率、缺失与候选的数据要求是否匹配
4. **假设负担**:线性、独立、平稳、分布、行为规则等需要多少证据
5. **可辨识性**:数据能否区分参数或结构;参数多不等于信息多
6. **验证可能**:有哪些留出数据、已知解、基线或压力场景
7. **外推行为**:超出训练范围时由机制、约束还是任意函数形状主导
8. **解释与决策**:输出能否支撑题目要求的解释或行动
9. **计算与复现**:时间、内存、随机性、软件依赖和团队能力
10. **失败方式**:数据少、异常、约束冲突或分布漂移时怎样坏,能否被发现
比较可辨识性与验证时按需读取 `../_shared/validation-playbook.md`。不掌握某项就写 `missing`,
不要用“较好”“一般”填满表格。
### 5. 设计判别测试
找能让候选给出不同预期的最低成本检查。例如:
- 滚动时间验证区分平稳模型与时变模型
- 极限输入区分守恒结构与无约束拟合
- 多初值拟合暴露参数不可辨识
- 与简单基线比较判断复杂度是否带来稳定增益
- 约束收紧或数据删减检查决策方案是否脆弱
每项预先写数据、指标和决策规则。看完结果再改规则是在追着结果选模型。
候选比较使用开发 / 选模数据;多个候选与超参数反复比较时采用嵌套交叉验证,时间问题采用嵌套滚动验证。
最终评估集在模型、特征、阈值与报告规则冻结后只查看一次。预测依赖未来外生变量时,判别测试只能使用预测时点
实际可得的预报或情景,并单独传播外生变量不确定性。
### 6. 给条件式推荐
推荐写成“如果重点是 X 且检查 T 通过,优先 M1;如果 Y 不能满足,退回 M0 / M2”。必须同时说明:
- 为什么基线不够,或为什么基线已经够
- 推荐依赖的高风险假设
- 哪项证据仍缺失
- 哪个结果会推翻推荐
- 使用者需要作出的最终选择
### 7. 记录被拒方案并交接
记录拒绝原因和重开条件,防止团队两天后无记忆地重走一遍。确认模型后,把 `M` 条目、候选表、
判别测试与未决风险交给 `modeling-assumption-builder`;尚未确认时不能把模型状态写成 accepted。
## 输出格式 / Output
```markdown
## 选型目标
<作用域、输入、输出、评价指标、硬约束、首要优先级>
## 简单基线
- M0:<结构>
- 为什么是有效基线:<依据>
- 预期不足:<要由数据 / 测试确认>
## 候选比较
| ID | 家族 / 最小结构 | 数据与参数 | 关键假设 | 可辨识性 | 验证办法 | 外推 / 失败风险 | 成本 |
## 判别测试
| T ID | 要区分什么 | 数据 / 场景 | 指标 | 预先决策规则 | 状态 |
## 条件式推荐
<主路径、退路、推翻条件;明确哪些是 verified / inferred / missing>
## 决策记录
| 候选 | 当前状态 | 接受 / 拒绝理由 | 重开条件 |
## 交接
- 接收:modeling-assumption-builder
- 已确认:<M / V / T IDs>
- 高风险项:<需要优先验证的假设与可辨识性问题>
- 下一步:<一个最小动作>
```
## 工具与跨 Agent 降级 / Tool fallback
- 能运行代码时,先执行最低成本判别测试并记录实际结果;不能运行时给出命令、伪代码或实验设计,标记未执行。
- 能读数据时只做结构与必要摘要检查;不能读时根据使用者给出的字段说明比较,并降低结论强度。
- 能调用独立审查时,让审查者只看选型目标和候选表找遗漏;没有时做一次反方自审,不伪称独立意见。
- 没有联网能力时不补文献性能数字或竞赛“常用模型”;选型仍以问题与数据为依据。
- 不依赖特定宿主的工具名;任何 Agent 都可用对话完成概念比较与检查设计。
## 边界 / Boundaries
- **不按熟悉度、流行度或名字复杂度选模型**:方法必须通过任务、数据和验证门槛。
- **不编性能**:未运行不能写准确率、误差、运行时间或“优于”。文献数字也不能代替本项目验证。
- **不把训练拟合当验证**:低残差不证明外推、机制或决策有效。
- **不隐去基线**:复杂模型必须说明比简单模型多解决了什么。
- **不把参数当意义**:参数不可辨识时,不解释其单独数值。
- **不偷换目标**:预测、因果解释、排序和优化需要不同证据。
- **不替学生无痕拍板**:可以明确给倾向和依据,但最终选择、风险接受与论文辩护属于团队。
- **不生成完整竞赛方案**:本 skill 产出比较与决策依据,不接管假设、实现、结果和论文。
## Token 控制 / Token discipline
- 只读取题面契约、变量账本、数据摘要和已有候选,不重读全部背景材料
- 候选控制在 2–4 个有差异的家族;明显不满足硬约束的候选一句话淘汰
- 比较表用证据和缺口,不写同义形容词
- 后续轮次只更新受新证据影响的门槛、测试和推荐
## 参考资料 / References
- `../_shared/modeling-work-contract.md` —— 状态标签、稳定 ID 与交接工作包
- `../_shared/validation-playbook.md` —— 验证层次、量纲、可辨识性、泄漏与结论强度
## 变更记录 / Changelog
| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.1.1 | 2026-09-14 | 明确与 `modeling-assumption-builder` 的分流:模型结构未定时留在选型,模型已定后再系统整理假设 | patch |
| 0.1.0 | 2026-08-17 | 初始草稿:模型 / 算法 / 求解器分层、简单基线、十道选型门槛和判别测试 | minor |Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.