MCM520 ← 资料站首页 预测 Wordle 结果(MCM 2023 C)范文二:回归预测、验证与难度分类 打开交互阅读器 →

预测 Wordle 结果(MCM 2023 C)范文二:回归预测、验证与难度分类

摘要

在范文一建立"属性→潜在难度→得分分布"底座之后,本文转向赛题的核心预测任务:对任一未来单词,预测其得分分布(1–6 与 X 各档百分比),并给出置信度;同时把单词按难度分为 Easy / Moderate / Hard 三档,刻画各档属性画像。我们以 360 个单词的练习数据为训练样本,对失败率与平均猜词次数分别建立多元线性回归模型(输入为六项语言学特征),并以留出测试集与五折交叉验证评估外样本准确性。结果显示:失败率回归的决定系数 R2=0.9516R^2=0.9516,平均猜词回归 R2=0.9575R^2=0.9575;测试集平均绝对误差仅 0.0052(约半个百分点),五折交叉验证 MAE 0.0068,表明模型稳健、无显著过拟合。难度三分类(阈值由潜在难度 0.40/0.65 映射为失败率 0.13/0.205)在 360 词上的分类准确率达 0.9194,得到 Easy 43 词、Moderate 236 词、Hard 81 词的分布。最后,我们以赛题指定的示例词 EERIE 给出完整预测实例:潜在难度 0.575(Moderate),预测失败率 0.183、平均猜词 3.920 次,得分分布以 4 次猜中为主峰(40.57%),并讨论模型不确定性来源。

1 问题重述

赛题要求建立模型,使"对于未来日期的给定未来解决方案单词,能够预测报告结果的分布",即预测未来日期(1,2,3,4,5,6,X)对应的百分比;并要求"开发一个按难度对解决方案单词分类的模型,识别与每个分类关联的给定词的属性",同时以 EERIE 一词为例给出具体预测并说明置信度。本文即回答这三件事:先给出可计算的预测方程,再严格验证其外样本表现,最后落到难度分级与实例。

2 预测模型:多元线性回归

记单词的六项特征向量为 x=(1,ffreq,frep,fvowel,frare,fstart,fbigram)⊤\mathbf{x}=(1, f_{\text{freq}}, f_{\text{rep}}, f_{\text{vowel}}, f_{\text{rare}}, f_{\text{start}}, f_{\text{bigram}})^{\top},我们对两个目标分别拟合线性模型:

y^=β⊤x,β=(X⊤X)−1X⊤y\hat y = \boldsymbol\beta^{\top}\mathbf{x},\qquad \boldsymbol\beta = (\mathbf{X}^{\top}\mathbf{X})^{-1}\mathbf{X}^{\top}\mathbf{y}

其中 X\mathbf{X} 为 360×7 设计矩阵,y\mathbf{y} 取"失败率"或"平均猜词次数"。系数通过正规方程(高斯消元求解,纯标准库实现)得到。失败率模型的系数为:截距 0.2665,平均字母频率 −0.0882,重复字母 +0.0481,元音占比 −0.0078,罕见字母 +0.0821,首字母常见度 −0.0372,常见词形 −0.0573。可以看出,罕见字母的系数符号为正且绝对值最大(+0.0821),与范文一相关性分析一致;元音占比系数接近 0(−0.0078),说明在控制了其它特征后,元音本身对失败率的边际贡献很弱——这反映了特征间的多重共线性:元音多与"常见词形/常见字母"高度相关,其独立效应被稀释。

直观展示上述失败率回归系数:罕见字母(红)正向、平均字母频率(绿)负向的权重最大,元音占比的系数几乎为零,与模型解释相符。

图2 直观展示上述失败率回归系数:罕见字母(红)正向、平均字母频率(绿)负向的权重最大,元音占比的系数几乎为零,与模型解释相符。

直观展示上述失败率回归系数:罕见字母(红)正向、平均字母频率(绿)负向的权重最大,元音占比的系数几乎为零,与模型解释相符。

图1 以"预测失败率 vs 实际失败率"散点检验拟合优度:点紧密贴合对角线,直观说明回归对训练样本的解释力很强。

3 模型验证:留出测试与交叉验证

高 R2R^2 仅说明训练内拟合好,不足以证明外样本可靠性。我们采用两套独立验证:

  • 留出测试:按比例(约 1/5,72 词)随机留出作测试集,用其余样本重估系数后在测试集上计算 MAE。结果为 0.0052,即平均每个单词的失败率预测误差不到 0.6 个百分点。
  • 五折交叉验证:将数据均分五份,轮流以四份训练、一份测试,重复五次取 MAE 均值,得 0.0068。

两者接近且都很小,说明模型没有过拟合、对未见过单词的预测稳定。这与范文一热力图中"常见词形相关性最强"相互印证:正因为难度主要由少数强信号特征驱动,线性模型已能抓住主要规律。在度量选择上,我们优先报告 MAE 而非 R2R^2 作为外样本准则,是因为 R2R^2 对异常值不敏感、容易掩盖系统偏差,而 MAE 直接刻画"平均每个单词的失败率预测差几个百分点",对业务更直观;残差分析中未见随预测值增大的喇叭形扩散,也佐证了线性假设与同方差前提基本成立。

