历年销量可视化
导包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
生成对应的年份和销量
#arange(start,stop,step)根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。
years = np.arange(2009,2020)
years
sales = np.array([0.5,9.36,52,191,352,571,912,1208,1682.69,2135,2684])
# 科学计数法
sales
绘制图像
#区别:scatter绘制散点,plot绘制经过点的曲线。
plt.plot(years,sales,'bo')
plt.scatter(years,sales,marker = '*')
预测2020年数据
导包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#LinearRegression 线性回归
from sklearn.linear_model import LinearRegression
数据
years = np.arange(2009,2020)
sales = np.array([0.5,9.36,52,191,352,571,912,1208,1682.69,2135,2684])
# 科学技术法
display(years,sales)
特征工程
# 特征工程,将年数据使用1~ 11替代,年、数据的特征就更加明显
#reshape() 用于改变数组的形状。
X = (years - 2008).reshape(-1,1)
X
y = sales
y
#concatenate()函数根据指定的维度,对一个元组、列表中的list或者ndarray进行连接
X = np.concatenate([X**3,X**2,X],axis = -1)
X
训练模型
lr = LinearRegression()
# 训练,算法进行学习
lr.fit(X,y)
# 方程有系数
lr.coef_
#array([ 0.12528749, 27.95341492, -83.87369075])
# 方程有截距
lr.intercept_
#58.45757575757489
预测
plt.plot(years - 2008,y,'ro')
# 匿名函数
f = lambda x : 0.1252*x**3 + 27.9534*x**2 - 83.8736*x + 58.4578
# 11 代表2019年
# 2020年 12
#numpy.linspace(start, stop, num=50) 在指定的间隔内返回均匀间隔的数字。
x = np.linspace(1,11,100)
plt.plot(x,f(x),c = 'green')
# 计算2020年天猫双十一的销量
result_2020 = f(12)
print('天猫双十一2020年预测的销量:',result_2020)
#天猫双十一2020年预测的销量: 3293.6098
你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步