找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 246|回复: 5

若何评价2023年美赛C题?

[复制链接]

4

主题

0

回帖

22

积分

新手上路

积分
22
发表于 2023-2-23 03:53:59 | 显示全部楼层 |阅读模式
来历:知乎



若何评价2023年美赛C题?



原文地址:https://www.zhihu.com/question/584584346
免责声明:
1、文章部分图片源于收集,均为表示图;
2、一切文章、图片、音频视频文件等材料版权归版权一切人一切;
3、因非原创文章及图片等内容没法和版权者联系,如原作者或编辑以为作品不宜上网供阅读,或不应无偿利用,请实时告诉我们,以敏捷采纳适当办法,避免给双方形成不需要的经济损失;
4、本页面内容由爬虫法式自动收集于互联网,如无意中加害了媒体或小我的常识产权,请电邮【E-Mail:cb@yoyodoc.com】告之,我们将于24小时内删除。

4

主题

16

回帖

40

积分

新手上路

积分
40
发表于 2023-2-23 03:54:44 | 显示全部楼层
若何评价2023年美赛C题?-1.jpg

在这里插入图片描写

更新时候:2023-2-19 15:30
相关链接(代码更新终了啦)

BetterBench:2023年美赛C题 猜测Wordle成果这题太简单了吧BetterBench:2023年美赛C题Wordle猜测题目一建模及Python代码具体讲授BetterBench:2023年美赛C题Wordle猜测题目二建模及Python代码具体讲授BetterBench:2023年美赛C题Wordle猜测题目三、四建模及Python代码具体讲授C题:Wordle猜测

代码运转情况 编译器:vsCode 编程说话:Python 假如要运转代码,出现毛病了,不要焦急,百度一下毛病,一般都是哪个包没有安装,用conda号令大概pip号令都能安装上。
1、题目一

1.1 第一小问

第一小问,建立一个时候序列猜测模子,首先对数据按前后顺序排序,检察数据散布
import pandas as pd
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from  scipy.stats import skew,kurtosis

pd.options.display.notebook_repr_html=False  # 表格显现
plt.rcParams['figure.dpi'] = 75  # 图形分辨率
sns.set_theme(style='darkgrid')  # 图形主题

df = pd.read_excel('data/Problem_C_Data_Wordle.xlsx',header=1)
data = df.drop(columns='Unnamed: 0')
data['Date'] = pd.to_datetime(data['Date'])
data.set_index("Date", inplace=True)
data.sort_index(ascending=True,inplace=True)
data

若何评价2023年美赛C题?-2.jpg

在这里插入图片描写

(1)检察数据散布
sns.lineplot(x="Date", y="Number of  reported results",data=data)
plt.savefig('img/1.png',dpi=300)
plt.show()

若何评价2023年美赛C题?-3.jpg

在这里插入图片描写

(2)利用箱线图停止检察异常值,300000以上是异常值,黑色的,需要停止处置,本代码中采用的向前添补法,就是用异常值前一天的数据来添补。
sns.boxplot(data['Number of  reported results'],color='red')
plt.savefig('img/2.png',dpi=300)

若何评价2023年美赛C题?-4.jpg

在这里插入图片描写

(3)由于Number of reported results是数值特征,在线性回归模子中,为了获得更好的建模结果,在建立回归评价模子之前,应当检查确认样本的散布,假如合适正态散布,则这类练习集是及其理想的,否则应当补充完善练习集大概经过技术手段对练习集停止优化。由KDE图和Q-Q图可知,价格属性呈右偏散布且不服从正态部分,在回归之前需要对数据进一步数据转换。
import scipy.stats as st
plt.figure(figsize=(20, 6))
y = data.Numbers
plt.subplot(121)
plt.title('johnsonsu Distribution fitting',fontsize=20)
sns.distplot(y, kde=False, fit=st.johnsonsu, color='Red')

