Mind+Python编程入门系列教程——11 冰淇淋销量预测
本帖最后由 木子呢 于 2021-11-9 16:50 编辑Mind+Python编程入门系列教程——11 冰淇淋销量预测
写在前面:
Hello,大家好,《Python编程入门系列课程》目前已连更了11课时(共12课时),即将完结。非常感谢一直在关注和学习该系列教程的老师、同学们。
希望大家在学习的同时,也多多为该系列课程提出宝贵建议,我们定当对大家提出的意见和想法进行仔细评估和采纳,后续将继续为大家提供更多系统化的教程和优质的课程~
动动小手扫码,说出您的想法哈
扫一扫
一、学习背景
经过上节课的学习,我们了解了数据处理的一般过程,也学习了数据采集和数据整理。本节课,我们依旧将结合python对数据进行处理与分析,来解决生活中的一些实际问题。
二、学习目标
本实践项目通过编写python程序来预测在一定温度下店铺冰淇淋的销量。
知识目标:
1、理解数据分析
2、掌握回归分析法
技能目标:
1、掌握利用软件工具对数据进行处理的方法
三、学习准备
1、电脑
2、mind+编程软件
核心概念
1)数据分析
数据分析是指用适当的计算方法与工具对收集来的数据进行处理,提取有用信息,形成结论从而支持决策。数据分析可以分为描述性分析、诊断性分析、预测性分析、指导性分析。
2)回归分析法
回归分析法是预测性分析的一种,主要用于比较那些通过不同计量测得的变量之间的相互影响,如价格变动与促销活动数量之间的联系。这些益处有利于市场研究人员,数据分析人员以及数据科学家排除和衡量出一组最佳的变量,用以构建预测模型。
3)回归与回归算法
回归是一种由果索因的过程,即由大量事实所呈现的状态,设法去推断其原因。回归算法一般用于确定两种或两种以上变量之间的定量关系。
例如,在物理实验中,探究小车随时间变化规律这个任务就能通过回归来解决。
在这个实验中,我们依据给出的数据表格,在Excel表格工具中绘制了一副散点图,并添加了一条趋势线来观察这些点的分布特点。
从图中我们可以看到速度和时间的关系表达式为y=2.48x+0.38,R平方值表示线性趋势线对数据拟合的程度,R平方值的值越接近1,代表图像越趋近于真实情况,预测效果越好。那么我们生成这样一个图表的目的是什么呢?
这个实验中探究的是速度和时间的两个变量之间的定量关系,确定此关系后,可以根据需要推测出时间为某一个数值时的速度大小。这种找趋势的方式,也称之为拟合。
拟合是一种数据处理的方式,简单地说就是你有一组数据,觉得这组数据和一个已知的函数(这个函数的参数未定)很相似,为了得到最能表示这组数据特征的这个函数,通过拟合这种方式(具体的数学方法很多)求得函数。而回归是一种特定的数学方法,它可以实现数据拟合,得到函数的参数。当然也有些拟合得到的参数并非是函数的参数,如神经网络,得到的是这个神经网络的参数,这里我们不作深入探究。
四、学习实践
在本项目中,我们将分两步,来预测在指定温度下冰淇淋的销量。
1、探究温度对冰淇淋销量的影响。
2、预测在指定温度下,冰淇淋的销售量。
任务1:探究温度对冰淇淋销量的影响在这个任务中,我们将探究温度对冰淇淋销量的影响。通过它,我们可以了解数据分析常用的方法。为此,我们将分三步进行探究。首先是采集并整理数据,之后以图表形式将数据可视化出来,最后观察图表并分析数据得出结论。
1、数据采集与整理
在这个项目中,我们从店铺老板处获取记录的数据,数据内容包括日期,气温以及当日的销量等,稍做检查后将数据保存在csv表格文件中。(数据文件见附录1)
2、数据可视化
为了便于对数据进行读取和分析,我们通过编写程序将采集整理好的数据以图表形式呈现出来。
这里我们将采用顺序结构的方式编写程序。具体流程如下:
在正式编写程序代码之前,我们首先要创建一个项目文件及python程序文件,并导入表格文件,导入表格的方法与导入gif图相同。
STEP1:创建与保存项目文件
启动Mind+,另存项目并命名为“冰淇淋店销量预测”。
STEP2:创建与保存python文件
创建一个python程序文件“任务一.py”,双击打开。
STEP3:导入数据文件(见附录1)
STEP4:编写程序
import pandas as pd#导入pandas库并用pd来表示
import matplotlib.pyplot as plt#导入matplotlib库中的函数集合
icecream = pd.read_csv("icecream.csv")#导入csv格式表格数据
plt.rcParams['font.sans-serif'] = ['SimHei']#绘制中文字体
plt.title("冰淇淋销量与气温图")#绘制图像标题
plt.xlabel("气温")#绘制x轴标签
plt.ylabel("销售量")#绘制y轴标签
plt.scatter(icecream.iloc[:,1],icecream.iloc[:,0])#绘制散点图
plt.show()#显示图像
STEP5:运行程序
运行程序,我们看到:数据以散点图的形式呈现了出来,图上,横轴表示气温,纵轴表示销售量,一个个蓝色的小圆点表示的就是不同气温下的销售量。
3、数据分析
观察生成的散点图,我们可以发现,整体上,气温对销售量有较大的影响,且气温越高销售量越大。
任务2:预测在指定温度下,冰淇淋的销售量
由上个任务我们已经粗略得知销售量会随着气温的升高而增加,在这个任务中,我们将结合回归分析法,进一步探究销售量与气温间的线性关系,继而预测在指定温度下,冰淇淋的销售量。由于这里用到的数据不变,因此接下来我们只需两步,先通过编写程序得到散点图的线函数关系式,再分析数据进行预测。
1、数据可视化
这里我们将采用顺序结构的方式编写程序。具体流程如下:
STEP1:创建与保存python文件
创建一个python程序文件“任务二.py”,双击打开。
STEP2:安装sklearn库
(1)点击库管理
(2)安装sklearn库
STEP3:编写程序
import pandas as pd#导入pandas库并用pd来表示
import matplotlib.pyplot as plt#导入matplotlib库中的函数集合
from sklearn.linear_model import LinearRegression#导入sklearn库中的线性回归模型
icecream = pd.read_csv("icecream.csv")#导入csv格式表格数据
plt.rcParams['font.sans-serif'] = ['SimHei']#设置中文字体
plt.title("冰淇淋销量与气温图")#绘制标题
plt.xlabel('气温')#绘制x坐标标签
plt.ylabel('销售量')#绘制y坐标标签
plt.scatter(icecream.iloc[:,1],icecream.iloc[:,0])#绘制散点图
feature_cols = ['气温']#获取气温
x = icecream#设置x轴为csv表格中的气温列表
y = icecream.销售量#设置y轴为csv表格中的销售量
model = LinearRegression()#实例化线性回归模型,生成model模型对象
model.fit(x,y)#训练并存储模型
plt.plot(icecream.气温, model.predict(x) , color='blue')#绘制直线
plt.show()#显示图像
print("截距与斜率:",model.intercept_,model.coef_)#在终端打印截距与斜率的值
STEP4:运行程序
(1)运行程序,我们看到,在原有的散点图上,绘制出了一条直线
(2)关闭图表,观察终端,显示了直线的斜率和截距
2、数据分析
通过得到的斜率与截距,我们得出散点图中的线函数式为y=5.2X+57.2。
因而,当气温为25度时,预测的冰淇淋销售量为5.2*25+57.2=187.52,约188个。
当气温为35度时,预测的冰淇淋销售量为5.2*35+57.2=239.2,约239个。
五、巩固提高
项目回顾
本节课我们首先探究了温度对冰淇淋销量的影响,利用pandas、matplotlib和sklearn库将数据以图表形式呈现出来,并找到了其中的线性关系,之后通过线性关系式预测了在指定温度下冰淇淋的销售量。
知识小结
1、数据分析的理念
2、回归分析法
附录
附录1表格链接
链接:https://pan.baidu.com/s/102FG0v8s7hGOytex_4uawg
提取码:yc82
附录2
页:
[1]