首页 > 其他 > 详细

拟合天猫双十一销售额

时间:2019-11-15 11:48:32      阅读:89      评论:0      收藏:0      [点我收藏+]
最近看到新闻双十一销售额的新闻,这边拟合一下。


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 ]

和今年的销售额还真挺接近的。

  

 

拟合天猫双十一销售额

原文:https://www.cnblogs.com/aichiladeyu/p/11864964.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!