2023年美国大学生数学建模竞赛C题预测Wordle的结果解题全过程文档及程序

news2024/11/28 7:38:02

2023年美国大学生数学建模竞赛

C题 预测Wordle的结果

原题再现:

  背景介绍
  Wordle是纽约时报目前每天提供的一个流行谜题。玩家通过在六次或更短时间内猜出一个至五个字母的单词来解决这个谜题,每次猜测都会得到反馈。在这个版本中, 每个猜测必须是一个实际的英文单词。不允许猜测不被比赛认可的单词。Wordle继续受到欢迎,该游戏现在有60多种语言的版本。
  纽约时报》网站矢于Wordle的说明指出,在你提交你的单词后,瓷砖的颜色会改变。黄色的瓷砖表示该瓷砖中的字母在单词中,但它的位置不对。绿色瓷砖表示该瓷砖中的字母在单词中,并且在正确的位置。灰色的牌表示该牌中的字母根本不在这个词中( 见附件2) 2。图1是一个解决方案的例子,其中正确的结果是在三次尝试中找到的。
在这里插入图片描述
  玩家可以在普通模式或"困难模式"下进行游戏。Wordle的"困难模式"使游戏更加困难,它要求玩家一旦在一个词中找到一个正确的字母(瓷砖是黄色或绿色的),这些字母必须在随后的猜测中使用。图1中的例子是在困难模式下进行的。
  许多( 但不是所有)用户在Twitter.上报告他们的分数。针对这个问题,MCM生成了一个2022年1月7日至12月31日的每日结果文件(见附件1)。这个文件包括日期、竞赛编号、当天的单词、当天报告分数的人数、使用困难模式的玩家人数,以及在一次、两次、三次、四次、五次、六次中猜中单词或无法解出谜题的百分比(用X表示)。例如,在图2中,2022年7月20日的单词是"TRITE",其结果是通过挖掘Twitter得到的。尽管图2中的百分比之和为100%,但在某些情况下,由于四舍五入,这可能不是真的。
