Files
MCM-ICM_Toolkit/docs/algorithms/README.md
T
guzhujushi 5749e50e83 chore: 补 S 档卡片 / examples;clean.py 收尾,xfail 清零
实现收尾(Codex 代写,用户授权):
- impute_missing 的 mode 分支改为返回新表(原先就地改调用方的 DataFrame,另外四支都返回新对象)
- detect_outliers 补入参类型校验(§4.7:非法类型抛 TypeError,不静默兜底):
  接受 DataFrame / Series / list / tuple / ndarray;tuple 同时补进 is_ld_array;
  dict 不再被接受(以前靠 pd.DataFrame() 碰巧能过,见决策 33)

测试:
- 摘掉最后一条 xfail(mode 就地改)并加强断言
- 新增 3 条:非法类型抛 TypeError、元组按一维数组型处理、全 NaN 列与单元素列不抛异常
- 64 passed / 42 skipped / 0 xfailed(xfail 清零,7 条契约全部转正);ruff 0;pyright 0

文档:
- 新增 docs/algorithms/detect_outliers.md —— 第一张 S 档函数卡片(roadmap 要求约 15 张)
  除模板九节外多记三条判断:为什么不返回 Result、非数值列恒 False 的两条备选路各错在哪、
  ddof 口径与 stats.zscore 不一致(前者 1、后者 0,小样本差一成)
- 新增 examples/01_clean_and_describe.py —— 六个 data 函数的最小用法,实测跑通(exit 0)
- STATUS.md:E 节收尾、验证结果表、下一步重写(transform/standardize 的待定项)、决策 33
- CHANGELOG.md:把 [Unreleased] 里重复 7 次的 Added/Changed 小节合并成 Added/Changed/Notes;
  并修掉上轮遗留的缺陷 —— pyright 那条 bullet 的开头被吞掉,半句挂在 ruff 那条后面
2026-10-02 15:48:12 +08:00

27 lines
1.3 KiB
Markdown

# 算法卡片
S 档(自己实现的招牌算法)的**函数卡片**放这里,模板见
[`../dev/function-card-template.md`](../dev/function-card-template.md)。
计划要写的卡片(见 `../03-roadmap.md` §3.1,约 15 张):
| 卡片 | 对应函数 | 状态 |
|---|---|---|
| `detect_outliers.md` | `data.detect_outliers` | ✅ 2026-10-02 |
| `bootstrap_ci.md` | `stats.bootstrap_ci` | ⬜ |
| `monte_carlo.md` | `solve.monte_carlo` | ⬜ |
| `monte_carlo_probability.md` | `solve.monte_carlo_probability` | ⬜ |
| `monte_carlo_integral.md` | `solve.monte_carlo_integral` | ⬜ |
| `dynamic_programming.md` | `solve.dynamic_programming` | ⬜ |
| `knapsack_dp.md` | `solve.knapsack_dp` | ⬜ |
| `simulated_annealing.md` | `solve.simulated_annealing` | ⬜ |
| `local_sensitivity.md` | `solve.local_sensitivity` | ⬜ |
| `sobol_analyze.md` | `solve.sobol_analyze` | ⬜ |
| `entropy_weights.md` | `decision.entropy_weights` | ⬜ |
| `topsis.md` | `decision.topsis` | ⬜ |
| `ahp_weights.md` | `decision.ahp_weights` | ⬜ |
| `gm11_fit_predict.md` | `decision.gm11_fit_predict` | ⬜ |
> 卡片是写给自己半年后看的,不是给评审看的。
> 如果一张卡片最后只复述了 docstring,说明这个函数其实是 A 档,应该降档删卡片。