天池新人赛-数据挖掘

天池新人赛-数据挖掘

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

数据读取

天池新人赛-数据挖掘_第1张图片将数据导入到环境中,是数据处理的基础。

初始数据绘图

天池新人赛-数据挖掘_第2张图片

数据处理

#画出建立的方程模型图像和散点图的图像,进行对比
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)’)#纵轴
天池新人赛-数据挖掘_第3张图片

预测模型

#由公式预测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为向量所以输出也是一个向量值
天池新人赛-数据挖掘_第4张图片

数据预测

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

你可能感兴趣的:(数据挖掘大作业,数据挖掘)