6963浏览
查看: 6963|回复: 0

[教程] Mind+Python编程入门系列教程——11 冰淇淋销量预测

[复制链接]
本帖最后由 木子呢 于 2021-11-9 16:50 编辑

Mind+Python编程入门系列教程——11 冰淇淋销量预测

写在前面:
Hello,大家好,《Python编程入门系列课程》目前已连更了11课时(共12课时),即将完结。非常感谢一直在关注和学习该系列教程的老师、同学们。

希望大家在学习的同时,也多多为该系列课程提出宝贵建议,我们定当对大家提出的意见和想法进行仔细评估和采纳,后续将继续为大家提供更多系统化的教程和优质的课程~

动动小手扫码,说出您的想法哈

Mind+Python编程入门系列教程——11 冰淇淋销量预测图16

扫一扫

一、学习背景
经过上节课的学习,我们了解了数据处理的一般过程,也学习了数据采集和数据整理。本节课,我们依旧将结合python对数据进行处理与分析,来解决生活中的一些实际问题。

二、学习目标
        本实践项目通过编写python程序来预测在一定温度下店铺冰淇淋的销量。

知识目标:
1、理解数据分析
2、掌握回归分析法

能目标:
1、掌握利用软件工具对数据进行处理的方法

三、学习准备
1、电脑
2、mind+编程软件

核心概念

1)数据分析

    数据分析是指用适当的计算方法与工具对收集来的数据进行处理,提取有用信息,形成结论从而支持决策。数据分析可以分为描述性分析、诊断性分析、预测性分析、指导性分析。

2)回归分析法

    回归分析法是预测性分析的一种,主要用于比较那些通过不同计量测得的变量之间的相互影响,如价格变动与促销活动数量之间的联系。这些益处有利于市场研究人员,数据分析人员以及数据科学家排除和衡量出一组最佳的变量,用以构建预测模型。

3)回归与回归算法

    回归是一种由果索因的过程,即由大量事实所呈现的状态,设法去推断其原因。回归算法一般用于确定两种或两种以上变量之间的定量关系。

    例如,在物理实验中,探究小车随时间变化规律这个任务就能通过回归来解决。

Mind+Python编程入门系列教程——11 冰淇淋销量预测图1

Mind+Python编程入门系列教程——11 冰淇淋销量预测图2


    在这个实验中,我们依据给出的数据表格,在Excel表格工具中绘制了一副散点图,并添加了一条趋势线来观察这些点的分布特点。

    从图中我们可以看到速度和时间的关系表达式为y=2.48x+0.38,R平方值表示线性趋势线对数据拟合的程度,R平方值的值越接近1,代表图像越趋近于真实情况,预测效果越好。那么我们生成这样一个图表的目的是什么呢?

    这个实验中探究的是速度和时间的两个变量之间的定量关系,确定此关系后,可以根据需要推测出时间为某一个数值时的速度大小。这种找趋势的方式,也称之为拟合。

    拟合是一种数据处理的方式,简单地说就是你有一组数据,觉得这组数据和一个已知的函数(这个函数的参数未定)很相似,为了得到最能表示这组数据特征的这个函数,通过拟合这种方式(具体的数学方法很多)求得函数。而回归是一种特定的数学方法,它可以实现数据拟合,得到函数的参数。当然也有些拟合得到的参数并非是函数的参数,如神经网络,得到的是这个神经网络的参数,这里我们不作深入探究。

四、学习实践

Mind+Python编程入门系列教程——11 冰淇淋销量预测图3

在本项目中,我们将分两步,来预测在指定温度下冰淇淋的销量。
1、探究温度对冰淇淋销量的影响。
2、预测在指定温度下,冰淇淋的销售量。

任务1:探究温度对冰淇淋销量的影响在这个任务中,我们将探究温度对冰淇淋销量的影响。通过它,我们可以了解数据分析常用的方法。为此,我们将分三步进行探究。首先是采集并整理数据,之后以图表形式将数据可视化出来,最后观察图表并分析数据得出结论。

1、数据采集与整理

    在这个项目中,我们从店铺老板处获取记录的数据,数据内容包括日期,气温以及当日的销量等,稍做检查后将数据保存在csv表格文件中。(数据文件见附录1)

2、数据可视化

    为了便于对数据进行读取和分析,我们通过编写程序将采集整理好的数据以图表形式呈现出来。

    这里我们将采用顺序结构的方式编写程序。具体流程如下:

Mind+Python编程入门系列教程——11 冰淇淋销量预测图4

在正式编写程序代码之前,我们首先要创建一个项目文件及python程序文件,并导入表格文件,导入表格的方法与导入gif图相同。

STEP1:创建与保存项目文件
    启动Mind+,另存项目并命名为“冰淇淋店销量预测”。

STEP2:创建与保存python文件
    创建一个python程序文件“任务一.py”,双击打开。

STEP3:导入数据文件(见附录1)

