区间 — VC = 2
父节点:examples 前置知识:learning-theory ——
H、h、shattering(打散)。
假设类 ,带两个参数:
用同样的方法数一遍。(回忆一下: 当且仅当 。)
能打散 2 个点 p₁ < p₂ 吗? 对每种标注 (h(p₁), h(p₂)),给出一个能实现它的 [a,b]:
| 标注 | 一个见证性的 [a,b] | 可实现? |
|---|---|---|
(−,−) | 任意满足 b < p₁ 的 [a,b] | ✓ |
(+,−) | [p₁, p₁](即 p₁ ≤ b < p₂) | ✓ |
(−,+) | [p₂, p₂](即 p₁ < a ≤ p₂) | ✓ |
(+,+) | [p₁, p₂] | ✓ |
4 种全部可实现 → 打散了 2 个点 → VC ≥ 2。((+,−) / (−,+) 这两种标注,threshold 做不到,区间现在做到了。)
能打散 3 个点 p₁ < p₂ < p₃ 吗? 标注 (+,−,+) 要求 a ≤ p₁ ≤ b 且 a ≤ p₃ ≤ b;两者合起来给出 a ≤ p₁ < p₂ < p₃ ≤ b,这就迫使 p₂ ∈ [a,b],即 h(p₂) = +——矛盾。所以 (+,−,+) 无法实现 → 没有 3 个点能被打散 → VC < 3。故 VC = 2。
所以区间的 VC 是 2,来自数出能被打散的点数(2 个),而不是来自"它有 2 个端点"——端点数在这里只是碰巧对上了。
在 + − + 上失效(需要两条独立的带)→ 进阶到 union-of-intervals。