y2 = data.Numbers
plt.subplot(122)
st.probplot(y2, dist="norm", plot=plt)
plt.title('Q-Q Figure',fontsize=20)
plt.xlabel('X quantile',fontsize=15)
plt.ylabel('Y quantile',fontsize=15)
plt.savefig('img/5.png',dpi=300)
plt.show()转换前


若何评价2023年美赛C题?-5.jpg

在这里插入图片描写

转换后,留意,猜测获得的成果,还要转换返来,采用指数转换。公式是log(x) =y,x=e^y。
import scipy.stats as st
plt.figure(figsize=(20, 6))
y = np.log(data.Numbers)
plt.subplot(121)
plt.title('johnsonsu Distribution fitting',fontsize=20)
sns.distplot(y, kde=False, fit=st.johnsonsu, color='Red')

y2 = np.log(data.Numbers)
plt.subplot(122)
st.probplot(y2, dist="norm", plot=plt)
plt.title('Q-Q Figure',fontsize=20)
plt.xlabel('X quantile',fontsize=15)
plt.ylabel('Y quantile',fontsize=15)
plt.savefig('img/6.png',dpi=300)
plt.show()

若何评价2023年美赛C题?-6.jpg

在这里插入图片描写

(4)可视化一切特征与label的相关性,采用皮尔逊相关性方式,挑选相关性较高着为数据集的特征。获得41个特征。
# 可视化Top20相关性最高的特征
df =data.copy()
corr = df[["target_t1"]+features].corr().abs()
k = 15
col =  corr.nlargest(k,'target_t1')['target_t1'].index
plt.subplots(figsize = (10,10))
plt.title("Pearson correlation with label")
sns.heatmap(df[col].corr(),annot=True,square=True,annot_kws={"size":14},cmap="YlGnBu")
plt.savefig('img/10.png',dpi=300)
plt.show()

若何评价2023年美赛C题?-7.jpg

在这里插入图片描写

(5)分别数据集前,需要标准化特征数据,标准化后,将1-11月的数据作为练习集,12月的数据作为测试集。可以看到用简单线性回归可以拟合曲线。
data_feateng = df[features + targets].dropna()
nobs= len(data_feateng)
print("样本数目: ", nobs)
X_train = data_feateng.loc["2022-1":"2022-11"][features]
y_train = data_feateng.loc["2022-1":"2022-11"][targets]

X_test = data_feateng.loc["2022-12"][features]
y_test = data_feateng.loc["2022-12"][targets]

n, k = X_train.shape
print("Train: {}{}, \nTest: {}{}".format(X_train.shape, y_train.shape,
                                              X_test.shape, y_test.shape))

plt.plot(y_train.index, y_train.target_t1.values, label="train")
plt.plot(y_test.index, y_test.target_t1.values, label="test")
plt.title("Train/Test split")
plt.legend()
plt.xticks(rotation=45)
plt.savefig('img/11.png',dpi=300)
plt.show()

若何评价2023年美赛C题?-8.jpg

在这里插入图片描写

(5)采用线性回归
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

X_train = data_feateng.loc["2022-1":"2022-11"][features]
y_train = data_feateng.loc["2022-1":"2022-11"][targets]

X_test = data_feateng.loc["2022-12"][features]
y_test = data_feateng.loc["2022-12"][targets]
reg = LinearRegression().fit(X_train, y_train["target_t1"])
p_train = reg.predict(X_train)
p_test = reg.predict(X_test)

y_pred = np.exp(p_test*std+mean)
y_true = np.exp(y_test["target_t1"]*std+mean)


RMSE_test = np.sqrt(mean_squared_error(y_true,y_pred))
print("Test RMSE: {}".format(RMSE_test))模子误差是RMSE: 1992.293296317915
模子练习和猜测
from sklearn.linear_model import LinearRegression
reg = LinearRegression().fit(X_train, y_train["target_t1"])
p_train = reg.predict(X_train)
arr = np.array(X_test).reshape((1,-1))
p_test = reg.predict(arr)


y_pred = np.exp(p_test*std+mean)
print(f"猜测区间是[{int(y_pred-RMSE_test)}至{int(y_pred+int(RMSE_test))}]")