Mind+Python编程入门系列教程——11 冰淇淋销量预测图5Mind+Python编程入门系列教程——11 冰淇淋销量预测图6

STEP4:编写程序
  1. import pandas as pd#导入pandas库并用pd来表示
  2. import matplotlib.pyplot as plt#导入matplotlib库中的函数集合
  3. icecream = pd.read_csv("icecream.csv")#导入csv格式表格数据
  4. plt.rcParams['font.sans-serif'] = ['SimHei']#绘制中文字体
  5. plt.title("冰淇淋销量与气温图")#绘制图像标题
  6. plt.xlabel("气温")#绘制x轴标签
  7. plt.ylabel("销售量")#绘制y轴标签
  8. plt.scatter(icecream.iloc[:,1],icecream.iloc[:,0])#绘制散点图
  9. plt.show()#显示图像
复制代码

STEP5:运行程序

    运行程序,我们看到:数据以散点图的形式呈现了出来,图上,横轴表示气温,纵轴表示销售量,一个个蓝色的小圆点表示的就是不同气温下的销售量。

Mind+Python编程入门系列教程——11 冰淇淋销量预测图7

3、数据分析

    观察生成的散点图,我们可以发现,整体上,气温对销售量有较大的影响,且气温越高销售量越大。

任务2:预测在指定温度下,冰淇淋的销售量

    由上个任务我们已经粗略得知销售量会随着气温的升高而增加,在这个任务中,我们将结合回归分析法,进一步探究销售量与气温间的线性关系,继而预测在指定温度下,冰淇淋的销售量。由于这里用到的数据不变,因此接下来我们只需两步,先通过编写程序得到散点图的线函数关系式,再分析数据进行预测。

1、数据可视化
    这里我们将采用顺序结构的方式编写程序。具体流程如下:

Mind+Python编程入门系列教程——11 冰淇淋销量预测图8

STEP1:创建与保存python文件
    创建一个python程序文件“任务二.py”,双击打开。

STEP2:安装sklearn库
(1)点击库管理

Mind+Python编程入门系列教程——11 冰淇淋销量预测图9

(2)安装sklearn库

Mind+Python编程入门系列教程——11 冰淇淋销量预测图10

STEP3:编写程序
  1. import pandas as pd#导入pandas库并用pd来表示
  2. import matplotlib.pyplot as plt#导入matplotlib库中的函数集合
  3. from sklearn.linear_model import LinearRegression#导入sklearn库中的线性回归模型
  4. icecream = pd.read_csv("icecream.csv")#导入csv格式表格数据
  5. plt.rcParams['font.sans-serif'] = ['SimHei']#设置中文字体
  6. plt.title("冰淇淋销量与气温图")#绘制标题
  7. plt.xlabel('气温')#绘制x坐标标签
  8. plt.ylabel('销售量')#绘制y坐标标签
  9. plt.scatter(icecream.iloc[:,1],icecream.iloc[:,0])#绘制散点图
  10. feature_cols = ['气温']#获取气温
  11. x = icecream[feature_cols]#设置x轴为csv表格中的气温列表
  12. y = icecream.销售量#设置y轴为csv表格中的销售量
  13. model = LinearRegression()#实例化线性回归模型,生成model模型对象
  14. model.fit(x,y)#训练并存储模型
  15. plt.plot(icecream.气温, model.predict(x) , color='blue')#绘制直线
  16. plt.show()#显示图像
  17. print("截距与斜率:",model.intercept_,model.coef_)#在终端打印截距与斜率的值
复制代码

STEP4:运行程序

(1)运行程序,我们看到,在原有的散点图上,绘制出了一条直线

Mind+Python编程入门系列教程——11 冰淇淋销量预测图11

(2)关闭图表,观察终端,显示了直线的斜率和截距

Mind+Python编程入门系列教程——11 冰淇淋销量预测图12

2、数据分析

    通过得到的斜率与截距,我们得出散点图中的线函数式为y=5.2X+57.2。

因而,当气温为25度时,预测的冰淇淋销售量为5.2*25+57.2=187.52,约188个。
当气温为35度时,预测的冰淇淋销售量为5.2*35+57.2=239.2,约239个。

Mind+Python编程入门系列教程——11 冰淇淋销量预测图13

Mind+Python编程入门系列教程——11 冰淇淋销量预测图14

五、巩固提高

项目回顾

本节课我们首先探究了温度对冰淇淋销量的影响,利用pandas、matplotlib和sklearn库将数据以图表形式呈现出来,并找到了其中的线性关系,之后通过线性关系式预测了在指定温度下冰淇淋的销售量。

知识小结
1、数据分析的理念
2、回归分析法

附录
附录1表格链接
链接:https://pan.baidu.com/s/102FG0v8s7hGOytex_4uawg
提取码:yc82

附录2
Mind+Python编程入门系列教程——11 冰淇淋销量预测图15


附件.zip

171.13 KB, 下载次数: 296

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail