Python数据化运营分析案例:销售预测

  • A+
所属分类:Python
摘要

用Python实现的数据化运营销售预测案例

1. 案例概述

案例场景:每个销售型公司都有一定的促销费用,促销费用可以带来销售量的显著提升;当给出一定的促销费用时,预计会带来多大的商品销售量?

  • 来源:生成的模拟数据,非真实数据
  • 用途:用来做第一个销售预测案例
  • 维度数量:1
  • 记录数:100
  • 字段变量:第一列是促销费用,第二列是商品销售量
  • 数据类型:全部是浮点数值型
  • 是否有缺失值:否

2. 案例过程

第一步 导入库

本案例中会使用四个库:

  • re:正则表达式,程序中通过该库来实现字符串分割。
  • numpy:数组操作和处理库,程序中用来做格式转换和预处理。
  • sklearn:算法模型库,程序中使用了线性回归方法linear_model。
  • matplotlib:图形展示库,用来在建模前做多个字段关系分析。

代码如下:

import re
import numpy
from sklearn import linear_model
from matplotlib import pyplot as plt

 

第二步 导入数据

本案例中的数据为txt文件,使用Python默认的读取文件的方法。代码如下:

fn = open('data.txt','r')
all_data = fn.readlines()
fn.close()

 

第三步 数据预处理

在本阶段,主要实现对读取的列表数据进行清洗转换,以满足数据分析展示和数据建模的需要。代码如下:

x = []
y = []
for single_data in all_data:
    tmp_data = re.split('\t|\n',single_data)
    x.append(float(tmp_data[0]))
    y.append(float(tmp_data[1]))

x = numpy.array(x).reshape([-1,1]) # 转换为N行一列的矩阵
y = numpy.array(y).reshape([-1,1]) # 转换为N行一列的矩阵

 

第四步 数据分析

到现在止我们已经拥有了格式化的数据,但到底对这两列数据集应该使用哪种模型还未可知。因此先通过散点图来观察一下。代码如下:

plt.scatter(x,y)
plt.show()

代码plt.scatter(x,y)的意思是用一个散点图来展示x和y,plt.show()的作用是展示图形。

通过散点图发现,x和y的关系呈现明显的线性关系:当x增大时,y增大;当x减小时,y减小。初步判断可以选择线性回归进行模型拟合。

第五步 数据建模

建模阶段我们使用sklearn中的线性回归模块实现,代码如下:

model = linear_model.LinearRegression()
model.fit(x, y)

 

第六步 模型评估

模型已经创建完成,本阶段进行模型拟合的校验和模型评估,代码如下:

model_coef = model.coef_
model_intercept = model.intercept_
r2 = model.score(x,y)

通过上述步骤我们可以获得线性回归方程y = model_coef*x + model_intercept,即y=2.09463661*x+13175.36904199。该回归方程的决定系数R的平方是0.78764146847589545,整体拟合效果不错。

第七步 销售预测

我们已经拥有了一个可以预测的模型,现在我们给定促销费用(x)为84610,销售预测代码如下:

new_x = 84610
pre_y = model.predict(new_x)
print (pre_y)

代码执行后,会输出[[ 190402.57234225]],这就是预测的销售量。为了符合实际销量必须是整数的特点,后续可以对该数据做四舍五入,使用round(pre_y)获得预测的整数销量。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: