拟合历年双十一天猫销售额

最近很火的新闻说天猫双十一销售额有猫腻,特来拟合一下历年数据。

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# 自定义函数 e指数形式
# def func(x, a, b,c):
#     return a*np.sqrt(x)*(b*np.square(x)+c)

# 三次曲线方程
def f_3(x, A, B, C, D):
    return A * x * x * x + B * x * x + C * x + D

# 定义x、y散点坐标
x = [i+1 for i in range(10)]
x = np.array(x)
num = [0.5, 9.36, 52, 191, 350, 571, 912, 1207, 1682.69, 2135.00]
y = np.array(num)

# 非线性最小二乘法拟合
popt, pcov = curve_fit(f_3, x, y)
print('拟合误差为:{}'.format(pcov))
#获取popt里面是拟合系数
a = popt[0]
b = popt[1]
c = popt[2]
d = popt[3]
yvals = f_3(x,a,b,c, d) # 拟合y值
print('popt:', popt)
print('系数a:', a)
print('系数b:', b)
print('系数c:', c)
print('系数pcov:', pcov)
print('系数yvals:', yvals)

#绘图
plot1 = plt.plot(x, y, 's',label='original values')
plot2 = plt.plot(x, yvals, 'r',label='polyfit values')
plt.xlabel('x')
plt.ylabel('y')
plt.legend(loc=4) #指定legend的位置右下角
plt.title('curve_fit')
plt.show()

x is :
[ 1 2 3 4 5 6 7 8 9 10]
y is :
[5.00000e-01 9.36000e+00 5.20000e+01 1.91000e+02 3.50000e+02 5.71000e+02
9.12000e+02 1.20700e+03 1.68269e+03 2.13500e+03]
f1 is :
[ 0.15430847 27.54898601 -82.43744367 57.14666667]
p1 is :
3 2
0.1543 x + 27.55 x - 82.44 x + 57.15
预测值为:2689.1466666666643
yvals is :
[ 2.41251748 3.70219114 61.94153846 178.05641026 352.97265734
587.61613054 882.91268065 1239.78815851 1659.16841492 2141.9793007 ]

看来还真挺接近的。
2019天猫双十一成交额

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值