为测试集上"预测 vs 实际"散点,点群沿对角线分布,进一步确认外样本预测可靠。

图3 为测试集上"预测 vs 实际"散点,点群沿对角线分布,进一步确认外样本预测可靠。

为测试集上"预测 vs 实际"散点,点群沿对角线分布,进一步确认外样本预测可靠。

图4 给出回归残差的分布:残差以零为中心、范围约 ±0.03,无明显结构偏倚,满足线性回归的同方差假设,也说明响应模型中的观测噪声设定合理。

4 难度分类与准确性

赛题要求按难度对单词分类。我们采用两层映射:真实类由潜在难度 dd 划分(Easy: d<0.40d<0.40;Moderate: 0.40≤d<0.650.40\le d<0.65;Hard: d≥0.65d\ge0.65);预测类则由回归预测的失败率经阈值划分(失败率 0.13 与 0.205 恰为 d=0.40,0.65d=0.40,0.65 经响应模型 pX=0.01+0.30dp_X=0.01+0.30d 的对应值)。由于预测失败率与真实失败率高度一致(R2=0.9516R^2=0.9516),预测类与真实类的吻合度很高。

给出三档单词数量:Easy 43 词、Moderate 236 词、Hard 81 词。多数单词居于 Moderate 档,符合 Wordle 词表"适中偏难"的设计意图;Hard 档虽少但稳定存在,是赛题关注的重点群体。

图5 给出三档单词数量:Easy 43 词、Moderate 236 词、Hard 81 词。多数单词居于 Moderate 档,符合 Wordle 词表"适中偏难"的设计意图;Hard 档虽少但稳定存在,是赛题关注的重点群体。

在 360 个词上,预测类与真实类的分类准确率达 0.9194。这一较高准确率来自属性与难度的强关联,也说明我们的难度阈值设定合理。需要指出,分类误差主要来自 Moderate 与 Hard 边界附近的词(潜在难度接近 0.65),其失败率本就接近阈值,属可接受的模糊地带。

5 EERIE 预测实例

赛题明确要求"以 2023 年 3 月 1 日 EERIE 一词为例给出具体预测"。我们将 EERIE 的六项特征代入难度与响应模型,得到:

  • 潜在难度 d=0.575d=0.575 → 判定为 Moderate(中等难度);
  • 预测失败率 pX=0.183p_X=0.183(约 18.3% 玩家六次内未解出);
  • 平均猜词次数 μ=3.920\mu=3.920;
  • 得分分布预测:1 次 0.05%、2 次 2.29%、3 次 21.04%、4 次 40.57%、5 次 16.40%、6 次 1.39%、X 18.26%。

即模型认为 EERIE 以"4 次猜中"为主峰,并有约一成八的失败率,属于中等偏有挑战的单词。

为增强可解释性,我们对 EERIE 做特征逐项核算:字母 e 出现三次(语频 12.7%,高频)、r 一次(6.0%)、i 一次(7.0%),平均字母频率 (12.7×3+6.0+7.0)/5=10.22(12.7\times3+6.0+7.0)/5=10.22,归一后 ffreq=0.805f_{\text{freq}}=0.805;含重复字母 e,故 frep=1f_{\text{rep}}=1;元音 e/e/i/e 共 4 个,fvowel=0.8f_{\text{vowel}}=0.8;无罕见字母,frare=0f_{\text{rare}}=0;以 e 开头(属常见首字母),fstart=1f_{\text{start}}=1;双字母 ee/er/ri/ie 中 er 较常见,取 fbigram≈0.5f_{\text{bigram}}\approx0.5。代入难度公式得 d=σ(0.15+1.4×0.195+0.7×1+1.3×0−0.5×(0.4)2/0.16−0.6×1−0.8×0.5)=σ(0.623)=0.575d=\sigma(0.15+1.4\times0.195+0.7\times1+1.3\times0-0.5\times(0.4)^2/0.16-0.6\times1-0.8\times0.5)=\sigma(0.623)=0.575。可见 EERIE 虽含高频字母与常见开头,但重复字母 e 与偏高元音占比共同把它推入中等难度,这正是属性间相互抵消的生动例证,也说明单看某一个特征会误导、必须联合建模。

汇总子模型 B 的关键性能:失败率与平均猜词回归的 <span class=R2R^2 均优于 0.95,测试与交叉验证 MAE 均约 0.006,分类准确率 0.9194,样本量 360。这些指标共同支撑了 EERIE 预测的置信度——因为模型在全体样本上外样本误差很小,对单个单词的点预测同样可信。需要坦率说明的不确定性:其一,本练习数据为确定性合成数据,真实 EERIE 的难度需以其实际语言特征代入同一模型方能得到官方意义上的数值;其二,边界附近单词的分类存在固有模糊性;其三,线性假设忽略了可能的交互效应(如罕见字母与重复字母的协同)。">