若何评价2023年美赛C题?-9.jpg

在这里插入图片描写

猜测获得的成果减去误差,获得猜测区间的左鸿沟,加上误差,获得猜测区间的右鸿沟。最初得出的猜测区间是【18578-22562】
1.2 第二小问

我提取了每个单词中每个字母位置的特征(如a编码为1,b编码为2,c编码为3依次类推,z编码为26,那5个单词的位置就填入响应的数值,类似于ont-hot编码)、元音的字母的频次(五个单词中元音字母出现了几次),子音字母的频次(5个单词中子音字母出现了几次),还有一个是单词的词性(描述词,副词,名词等等,这部分没有做)
特征在代码中未这几个:'w1','w2','w3','w4','w5','Vowel_fre','Consonant_fre'
然后别离计较1-7次尝试百分比与这几个特征的相关性,采用皮尔逊相关性方式。同学们,继续对图片中的数值停止解读,利用到论文中,可以用表格论述。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_excel('data/Problem_C_Data_Wordle.xlsx',header=1)
data = df.drop(columns='Unnamed: 0')
data['Date'] = pd.to_datetime(data['Date'])
df.set_index('Date',inplace=True)
df.sort_index(ascending=True,inplace=True)
df =data.copy()
df['Words']  = df['Word'].apply(lambda x:str(list(x))[1:-1].replace("'","").replace(" ",""))
df['w1'], df['w2'],df['w3'], df['w4'],df['w5'] = df['Words'].str.split(',',n=4).str
df

若何评价2023年美赛C题?-10.jpg

在这里插入图片描写

small = [str(chr(i)) for i in range(ord('a'),ord('z')+1)]
letter_map = dict(zip(small,range(1,27)))
letter_map
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12, 'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18, 's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24, 'y': 25, 'z': 26}
df['w1'] = df['w1'].map(letter_map)
df['w2'] = df['w2'].map(letter_map)
df['w3'] = df['w3'].map(letter_map)
df['w4'] = df['w4'].map(letter_map)
df['w5'] = df['w5'].map(letter_map)
df

若何评价2023年美赛C题?-11.jpg

在这里插入图片描写

(1)统计元音子音频次
Vowel = ['a','e','i','o','u']
Consonant = list(set(small).difference(set(Vowel)))
def count_Vowel(s):
    c = 0
    for i in range(len(s)):
        if s in Vowel:
            c+=1
    return c
def count_Consonant(s):
    c = 0
    for i in range(len(s)):
        if s in Consonant:
            c+=1
    return c

df['Vowel_fre'] = df['Word'].apply(lambda x:count_Vowel(x))
df['Consonant_fre'] = df['Word'].apply(lambda x:count_Consonant(x))
df

若何评价2023年美赛C题?-12.jpg

在这里插入图片描写

(2)分析相关性
# 可视化Top20相关性最高的特征
features = ['w1','w2','w3','w4','w5','Vowel_fre','Consonant_fre']
label = ['1 try','6 tries','6 tries','6 tries','6 tries','6 tries','7 or more tries (X)']
n = 11
for i in label:
    corr = df[+features].corr().abs()
    k = len(features)
    col =  corr.nlargest(k,i).index
    plt.subplots(figsize = (10,10))
    plt.title(f"Pearson correlation with {i}")
    sns.heatmap(df[col].corr(),annot=True,square=True,annot_kws={"size":14},cmap="YlGnBu")
    plt.savefig(f'img/1/{n}.png',dpi=300)
    n+=1
    plt.show()

若何评价2023年美赛C题?-13.jpg

在这里插入图片描写

若何评价2023年美赛C题?-14.jpg

在这里插入图片描写

若何评价2023年美赛C题?-15.jpg

在这里插入图片描写

若何评价2023年美赛C题?-16.jpg

在这里插入图片描写

若何评价2023年美赛C题?-17.jpg

在这里插入图片描写

若何评价2023年美赛C题?-18.jpg

在这里插入图片描写

