天池新人赛-数据挖掘

本文介绍了参加天池新人赛的数据挖掘项目,使用Python环境预测奥林匹克百米跑成绩。通过数据读取、初步绘图、数据处理、构建预测模型,并最终预测2020年的百米成绩为9.319秒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

天池新人赛-数据挖掘

组别:WLH
奥林匹克百米跑数据预测-python
编程是基于python的环境进行,可以在环境中构造数据模型

数据读取

将数据导入到环境中,是数据处理的基础。

初始数据绘图

初始图

数据处理

#画出建立的方程模型图像和散点图的图像,进行对比
x_test = np.linspace(1896,2008,100)[:,None]#在文档中读取x的值
f_test = w0+w1*x_test#预测之后的t值由得到的公式计算得出
plt.plot(x_test,f_test,‘k-’,linewidth=3)#画预测直线,其中linewidth为线宽
plt.plot(x,t,’.r’)#画原始数据分布
plt.xlabel(‘Olympic year’)#横轴
plt.ylabel(‘Winning time (s)’)#纵轴
模型图像

预测模型

#由公式预测2020年百米成绩
x_pre=2020
f_pre = w0+w1x_pre
print(“2020年男子百米成绩预测值为:”,f_pre)
maxorder = 5
X = np.ones_like(x)
X_test = np.ones_like(x_test) #np.ones_like 所有元素用1代替
for i in range(1,maxorder+1):
X = np.hstack((X,xi)) #hstack 按列归结
X_test = np.hstack((X_test,x_test
i))
#高阶模型
lamb = 0.01#惩罚系数
w = np.linalg.solve(np.dot(X.T,X) + x.size
lamb*np.identity(maxorder+1),np.dot(X.T,t))
#调用linalg模块的solve模块对方程求解,dot()求矩阵积
#np.linalg.solve求线性函数 ,x.size是N,identity单位矩阵
f_test = np.dot(X_test,w)
plt.plot(x_test,f_test,‘k-’,linewidth=3)
plt.plot(x,t,’.r’)
print(w)#w为向量所以输出也是一个向量值
预测模型

数据预测

x = 2020
y = w[0]+w[1]*x+w[2]*x2+w[3]*x3+w[4]*x4+w[5]*x5#此时的y是个向量也即是一个列表,下面可以用y[0]取出
print(“2020百米预测成绩为:”,y[0])
得出结果为:2020百米预测成绩为: 9.31949390903901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值