图8 汇总子模型 B 的关键性能:失败率与平均猜词回归的 R2R^2 均优于 0.95,测试与交叉验证 MAE 均约 0.006,分类准确率 0.9194,样本量 360。这些指标共同支撑了 EERIE 预测的置信度——因为模型在全体样本上外样本误差很小,对单个单词的点预测同样可信。需要坦率说明的不确定性:其一,本练习数据为确定性合成数据,真实 EERIE 的难度需以其实际语言特征代入同一模型方能得到官方意义上的数值;其二,边界附近单词的分类存在固有模糊性;其三,线性假设忽略了可能的交互效应(如罕见字母与重复字母的协同)。

6 最难与最易单词画像

为刻画难度两极的属性特征,我们列出难度最高与最低的 15 个单词。

显示难度最高的 15 个词,以 jazzy(0.947)、known(0.911)、pygmy(0.868)、klutz(0.856)为代表。它们普遍含重复辅音(ss、ck、zz)或罕见字母(j、z、q、x、y),印证了"重复字母 + 罕见字母"的难度主因。其中 jazzy 含双 z 且以罕见字母 j 开头,几乎集齐所有困难信号,故登顶最难。

图6 显示难度最高的 15 个词,以 jazzy(0.947)、known(0.911)、pygmy(0.868)、klutz(0.856)为代表。它们普遍含重复辅音(ss、ck、zz)或罕见字母(j、z、q、x、y),印证了"重复字母 + 罕见字母"的难度主因。其中 jazzy 含双 z 且以罕见字母 j 开头,几乎集齐所有困难信号,故登顶最难。

显示难度最高的 15 个词,以 jazzy(0.947)、known(0.911)、pygmy(0.868)、klutz(0.856)为代表。它们普遍含重复辅音(ss、ck、zz)或罕见字母(j、z、q、x、y),印证了"重复字母 + 罕见字母"的难度主因。其中 jazzy 含双 z 且以罕见字母 j 开头,几乎集齐所有困难信号,故登顶最难。

图7 显示难度最低的 15 个词,以 earth(0.315)、death(0.323)、heart(0.323)、alert(0.343)为代表。它们多由高频字母组成、含常见双字母(th、ea、ar、er),且首字母常见,信息友好度最高。

对比两极可见:最难词与最易词的平均难度差约 0.63(0.795–0.947 vs 0.315–0.377),而含重复字母词整体均值(0.665)显著高于无重复字母词(0.522),共同说明"结构重复"与"罕见度"是区分难度的关键画像。

从经营角度看,难度画像还有一层含义:Hard 档单词虽少,却是制造"话题度"的利器——一道极难词(如 jazzy、klutz)往往会引发社交媒体上的讨论与二次传播,短期内提升产品曝光;但频繁使用会损害留存。因此编辑应在"多数 Moderate 保体验、偶尔 Hard 造话题"之间平衡,而不是直接剔除困难词。我们的分类模型恰好能为此提供量化依据:先按难度分档,再在每个档内按"罕见度/重复度"微调,即可既控制整体难度曲线、又保留少量高话题词,实现体验与传播的兼顾。

7 小结

本文把范文一的难度底座转化为可操作的预测与分类工具:建立了失败率与平均猜词的多元线性回归,外样本 MAE 仅约 0.006、五折交叉验证表现一致,难度三分类准确率达 0.9194;并以 EERIE 给出完整预测实例(中等难度、失败率 18.3%、分布主峰在 4 次)。所有数字均可由 tools/gen_mcm2023c.py 复现。第三篇论文将把模型用于真题要求的另一主线——每日报告结果数的时间序列预测(2023-03-01 预测区间)与未来单词推荐。

图1 图11
图2 图22
图3 图33
图4 图44
图5 图55
图6 图66
图7 图77
图8 图88

参考文献

[1] COMAP. 2023 MCM Problem C: Predicting Wordle Results.
[2] Hastie T, Tibshirani R, Friedman J. The Elements of Statistical Learning. Springer, 2009.
[3] 本书站真题库配套:tools/gen_mcm2023c.py(确定性真源)与 data/mcm2023c.csv。

附录:核心 Python 实现

下列代码需位于 tools/ 目录运行,调用真源独立复现本文全部权威数字(SEED=2024,确定性)。

import gen_mcm2023c as G
D = G.gen_mcm2023c()
k = D["key"]
print("失败率回归 R2 = %.4f  平均猜词回归 R2 = %.4f" % (k["r2_fail"], k["r2_mean"]))
print("测试集 MAE = %.4f  5折CV MAE = %.4f" % (k["mae_fail"], k["cv_mae"]))
print("分类 Easy/Mod/Hard = %d/%d/%d  准确率 = %.4f" % (
    k["cls_Easy"], k["cls_Moderate"], k["cls_Hard"], k["cls_acc"]))
print("EERIE: d=%.3f 失败率=%.3f 类=%s" % (k["eerie_d"], k["eerie_fail"], k["eerie_cls"]))
print("最难词 =", k["hardest_word"], " 最易词 =", k["easiest_word"])