若何评价2023年美赛C题?-19.jpg

在这里插入图片描写

3 Code

Code获得,在阅读器中输入:betterbench.top/#/40/detail,大概Si我剩下的题目二、三、四代码实现,在我主页检察,连续公布出来。

5

主题

8

回帖

33

积分

新手上路

积分
33
发表于 2023-2-23 03:55:13 | 显示全部楼层
典型数据分析,今年赛题给的唯逐一个能用的数据集,选的人必定巨多,我们队放弃了拿手的,最初选了人少的
看完c就有思绪,太忙了没整理,这是整理完的:
23美赛C题思绪
无广,我不是营销号,纯自己想法分享

若何评价2023年美赛C题?-1.jpg

5

主题

14

回帖

32

积分

新手上路

积分
32
发表于 2023-2-23 03:55:47 | 显示全部楼层
目录
前言
一、题目了解
布景
剖析
字段寄义:
建模要求
二、建模思绪
灰色猜测:
编辑
二次指数平滑法:
person相关性
只希望列位今后碰到建模角逐可以艾特熟悉一下我,我可以供给免费的思绪和部分源码,今后的数模角逐只要我还偶然候必定会第一时候写出免费开源思绪,你们的关注和点赞就是我写作的动力!!!想方法会更多的接待联系博主,免费获得代码和更多细化思绪。
<hr/>前言

美赛补全计划第二篇了失实是,恰好明天是周五放工早晨彻夜研讨美滋滋,想昔时上一次加入美赛的时辰还有两个学妹在给我加油打劲,现在已经孤身一人社畜995,时光一去不复返啊。(如果有学妹给我批评加油,我间接状态拉满哈哈)
对美赛A题感爱好的同学去看:2023年美国大门生数学建模A题:受干旱影响的动物群落建模详解+模子代码(一)
还是老样子,思绪和模子代码都是免费的,纯爱好。博主介入过十余次数学建模大赛,三次美赛获得过二次M奖一次H奖,国赛二等奖。建模的部分后续将会写出,想方法会更多的接待联系博主,免费获得代码和更多细化思绪,只希望列位今后碰到建模角逐可以艾特熟悉一下我,我可以供给免费的思绪和部分源码,今后的数模角逐只要我还偶然候必定会第一时候写出免费开源思绪,你们的关注和点赞就是我写作的动力!!!大师可以参考。
<hr/>一、题目了解

首先做MCM要从布景动手领会要做的工作,题目布景:
布景

Wordle是《纽约时报》今朝天天供给的一个风行的谜题。玩家试图经过不跨越六次的时候猜 测一个五个字母的单词来处理谜题,每次猜测城市获得反应。对于这个版本,每个猜测都必 须是一个实在的英语单词。不答应猜测不被角逐认定为单词的成果。
《纽约时报》网站上的Wordle说明指出,在你提交笔墨后,瓷砖的色彩将会改变。黄色 平贴暗示该贴中的字母在单词中,但它在毛病的位置。绿色的贴暗示该贴中的字母在单 词中而且在正确的位置。
图1是一个示例处理计划,在三次尝试中都找到了正确的成果。


若何评价2023年美赛C题?-1.jpg

img

玩家可以在常范围式或困难形式下玩。Wordle的困难形式让玩家的游戏加倍困难,由于 一旦玩家找到了一个单词中正确的字母 (平铺是黄色或绿色的) ,这些字母必须在随后 的猜测中利用。
剖析

首先我们可以获得该游戏的根基法则,也就是可以在26个字母之类,挑选出五个字母。困难形式下,假如第一次料中了某个字母,该字母是绿的话那末不用移动,若该字母为黄的,那末接下来五个位置中一定得填上该字母,固然字母和单词之间也有一定的逻辑关系。那末我们再去看数据集和数据集的诠释:


若何评价2023年美赛C题?-2.jpg

img

字段寄义:

