# Ml Task Matching

> 选机器学习算法/模型时的第一性原理检查器。当用户在问"哪个算法/模型最强"、"该用什么模型做 X"、 想直接照搬排行榜(benchmark/leaderboard)结论、或团队为选型争论不下时激活。 核心动作: 先刻画任务本身(样本量/噪声/数据结构), 再匹配归纳偏好(inductive bias / inductive preference), 而非寻找"全面最优"算法——NFL 定理(no free lunch)证明脱离具体问题谈优劣无意义。 也适用于: 两个模型打平时的决胜依据、评测榜单结论能否外推到自己任务的判断。 不适用于: 已选定模型后的效果诊断(用 ml-diagnosis)、纯科普问答"什么是 NFL 定理"。

- Skill: `fieldlu/ml-task-matching` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-task-matching`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-task-matching/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-task-matching

---


# ML 任务匹配 — 没有最强算法，只有匹配任务的算法

## R — 原文 (Reading)

> "脱离具体问题，空泛地谈论'什么学习算法更好'毫无意义，要谈论算法的相对优劣，必须要针对具体的学习问题；在某些问题上表现好的学习算法，在另一些问题上却可能不尽如人意。"
>
> — 周志华, 《机器学习》第1章 1.4节 "归纳偏好"

> "若对于某些问题 A 比 B 好，则必然存在另一些问题 B 比 A 好。'在某些问题上表现好的学习算法'……其归纳偏好与问题是否相配起到决定性作用。"
>
> — 周志华, 《机器学习》第1章 1.4节 (NFL 定理寓意)

---

## I — 方法论骨架 (Interpretation)

任何学习算法都在一个巨大的假设空间里搜索，而训练数据只能排除掉一部分候选——有限样本必然留下多个与数据一致的假设（版本空间不唯一）。最终选中哪个假设，靠的是算法内置的选择倾向，即"归纳偏好"：它相当于这个算法的价值观（树偏好轴对齐切分、线性模型偏好加性关系、SVM 偏好大间隔、正则化偏好稀疏）。

NFL 定理从数学上证明了：对所有可能问题取平均，任何两种算法的期望性能相同。"A 全面强于 B"在逻辑上不可能成立——A 的优势必然来自它的偏好恰好对上了某类问题的结构。

因此选型的正确顺序不是"找最强"，而是三步：
1. **刻画任务**：样本量多大？噪声多重？特征什么结构？类别平不平衡？
2. **识别候选算法的偏好**：每个算法"相信世界长什么样"？
3. **做匹配**：偏好与任务结构对上的那个算法才值得押注。

榜单和他人经验只是"别人任务分布上的结论"，外推前必须先比对任务分布是否一致。

---

## A1 — 书中的应用 (Past Application)

### 案例 1: 西瓜数据集贯穿案例——同一批瓜，三种算法三种判断
- **问题**: 如何让读者理解"模型选择没有客观答案"？作者需要一个贯穿全书的装置来横向比较不同算法。
- **方法论的使用**: 作者用同一组西瓜属性（色泽/根蒂/敲声等）贯穿多章：线性模型按属性加权组合判断、决策树按逐条规则判断、朴素贝叶斯按概率大小判断——同一批瓜在不同算法下被"好瓜/坏瓜"的依据各不相同。
- **结论**: 各算法的差异不在"谁更聪明"，而在各自归纳偏好不同；哪个判断更合理取决于真实瓜的分布与哪种偏好匹配。
- **结果**: 这个横向比较装置支撑了全书"优劣绑定任务"的主线论证（第1/3/4/7章反复回扣），也成为中文 ML 社区把这本书称作"西瓜书"的共同记忆。

### 案例 2: 骑车类比化解"NFL 宣判学习无用"误读
- **问题**: NFL 定理常被初学者误读为"既然所有算法平均一样烂，学习就无所谓了"。
- **方法论的使用**: 作者给出骑车类比：NFL 说的是"对所有目的地取平均，任何导航都一样"；但你的目的地是确定的（从南京鼓楼去新街口），此时"针对本地街道设计的路线"显然优于"全国随机路线"。同理，具体问题的分布是特定的，匹配偏好的算法就是更好的。
- **结论**: NFL 的正确用法是警示面（拒绝空谈普适最优）+ 建设面（把精力投向刻画自己的问题），而非虚无主义。
- **结果**: 该类比成为化解这一经典误读的有效装置，把讨论从"哪个算法最好"拉回到"我的问题是什么"。

### 案例 3: 平滑曲线 A vs 嵌折曲线 B——奥卡姆剃刀的两难
- **问题**: 两个假设都与训练样本一致（版本空间内多个候选），凭直觉说"更平滑/更简单的更好"可靠吗？
- **方法论的使用**: 作者构造图 1.3/1.4 正反两例：正例中平滑曲线泛化更好；反例中看似"简单"的嵌折曲线反而对应真实规律。而且"哪个更简单"本身说不清——两个西瓜假设（"光滑=好瓜"vs"敲声浊响=好瓜"）谁更简单并无平凡判据。
- **结论**: 奥卡姆剃刀不是可依赖的哲学承诺，"简单"无唯一定义且可能被反超；偏好最终要靠验证数据兑现，不能靠信条担保。
- **结果**: 这一拆解确立了"偏好必须显式化、用实验兑现"的纪律，而非默认"简单即正义"。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 用户或团队在争论"微调开源小模型 vs 直接调闭源大 API 谁更强"、"X 算法是不是 SOTA"，且双方各执一份评测证据。
2. 用户拿着公开榜单/benchmark 排名，想直接把第一名搬到自己的任务上，未比对过任务分布。
3. 两个模型在同一验证集上打平（或差异微小），用户不知上线选哪个，想掷硬币或"看谁新"。
4. 项目启动期做技术选型：用户描述了数据情况（样本量/噪声/特征类型），但没有把"问题是什么"转化为选型依据的意识。
5. 用户发现"照着论文/竞品的算法做，效果却不行"，困惑于"同样的方法为什么在我这不好使"。

### 语言信号 (用户的话里出现这些就应激活)

- "哪个模型/算法**最强**？" / "**SOTA** 是什么？我直接用它行吗？" / "which model is the best for..."
- "**排行榜**第一的那个能用吗？" / "**benchmark** 上赢了很多，为什么我这不行？" / "leaderboard"
- "这两个模型**打平了**，选哪个？" / "两个都差不多，怎么定？"
- "帮我**选型**" / "该用什么算法做 X" / "model selection"
- "为什么同样的方法**别人有效我没效**？"

### 与相邻 skill 的区分

- 与 `ml-diagnosis` 的区别: 本 skill 用于**训练之前**的选型决策（还没定模型）；ml-diagnosis 用于模型已训完但效果不佳时的系统诊断。用户问"用哪个"→ 本 skill；问"为什么不行/怎么办"→ ml-diagnosis。二者构成工作流上的先后两站（定稿口径：contrasts-with，选型前 vs 选型后）。
- 与 `ml-evaluation-design` 的区别: 那个 skill 处理"已经有候选模型后如何科学地评与比"（切数据/定尺子/定比较协议）；本 skill 处理更上游的问题——候选池本身应该怎么按任务构成、榜单结论能不能信。且本 skill 第 5 步"最小验证实验"正是把匹配结论交给 evaluation-design 兑现的接口。
- 与 `ml-theory-compass` 的区别: 当用户援引理论保证（PAC 界/VC 维）为某个候选背书时，由 theory-compass 审查该承诺的兑现条件；本 skill 只消费其裁决结果作为匹配证据之一。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **截断无效命题**
   - 把"A 算法比 B 强"这类脱离任务的重述为"A 的归纳偏好与任务 T 的结构是否匹配"。
   - 完成标准: 对话中不再出现无条件的"XX 最强/更好"表述；已向用户说明榜单/口碑结论只在原任务分布上成立。

2. **刻画任务画像**
   - 逐项确认（缺项向用户追问或查数据）：样本量 n 与特征维度 p、噪声水平（标注质量/固有随机性）、类别平衡度、特征结构（高维稀疏 vs 低维稠密/文本 vs 表格/有无空间时序结构）、错误代价是否对称、推理延迟约束。
   - 完成标准: 得到一张 ≥5 个维度的任务清单，每项有明确值或明确"未知"。

3. **识别候选算法的归纳偏好**
   - 对每个候选写出一句"它相信世界是什么样"：如决策树=轴对齐交互、线性模型=加性边际效应、SVM(RBF)=局部相似性决定类别、GBDT=可加的分段修正、预训练大模型=通用表征可迁移到本任务。
   - 完成标准: 候选列表中每个算法都有至少一条明确的偏好陈述，不允许"它就是效果好"式空话。

4. **做匹配并给出排序理由**
   - 将步骤 2 的画像逐项对照步骤 3 的偏好，指出每个候选"哪几项匹配、哪几项错配"；给出推荐及可证伪的理由。
   - 判停条件: 若两个候选在所有维度上都无明显错配差异 → 建议以"实现/维护成本、生态成熟度"作次级标准，并声明此为工程取舍而非性能预言。
   - 判停条件: 若用户拿的是榜单结论 → 先执行分布一致性比对（基准任务的数据规模/噪声/结构与本任务逐项对比）；不一致则宣布外推无效，回到步骤 2-3 重选。
   - 完成标准: 输出包含"推荐 + 匹配理由 + 明确的风险点（哪个画像维度上赌错了会失败）"。

5. **设计最小验证实验**
   - 为推荐方案设计一个小成本对照实验（留出集/交叉验证 + 任务适配的性能度量），让"匹配"接受数据检验而非停留在论证。
   - 完成标准: 给出具体的实验配置（划分方式、度量、判定阈值）；提醒用户测试集须与调参过程隔离。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 模型已经选定并训完，问题是"效果不好怎么办"——这是诊断问题，用 `ml-diagnosis`；在本 skill 里绕圈只会拖延对症处置。
- 纯概念询问："什么是 NFL 定理/归纳偏好"属于知识问答，直接解释即可，不需要走五步流程。
- 任务极度受限的场景（如嵌入式部署只允许某个固定模型库）：此时"选型自由度≈0"，本框架无用武之地，直接在约束内优化即可。

### 作者在书中警告的失败模式

- **脱离问题空谈优劣（x02 反例）**: 团队想用一个"SOTA 编码器"通吃文本分类与表格风控——两任务分布截然不同（高维稀疏 vs 低维稠密），排行榜结论只在基准分布上成立。NFL 警示的对立面恰是把"选型失败事后归因于调参不够"——错配的根源常常在选型那一刻就已埋下。
- **把 NFL 读成虚无主义**: "反正都一样，随便选"是对定理的误读。定理说的是均匀分布下的平均，你的任务是特定分布，匹配与否天差地别。
- **把奥卡姆剃刀当免检通行证（c12 两难）**: "选简单的那个"不可靠——"何谓简单"并不平凡，且平滑偏好可能被反超。偏好必须经实验兑现。

### 作者的盲点 / 时代局限 (2016 成书)

- 书中"针对每个任务从头训练 + 精心设计评估流程"的世界观在大模型时代已被部分改写：基础模型可用零样本/少样本直接解决许多任务，选型重心移向"选哪个基础模型 + 怎么写提示词/怎么做对齐"。但凡进入严肃生产（医疗/工业/科研），样本昂贵、代价敏感，"先刻画任务再匹配能力"的框架依然成立——只是"算法偏好"的清单需要扩充进"预训练分布、上下文学习能力、指令遵循偏好"等新维度。
- 全书 i.i.d. 假设贯穿，对分布漂移/域适应只有只言片语；现实中"训练分布≠线上分布"恰是选型失配的高发来源，使用本 skill 时应主动补问"未来数据的分布会和现在一致吗"。
- 缺因果视角：偏好-匹配框架只回答相关性层面的拟合，不识别混杂与反事实问题。

### 容易混淆的邻近方法论

- **"具体问题具体分析"的空话**: 本 skill 的差异在于有机制件（版本空间→偏好→匹配的三步链 + NFL 背书），产出的是任务画像表和偏好对照，不是一句态度。
- **AutoML/神经架构搜索**: 它们自动化的是"给定任务后在候选空间内的搜索"，并不替代"候选空间本身按任务设定"这一步——搜索预算再大也搜不出没放进来的偏好。

---

## 相关 skills

- depends-on: ml-evaluation-design（第 5 步最小验证实验须按其三层设计执行，匹配结论靠数据兑现）
- contrasts-with: ml-diagnosis（选型前"用哪个" vs 选型后"为什么不行"，工作流先后两站）
- composes-with: ml-methodology-router（router 的第一派发终点）, ml-theory-compass（用户援引理论保证为候选背书时接力审查）

---

## 审计信息

- **验证通过**: V1 ✓ / V2 ✓ / V3 ✓ (f01/f02/f03 三单元均过三重验证)
- **测试通过率**: 待阶段 3 测试 (详见 test-prompts.json)
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

