小案例(五):销量预测(python)
案件回顾
饭团销售额下滑
- 现有冰激凌店一年的历史销售数据
- 数据包括单日的销售量、气温、周几(问题:如何用这些数据预测冰激凌的销量?)
- 模拟实验与分析
将数据存储为csv格式,导入python。并画出散点图,观察气温和销售量的关系。
import pandas as pd icecream = pd.read_csv("icecream.csv") import matplotlib.pyplot as plt import pylab plt.rcParams['font.sans-serif'] = ['SimHei'] plt.scatter(icecream.iloc[:,1],icecream.iloc[:,0]) plt.xlabel("气温") plt.ylabel("销售量") pylab.show()
计算两者间的相关系数。
icecream.iloc[:,0:2].corr()
结果为:
销售量 |
气温 |
|
---|---|---|
销售量 |
1.000000 |
0.844211 |
气温 |
0.844211 |
1.000000 |
销售量和气温的相关系数为0.84,结合散点图,认为两者相关。下面用回归分析的方法,通过气温来预测冰激凌销量。
from sklearn.linear_model import LinearRegression model = LinearRegression() feature_cols = ['气温'] X = icecream[feature_cols] y = icecream.销售量 model.fit(X,y) plt.scatter(icecream.气温, icecream.销售量) plt.plot(icecream.气温, model.predict(X) , color='blue') plt.xlabel('气温') plt.ylabel('销售量') plt.show() print("截距与斜率:",model.intercept_,model.coef_)
截距与斜率: 57.1673282152 [ 5.21607823]
于是,散点图中的线函数式为y=5.2X+57.2。所以,当气温为25度时,预测的销售量为5.2*25+57.2=187.52,约188个。
- 几个小概念
回归分析:预测数据时的简便手法。在此例中,销售量为反应变量,也叫因变量,气温为解释变量,也叫自变量。虽然影响销售量的因素除了气温外还有很多,但回归分析中我们要把现实情况简化并公式化,这个过程叫做建模。本例中只用1个解释变量进行模型化称为一元线性回归,如果反应变量同时受到多个解释变量的影响,称为多元线性回归。
后台回复“冰激凌”,可获得本例中数据
机器学习养成记
- win7下安装、使用jBuiler2006
- 又到年底了,明年该学点啥呢?
- oracle:wm_concat函数与oracle版本
- jQuery:delegate中select()不起作用的解决方法
- Casper系列02——Casper 数据结构与投注出块
- Silverlight:用Enter键替换Tab键切换焦点
- RDLC报表多条件分组
- tomcat 新手上路
- haXe下体验jQuery
- silverlight:如何在后端代码中控制Behaviors
- silverlight:ScrollViewer的各种高度研究
- 主题建设之主题表
- mysql:索引原理与慢查询优化
- Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CNS图表复现07—原来这篇文章有两个单细胞表达矩阵
- CentOS 7.x 安装 ZSH 终端的配置方法
- centos7 安装mysql和mysqlclient遇到的坑总结
- iOS音视频接入- TRTC计费及套餐介绍
- Linux简介及最常用命令(简单易学,但能解决95%以上的问题)
- Linux一行命令处理批量文件详解
- Linux中jar包启动和jar包后台运行的实现方式
- Linux下实现不活动用户登录超时后自动登出
- Centos7下nginx的安装与配置教程详解
- Linux上进行常用软件的配置方法
- Ubuntu系统下网络配置文件解析与说明
- 详解Centos7扩展磁盘空间(LVM管理)
- 设置ssh无密码登录linux服务器的方法
- linux特殊字符及其作用大全
- CentOS7搭建gerrit 代码审查服务方法