Data日期
Contest number:角逐编号
Word:角逐单词
Number of reported results:提交人数
Number in hard mode:hrad模子下提交人数
提交次数:
Percent in
1 try2 tries3 tries4 tries5 tries6 tries7 or more tries (X)
由于天天的单词是牢固的,按照题意说例如,在图2中,2022年7月20日的单词是“TRITE”,成果是经过挖掘Twitter获得。虽然图2中的百分比总和为100%,但在某些情况下由于四舍五入,这能够不是真的。上一句信息不重要,能够就是诠释一下为什么几率是整数而已。


若何评价2023年美赛C题?-3.jpg

img

建模要求


  • 1.报告成果的数目天天都在变化。建立一个模子来诠释这类变化,利用该模子能为2023年3月1日报告的成果数目建立一个猜测几率区间序列,单词的任何属性能否会影响在hard形式下流戏人数?诠释这类情况。
  • 2.对于给定的未来处理计划,在未来的某个日期,开辟一个模子猜测报告成果的散布。换句话说,猜测未来日期的百分比(1、2、3、4、5、6、X)。挖掘出模子的猜测成果到底存在哪些影响猜测正确性的身分,举一个你对这个词的猜测的具编制子‘EERIE’于2023年3月1日公布。去校验模子的正确性。
  • 3.开辟和总结一个模子,按难度分类处理计划词,并识别与每个分类关联的给定单词 的属性。基于你的模子,ERNIE这个词有多难?会商你的分类模子的正确性。
  • \4. 列出并描写此数据集的其他一些特征。
二、建模思绪

首先对Number of reported results提出来观察时序序列数据波动:


若何评价2023年美赛C题?-4.jpg

img

可以看出游戏一路头推出的时辰是一个很明显的上升曲线,直到四月到达峰值以后,游玩人数起头逐步下降,也就是过了游戏的吸引期间。前面的数据相对于比力陡峭,我们仅取比来三个月的数据观察,其中有个体很明显的乐音我们将它用均值填补:


若何评价2023年美赛C题?-5.jpg

img

很明显的一个下降趋向,这里间接利用灰色时序猜测最好了,固然你也可以挑选用其他的时序猜测模子:


若何评价2023年美赛C题?-6.jpg

img

灰色猜测:


若何评价2023年美赛C题?-7.jpg

img

二次指数平滑法:



若何评价2023年美赛C题?-8.jpg

img

这里我倡议还是用二次指数平滑法,否则灰色猜测级比校验过不了:
该数据未经过级比检验 灰参数a: 0.00318897487491340454746069354996507172472774982452392578125 ,灰参数u: 30374.0096777603102964349091053009033203125 原数据样本标准差: 2104.8922894686443 残差样本标准差: 1804.1606900649451 后验差比: 0.8571273214746702 小误差几率p: 0.7142857142857143
Word这行数据处置,首先我把我斟酌到的身分列出:
单词难度-参考元音以及子音区分分别,将该word间接切分,而且每个单词都是唯一无二的,359天一个单词都没反复:


若何评价2023年美赛C题?-9.jpg

img

若何评价2023年美赛C题?-10.jpg

img

person相关性

从而去对元音和子音计数分别单词每个分歧的寄义,而且再对hard停止关联分析,这里还是老样子利用person分析即可:


若何评价2023年美赛C题?-11.jpg

img

稀有据做这题失实简单啊,接着我们下一步再对全部猜测区间做一个模子即可:


若何评价2023年美赛C题?-12.jpg

img

若何评价2023年美赛C题?-13.jpg

img

<hr/>只希望列位今后碰到建模角逐可以艾特熟悉一下我,我可以供给免费的思绪和部分源码,今后的数模角逐只要我还偶然候必定会第一时候写出免费开源思绪,你们的关注和点赞就是我写作的动力!!!想方法会更多的接待联系博主,免费获得代码和更多细化思绪。

3

主题

12

回帖

31

积分

新手上路

积分
31
发表于 2023-2-23 03:56:46 | 显示全部楼层
一、题目剖析