在这里插入图片描述
  《纽约时报》要求你对这份文件中的结果做-一个分析,以回答几个问题。报告结果的数量每天都在变化。建立一个模型来解释这种变化,并使用你的模型为2023年3月1日的报告结果数量建立-一个预测区间。词语的任何属性是否影响到报告的在困难模式下进行的分数的百分比?如果是,如何影响?如果没有,为什么没有?
  对于一个给定的未来日期的解字,建立一个模型,使你能预测报告结果的分布。换句话说,预测未来某一天的(1、 2、3、4、5、6、X)的相关百分比。你的模型和预测有哪些不确定因素?请举一个具体的例子,说明你对2023年3月1日EERIE这个词的预测。你对你的模型的预测有多大信心?
  开发并总结一个模型,按难度对题司[进分类。找出与每个分类相的给定单词的属性。使用你的模型,EERIE这个词的难度如何?讨论一下你的分类模型的准确性。
  列出并描述这个数据集的一些其他有趣的特征。
  最后,在写给《纽约时报》谜题编辑的一到两页的信中总结你的成果。

整体求解过程概述(摘要)

  Wordle是纽约时报每天更新的猜谜游戏。本文研究了游戏中不同组合结构的词情与猜词数量的关系,建立了基于时间和报告数的非平稳时间序列周期差分运算(ARIMA)模型、基于词频难度的套索模型和朴素贝叶斯分类预测模型。

  对于问题1,我们首先绘制了时间与报告结果数量的堆叠面积图,发现报告结果的数量在不同时间段存在显著差异。其次,根据单词字母的组成结构,划分不同单词的属性,由于重复元素的出现,增加了困难模式的玩家数量。报告的结果数量在不同的时间段内波动很大。根据基于时间和我们建立的报告结果数量的非平稳时间序列的ARIMA(自回归积分移动平均)模型,2023年3月1日处于困难模式的玩家数量的报告结果范围。报告的结果将达到 17400 和 19780 之间,置信度为 95%。

  针对问题2,基于问题1得到的词属性因子,根据词的元素是否重复、词的元素是否相邻,构建朴素贝叶斯词频分类模型。通过对第一次、两次、三次、四次、五次、六次解谜的人数以及无法解谜的人数进行描述性统计分析和相关性分析,结合朴素贝叶斯模型求解结果,得出1月2023日“诡异”一词的预测结果, 获得0年,即第一次、第二次、第三次、第四次、第五次、第六次解谜的人中无法解谜的比例分别为2%、6%、15%、26%、38%、16%和10%。

  对于问题3,我们制定了词难度规则,根据规则建立了决策树模型,并采用词频分类法对原始数据进行分析。最后,我们得出结论,“怪异”是第七个难度,属于“aabca”的形式。词中元素是否重复以外的因素根据词的组成结构确定,词的重复要素根据它们是否相邻进行划分,这样分类结果合理。其次,进行敏感性分析。从敏感性分析的结果中,我们可以得出以下结论:模型原始数据的准确率为98%。更改重复元素的数量会降低分类预测模型的准确性,但仍超过 85%。总的来说,该模型相对稳定和准确。

  对于问题4,根据单词的含义和第N次猜谜语的人数比例(N=1,2,3,4,5,6)和未猜谜语的人数比例,通过相关统计分析获得一些单词的有趣特征。

  此外,根据团队的研究结果,我们给《纽约时报》的益智编辑写了一封信。

模型假设:

  为了简化我们的模型并降低复杂性,我们在本文中进行了以下主要假设。一旦所有假设用于构建我们的模型,它们将被重新强调:
  1.每个玩家在玩游戏时不受外界环境的影响,通过互联网或其他方式事先不知道答案。
  理由:基于这一假设,我们能够充分利用所提供的数据集并确保数据的独立性。这减少了影响游戏结果的因素,并使结果更具可解释性和可靠性。

  2.对于给定数据集中的异常值,我们可以通过收集信息来纠正它们,从而使结果更加准确。
  理由:异常值通常是由意外情况引起的,这可能会影响我们的结果。但是,通过平滑或在线收集信息来查看相关信息,我们可以获得接近现实的数据,从而减少对后续分析的影响。

  3.使用的数据集代表了所有玩家的水平和所有单词的难度。
  理由:数据集是从大多数玩家那里生成的,这是全面和有代表性的。

问题重述:

  任务 1
  我们需要建立一个模型来表达和解释报告计数的每日变化,并使用该模型预测 2023 3月1 日的预测范围。然后我们被要求讨论单词的属性是否对困难模式下的分数百分比有影响。

  任务 2
  我们被要求建立一个模型来预测报告结果的分布,给定一个未来的日期和一个单词作为参数。该模型中存在许多不确定因素。预测 1 年 2023 月 3月1日的单词“EERIE”,并确定模型预测的置信度。

  任务 3
  该任务要求我们总结一个模型来对单词的难度进行分类,定义每个类别,然后讨论单词 EERIE 的难度,以及模型的准确性。

  任务 4
  第四个问题要求我们使用先前建立的模型来列出数据的其他有趣特征,并讨论模型的准确性。

  任务 5
  第五个问题要求我们给《纽约时报》写一封信,总结所获得的结果。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

import pandas as pd
df = pd.read_excel("Problem_C_Data_Wordle2.xlsx", 
sheet_name="Sheet2",index_col='Date', dtype={'value': float})
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf
import pylab as plt
from statsmodels.tsa.arima_model import ARIMA
plt.rc('axes',unicode_minus=False)
plt.rc('font',size=16); plt.rc('font',family='SimHei')
plt.subplot(121); plt.plot(df.value.diff())
plt.title('一次差分')
ax2=plt.subplot(122)
plot_acf(df.value.diff().dropna(), ax=ax2,title='自相关')
#df.index = df.index.to_timestamp()
#df.index = pd.DatetimeIndex(df.index)
#df.index=df.Date
md=ARIMA(df.value, order=(3,1,0))
mdf=md.fit(disp=0)
print(mdf.summary())
residuals = pd.DataFrame(mdf.resid)
fig, ax = plt.subplots(1,2)
residuals.plot(title="残差", ax=ax[0])
residuals.plot(kind='kde', title='密度', ax=ax[1])
plt.legend(''); plt.ylabel('') 
mdf.plot_predict() #原始数据与预测值对比图
plt.show() 
forecast_data = mdf.forecast(70) 
forecast_data
#无重复字母
import ggplot as gp
import matplotlib as plt
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
#rcParams解决的是中文标签的问题
print(gp.ggplot(gp.aes(x='Date',y='Number in hard 
mode'),data=df11)+gp.geom_point(color='red'))

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30Wqps+闲鱼优惠中台,如何架构的?

说在前面 在尼恩的(50)读者社群中,经常遇到一个 非常、非常高频的一个面试题,但是很不好回答,类似如下: 千万级数据,如何做系统架构?亿级数据,如何做做系统架构&#xf…

2022年美国大学生数学建模竞赛E题森林的碳封存解题全过程文档及程序

2022年美国大学生数学建模竞赛 E题 森林的碳封存 原题再现: 背景   正如我们所知,气候变化对生命构成了巨大威胁。为了减轻气候变化的影响,我们需要采取有效的行动来减少大气中温室气体的含量。仅仅减少温室气体排放是不够的。我们需要努…

Redis可持久化详解2

目录 ​编辑 Redis的持久化配置参数: 2.Redis的性能问题: 3保持久化数据的完整性和正确性: 4.Redis的集群技术: 总结: Redis持久化不得不注意的一些地方。 Redis的持久化配置参数: save:指…

MySQL之InnoDB表空间

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的:从根儿上理解MySQL》 通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说&am…

Unity 全新的输入系统

选new的那个 会重启ide 然后去package manager里把这个装上 创建配置文件 文档地址 https://docs.unity3d.com/Packages/com.unity.inputsystem1.5/manual/index.html 创建完了是这样的 设置成这样 记住 value 和 vector2 然后就可以 选择 上下左右了 之前不设置 value…

【macOS】:macbook 安装了两个macOS后,设置默认启动的顺序

【macOS】:macbook 安装了两个macOS后,设置默认启动的顺序 如果你的 MacBook 安装了两个 macOS 操作系统, 你可以通过以下步骤设置默认启动的顺序: 1. 点击苹果菜单,选择“系统偏好设置”。 2. 点击“启动磁盘”选…

基于OpenMP的并行计算实验

一、实验目的 在Linux系统中,基于C编写OpenMP用例对并行计算进行实验: 1.掌握OpenMP的配置方式; 2.通过编写测试用例,观察引入OpenMP的加速效果 二、实验内容 2.1配置并测试OpenMP 1.配置并测试OpenMP 配置环境变量&#x…

MySQL基础(三十五)多版本并发控制

1. 什么是MVCC MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之&…

乡镇外卖好做吗?这几点一定要注意

乡镇外卖可靠吗?随着90后逐渐成为社会的主力军,自主创业,不做农民工已经成为这一代人的标签。找到一个项目难,可靠的项目更难找。根据实际数据反馈,乡镇外卖的就是是一个小而精细的项目。 但如果想通过乡镇外卖每月挣…

Python获取酷得music并下载,获得无限听

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests re win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源) 代码实现步骤 <基…

H桥电机驱动芯片CS9027C可pin对pin兼容DRV8812

CS9027C为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案。CS9027C有两路 H 桥驱动&#xff0c;每个H桥可提供最大输出电流2A(在24V 和Ta 25℃ 适当散热条件下)&#xff0c;可驱动两个刷式直流电机&#xff0c;或者一个双极步进电机&#xff0c;或者螺线管或者其它…

全网火爆,性能测试从0到1分析需求到实战详解,冲出高级测试岗...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、制定测试目的 …

《设计模式》备忘录模式

《设计模式》备忘录模式 定义&#xff1a; 备忘录模式又称为快照模式或者令牌模式&#xff0c;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;这样可以在以后将对象恢复到原先保存的状态。属性行为型模式。 备…

【云原生】私有镜像的解决方案-Harbor管理实战

前言 通过前面的镜像管理&#xff0c;我们知道docker的开发和运行都离不开镜像管理&#xff0c;如果要进行镜像管理就需要使用镜像仓库。 docker官方提供的镜像仓库是&#xff1a; docker hub&#xff0c; 很方面但从安全和效率的角度考虑&#xff0c;这样的公有镜像环境就无…

Qt文件系统源码分析—第一篇QFile

深度 本文主要分析Windows平台&#xff0c;Mac、Linux暂不涉及 本文只分析到Win32 API/Windows Com组件/STL库函数层次&#xff0c;再下层代码不做探究 本文QT版本5.15.2 类关系图 QTemporaryFile继承QFile QFile、QSaveFile继承QFileDevice QFileDevice继承QIODevice QIODev…

实用技能 || 从安装到实战!Citespace、vosviewer保姆级教程!

【基于Citespace和vosviewer文献计量学相关论文 】 专题一&#xff1a;文献计量学方法与应用 1 文献计量学方法基本介绍 2 与其他综述方法区别联系 3 各学科领域应用趋势近况 4 主流分析软件优缺点对比 5 经典高分10SCI思路复盘 6 软件安装与Java环境配置 专题二&#…

【IDEA】DeBug(图文并茂)

文章目录 01_Debug简介和意义02_IDEA中的Debug步骤03_跳转到当前代码执行的行04_步过调试的使用05_步入调试的使用06_强制步入调试的使用07_步出调试的使用08_回退断点调试的使用09_运行到光标处10_计算表达式11_条件断点12_多线程调试 IDAEA&#xff08;Interactive Data Anal…

【k8s】【ELK】Sidecar容器运行日志Agent

1、日志收集场景分析与说明 对于那些能够将日志输出到本地文件的Pod&#xff0c;我们可以使用Sidecar模式方式运行一个日志采集Agent&#xff0c;对其进行单独收集日志1、首先需要将Pod中的业务容器日志输出至本地文件&#xff0c;而后运行一个Filebeat边车容器&#xff0c;采…

【Mysql实战】存储过程详解

快速入门 创建存储过程 CREATE PROCEDURE p1()BEGIN-- SQL语句SELECT count(*) FROM user; END;调用存储过程 CALL p1();查看存储过程 SHOW CREATE PROCEDURE 存储过程名称删除存储过程 DROP PROCEDURE [ IF EXISTS ] 存储过程名称 ;入参出参 IN&#xff1a;该类参数作为输…

关于不同处理器的函数调用规则

关于不同处理器的函数调用规则 接前面一篇变长参数调用的记录&#xff0c;这次从原理上进行了进一步研究。 不同调用规则对对于编译出来的汇编影响很大的&#xff0c;这里之前的理解比较粗浅&#xff0c;尤其是一般教科书或者网上能看到的内容都比较老&#xff0c;这里记录一下…