首页 > 其他分享 >Power BI 实现未来几年天猫双十一销售额预测

Power BI 实现未来几年天猫双十一销售额预测

时间:2023-03-19 20:32:24浏览次数:36  
标签:real plt Power BI 天猫 m1 m3 m2 data

我们用 Power BI 实现未来几年天猫双十一销售额预测,基于三次方程进行训练和预测。三次方程的公式如下:


Power BI 实现未来几年天猫双十一销售额预测_数据




1. 2022年双十一预测值分布图



基于三次方程预测2022年双十一销售额为7345亿。


Power BI 实现未来几年天猫双十一销售额预测_Power bi_02




2. 2022年双十一预测值代码




# 使用import导入numpy和matplotlib.pyplot库

import numpy as np

import matplotlib.pyplot as plt

# 定义一个一维数组data导入年份 销售额

data = np.array([[9,0.5],[10,9.36],[11,52],[12,191],[13,350],[14,571],[15,912],

[16,1207],[17,1682],[18,2135],[19,2684],[20,4982],[21,5403],])

# 将所有数据绘制出来

plt.scatter(data[:, 0], data[:, 1], c="r")

#plt.show()

#引入库sympy的变量与函数

from sympy import *

#通过库中的symbols()函数创建参数变量

m1,m2, m3 ,b = symbols ( 'm1,m2,m3,b' )

init_printing(pretty_print=True)

x_i,real_i,i = symbols("x_i,real_i,i")

#定义上面公式​   

MSE = Sum((m1*x_i**3 + m2*x_i**2 + m3*x_i + b - real_i)**2,(i,2009,2021))

MSE

#初始化参数

m1,m2,m3,b = 1,1,1,1

learning_rate = 0.000000001

def gradientdecent():

global m1, m2, m3, b

m1slop , m2slop, m3slop , bslop = 0, 0, 0, 0

mse = 0

#计算导数

for x,real in data:

# b+m1x3i+m2x2i+m3xi-reali

mse += (b+m1*x**3 + m2*x**2 + m3*x - real)**2

# 2x3i(b+m1x3i+m2x2i+m3xi-reali)

m1slop += 2*x**3*(b + m1*x**3 + m2*x**2 + m3**x -real)

m2slop += 2*x**2*(b + m1*x**3 + m2*x**2 + m3**x - real)

m3slop += 2*x**1*(b + m1*x**3 + m2*x**2 + m3**x - real)

bslop += 2*(b + m1*x**3 + m2*x**2 + m3**x - real)

#更新参数

m1 = m1 - m1slop*learning_rate

m2 = m2 - m2slop*learning_rate

m3 = m3 - m3slop*learning_rate

b = b - bslop*learning_rate

#使用循环,进行梯度下降,找到最优的4个参数

np.set_printoptions(suppress=True)

for i in range(100000):

mse = gradientdecent()

if i%100000 == 0:

print("m1={},m2={},m3={} ,b={} , mse={}".format(m1,m2,m3,b,mse))

#预测y = m1*x 3 + m2*x~2 + m3*x + b

year = 22

result = m1*year**3 + m2 * year**2 + m3*year + b

print("预测2022年天猫双十一的销售额:",result)

#历史数据

plt.scatter(data[:,0],data[:,1])

# 预测数据

plt.scatter(year, result ,c="red")

#绘制曲线

x = np.linspace(9,25,25-9+1)

y = m1*x**3 + m2 * x**2 + m3*x + b

plt.plot(x,y,c="g")

#把曲线上的点显示出数字

for a,b in zip(x,y):

plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11)

for a,b in zip(x,y):

plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11)

#将以上处理后的数据在PowerBI上展示出来

plt.show()

预测2022年双十一销售额为7345亿。​




3. 设计界面展示



Power BI 实现未来几年天猫双十一销售额预测_数据_03


标签:real,plt,Power,BI,天猫,m1,m3,m2,data
From: https://blog.51cto.com/lihuansong/6131333

相关文章

  • Rabbitmq
    一、消息队列的概念及应用场景什么是消息队列消息是在不同应用间传递的数据。这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象。消息队列(Messa......
  • PowerShell学习
    人的大脑一次只能理解有限的信息,通过将PowerShell分解为小的片段,你实际上可以更快、更彻底地学习PowerShell。重音符(`)在美式键盘中,重音符(或者称为沉音符)通常位于键盘......
  • WebDataBinder与HttpMessageConverter
    HttpMessageConverter​​HttpMessageConverter<T>​​是Spring3.0新添加的一个接口,负责将请求信息转换为一个对象(类型为T),将对象(类型为T)输出为响应信息//指定转换器可......
  • WebDataBinder、ServletRequestDataBinder、WebBindingInitializer
    前言上篇文章聊了​​DataBinder​​,这篇文章继续聊聊实际应用中的数据绑定主菜:​​WebDataBinder​​。在上文的基础上,我们先来看看​​DataBinder​​它的继承树:从继承......
  • DataBinder
    前言数据绑定这个概念在任何一个成型的框架中都是特别重要的(尤其是web框架),它能让框架更多的自动化,更好容错性以及更高的编码效率。它提供的能力是:把字符串形式的参数转换成......
  • Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file,Bitmap
    file转bitmapFileparam=newFile();Bitmapbitmap=BitmapFactory.decodeFile(param.getPath());drawable转bitmapBitmapbmp=BitmapFactory.decodeResource(getR......
  • 大数运算(BigInteger)与进制转换
    1前言Java提供了BigInteger(大整数)类和BigDecimal(大浮点数)类用于大数运算,这两个类都继承自Number类(抽象类)。由于BigInteger在大数运算中更常见,本博客只介绍BigInt......
  • 【RabbitMQ消息中间件】12.RabbitMQ结合SSM框架-编写仓储系统
    了解了RabbitMQ的基本知识和几大队列模式,以及Spring-Rabbit开源工程的基本原理后,我们动手来实现在实际工作开发中需要与SSM框架结合使用的工程场景。该......
  • 【RabbitMQ消息中间件】11.持久化和非持久化队列
    上一篇介绍并搭建了Spring-Rabbit工程,并且创建了一个名为MyQueue的队列。下面补充一个有关持久化和非持久化队列的知识点。登录RabbitMQ的图形化管理界......
  • 【RabbitMQ消息中间件】9.通配符模式
    之前我们讲解了简单队列、work模式、订阅模式、路由模式,本篇我们讲解RabbitMQ的最后一种模式,叫“通配符模式”。通配符交换机的通信机制如下所示:记得上......