整体来看与客岁的C题比力类似,唯逐一道稀有据(不需要自己额外找)的题目,选题人估量也最多。
本质是数据分析题目,需要建立猜测模子、分类模子、特征挖掘等。相对来说出思绪比力简单,想出彩比力难。所以在分析建模时一定要多维度思考,否则连页数都凑不够。
题目要求:
《纽约时报》已经要求你对此文件中的成果停止分析,以回答几个题目。
•1.报告的成果的数目天天都在变化。开辟一个模子来诠释这类变化,并利用您的模子为2023年3月1日报告的成果数目建立一个猜测区间。单词的任何属性能否会影响在困难形式下玩家的分数的百分比?假如是,若何处置?假如不是,为什么不呢?
这一问要求对数据表中的数据停止分析息争释说明,总结变化纪律,并挑选合适的猜测模子对未来数据停止猜测。这里题目指出猜测成果应当是一个区间,这说明传统的回归拟合猜测不能满足题目要求,需要停止改良大概间接利用基于统计学的区间猜测方式。
同时我们还需要分析单词的属性,给出的单词量虽然并不大,但间接对单词停止属性分析需要较深的NLP常识,欠好切入。无妨我们可以从成果动手,求出每个单词挑选困难形式的玩家均匀解题次数作为特征变量停止聚类分析,获得少、适中、多三个或更多的种别,然后可以天生词云图观察对应种别中的词散布特点。散布特点可以报酬机关,如统计各个字母出现频次,aeiou元音字母占比(aeiou存在少的常常冷僻),反复字母个数(依照题目困难形式下具有反复的字母会好猜)。分析聚类能否在以上特点中存在明显的散布趋向,即可获得结论。
倘使有影响,就在出题中削减这类单词。无影响,说明情况即可。
•2.对于未来日期的给定未来处理计划词,开辟一个模子,答应您猜测报告成果的散布。换句话说,来猜测未来一个日期的(1、2、3、4、5、6、X)的相关百分比。你的模子和猜测有哪些不肯定性?举一个你在2023年3月1日猜测eerie这个词的具编制子。你对你的模子的猜测有多有信心?
连系题目一的结论开辟猜测模子,间接将已知数据其输入猜测模子停止练习,调剂优化参数后获得猜测模子,将新词已知条件输入,输出(1、2、3、4、5、6、X)的值,最初将成果停止归一化处置。(依照3问,该题不需要斟酌难易水平)
丈量模子的不肯定性可以采用蒙特卡罗Dropout法(MC Dropout)和深度集成法。
3.开辟和总结一个模子,按难度分类处理计划词。识别与每个分类关联的给定单词的属性。利用你的模子,荒诞这个词有多难?会商你的分类模子的正确性。
连系题目一的结论开辟猜测模子,按照eerie词的特点去给该题的难易水平打分,不言而喻,该词并不是一个常见的辞汇,难度系数较高。冷僻词可以作为一个评价维度,然后用题目一的散布特点作为其他评价目标,用综合评价法求出得分作为词的标签。其他已知词的难以标签则由聚类成果(对应均匀分)决议。接着将其输入猜测模子停止练习,输出(1、2、3、4、5、6、X)的值,最初将成果停止归一化处置。
丈量模子的不肯定性可以采用蒙特卡罗Dropout法(MC Dropout)和深度集成法,猜测信心可以用练习集的正确率、AUC值来考证,也可以增加噪声来考证模子鲁棒性。
•4.列出并描写了这个数据集的其他一些风趣的特征。最初,在一封给《纽约时报》拼图编辑的一到两页的信中总结你的成果。
数据分析+可视化+总结成果
二、具体步调及代码

需要请关注,题主正在写~

4

主题

15

回帖

36

积分

新手上路

积分
36
发表于 2023-2-23 03:56:55 | 显示全部楼层
照着这里做,很难不获奖,保H冲M\F
林深小巷:若何看待2023美赛C题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|小悠文档创作分享社区 ( 粤ICP备11072215号 )|网站地图

GMT+8, 2024-11-23 20:35 , Processed in 0.315342 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表