当前位置: 首页 > news >正文

政府网站信息发布建设方案网络推广官网首页

政府网站信息发布建设方案,网络推广官网首页,龙岩b2b网页制作,wordpress怎么转移Datawhale干货 作者:戳戳龍,上海交通大学,量化算法工程师前言🔴 平时工作中每天都在和时间序列打交道,对时间序列分析进行研究是有必要的🟡 分享和交流一些自己的在时序处理方面的心得,提供一…

 Datawhale干货 

作者:戳戳龍,上海交通大学,量化算法工程师

前言


🔴  平时工作中每天都在和时间序列打交道,对时间序列分析进行研究是有必要的

🟡  分享和交流一些自己的在时序处理方面的心得,提供一些思路

🟢  介绍时序的发展情况,以及目前业界常用的方法

🔵  代码希望能模板化,能直接复制过去使用

时序方法发展


331439daedb9312061b56fe010d68257.png2f02d68d3cc14011153979357a18c59d.png

时间序列特征


📌series = trend + seasons + dependence+ error

趋势

📌 时间序列的趋势分量表示该序列均值持续的、长期的变化

a1e8200a6b0fb4e2dc30ff4fa83ac8d3.gifa0f779dcbe11fb67be8344dc364e802f.png
Df['ma20'] = Df['amt'].rolling(20).mean()

周期性(季节性)

8958ea5acd0f88532815af26741b57a3.png

季节时序图

def plot_season(Df):df = Df.copy()# 计算每周属于哪一年df['year'] = df['date'].dt.year# 计算每周为一年当中的第几周df['week_of_year'] = df['date'].dt.weekofyearfor year in df['year'].unique():tmp_df = df[df['year'] == year]plt.plot(tmp_df['week_of_year'], tmp_df['amt'], '.-', label=str(year))plt.legend()plt.show()
b0c9f75c59bbddb78f4bf231fb754d06.png

周期判断

📌如果每隔h个单位,ACF值有一个局部高峰,则数据存在以h为单位的周期性

from  statsmodels.graphics.tsaplots import plot_acf
plot_acf(Df['amt'], lags=500).show()
539338004ed7f52993b72d0fecf07822.png

自相关性

自相关

📌自相关函数 autocorrelation function 有序的随机变量序列与其自身相比较 自相关函数反映了同一序列在不同时序的取值之间的相关性

from statsmodels.graphics.tsaplots import plot_acf
_ = plot_acf(Df['amt'], lags=50)
cf022e4eafbb05a31502776682969a37.png61f1f20a7a538a583ff48d2aa33743ef.png

偏自相关

from statsmodels.graphics.tsaplots import plot_pacfplot_pacf(Df['amt'], lags=5)
3fceb93967d0d82904c389fab723403f.png

残差

  • 外部变量

  • 残差

Prophet

📌官方文档:https://facebook.github.io/prophet/docs/quick_start.html#python-api

原理

模型结构

📌模型结构——关于时间的广义线性模型

  • g(t):trend,用分段线性函数或逻辑增长曲线(logistic)拟合

  • s(t):seasonality,用傅里叶级数拟合。可以叠加多个季节性,如weekly,yearly (s = s1+s2……

  • h(t):regressor,用线性函数拟合。可以叠加多个外部变量,如节假日、温度、活动(h = h1+h2+……

  • :模型残差 不用拟合

  • 以上方程也可以写成乘法形式:

    • 乘法形式和加法形式可以相互转换,乘法形式两边取对数就是加法形式

b295179ed480eac742212b3404b46ce7.png

趋势

分段线性函数

📌线性趋势函数

分段线性趋势函数

  • 超参数,由用户给出

    • 分几段

  • 参数,根据历史数据拟合

    • k:曲线增长速率

    • m:曲线的截距

逻辑增长曲线

7220d60a23d701df84f5c6b5fd2deeb7.png

💚函数展示:https://www.desmos.com/calculator/8pnqou9ojy?lang=zh-CN

  • 超参数

    • C:渐近线

    • 一共分几段

  • 参数

    • k:曲线增长速率

    • m:拐点对应时间

周期性

📌任何周期性函数都可以表示成傅里叶级数

  • 超参数:由用户给定

    周期长度,常见的周期有、

    傅里叶级数的阶数,越大,季节性曲线波动越大,越容易过拟合

  • 参数:由历史数据拟合

    、系数

🔴 函数展示:(https://www.desmos.com/calculator/5prck2beq1?lang=zh-CN

9330927c399ab67814eb8f7ae0d8c063.png

外部因素

  • : 模型输入, 外部因素在时刻的取值

    Z可以是0-1变量 (e.g.是否是法定假日,是否是春节,是否有促销)

    也可以是连续变量 (e.g.产品价格, 温度,降雨量)

  • :线性回归系数

算法流程

b01a4b542ac360aad7127cbeda0d0372.png0b5f8dbdd062c59d12d0f48f5b10dad4.png

1️⃣ 先设定表达式(超参数)

2️⃣ 根据训练集数据求解参数

实践

发电耗煤预测

df_train = Df[ (Df['date']<'2022-01-01') & (Df['date']>='2018-01-01') ]
df_test =  Df[ (Df['date']>='2022-01-01')]
def FB(data):df = pd.DataFrame({'ds': data.date,'y': data.amt,})
#     df['cap'] = data.amt.values.max()
#     df['floor'] = data.amt.values.min()m = prophet.Prophet(changepoint_prior_scale=0.05, daily_seasonality=False,yearly_seasonality=True, #年周期性weekly_seasonality=True, #周周期性
#         growth="logistic",)m.add_seasonality(name='monthly', period=30.5, fourier_order=5, prior_scale=0.1)#月周期性m.add_country_holidays(country_name='CN')#中国所有的节假日    m.fit(df)future = m.make_future_dataframe(periods=30, freq='D')#预测时长
#     future['cap'] = data.amt.values.max()
#     future['floor'] = data.amt.values.min()forecast = m.predict(future)fig = m.plot_components(forecast)fig1 = m.plot(forecast)a = add_changepoints_to_plot(fig1.gca(), m, forecast)return forecast,m
forecast,m = FB(df_train)
48614204859d215aaf1f4259fa5851df.pngac04d8c50ce47480f2f93e0ae25b6594.png5efd5e6135eaae78959f2abedd2ddb95.png
def FPPredict(data,m):df = pd.DataFrame({'ds': data.date,'y': data.amt,})df_predict = m.predict(df)df['yhat'] = df_predict['yhat'].valuesdf = df.set_index('ds')df.plot()return df
df = FPPredict(df_test.tail(200),m)
b852a68eed351d48642f3bfa36d1d6ed.png

申购赎回金额预测

kaggle notebook[1]

Purchase Redemption Data.zip

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import prophet
from prophet.diagnostics import cross_validation
from prophet.diagnostics import performance_metrics
from prophet.plot import plot_cross_validation_metric
import warnings
warnings.filterwarnings('ignore')
data_user = pd.read_csv('../input/purchase-redemption/Purchase Redemption Data/user_balance_table.csv')
data_user['report_date'] = pd.to_datetime(data_user['report_date'], format='%Y%m%d')
data_user.head()
data_user_byday = data_user.groupby(['report_date'])['total_purchase_amt','total_redeem_amt'].sum().sort_values(['report_date']).reset_index()
data_user_byday.head()

申购

#定义模型
def FB(data: pd.DataFrame):df = pd.DataFrame({'ds': data.report_date,'y': data.total_purchase_amt,})
#     df['cap'] = data.total_purchase_amt.values.max()
#     df['floor'] = data.total_purchase_amt.values.min()m = prophet.Prophet(changepoint_prior_scale=0.05, daily_seasonality=False,yearly_seasonality=True, #年周期性weekly_seasonality=True, #周周期性
#         growth="logistic",)
#     m.add_seasonality(name='monthly', period=30.5, fourier_order=5, prior_scale=0.1)#月周期性m.add_country_holidays(country_name='CN')#中国所有的节假日    m.fit(df)future = m.make_future_dataframe(periods=30, freq='D')#预测时长
#     future['cap'] = data.total_purchase_amt.values.max()
#     future['floor'] = data.total_purchase_amt.values.min()forecast = m.predict(future)fig = m.plot_components(forecast)fig1 = m.plot(forecast)return forecast,m
result_purchase,purchase_model = FB(data_user_byday.iloc[:-30])
01ec50e217c0466a46301abe5676dfa7.png4ebae825960b9880bca4d3443df04782.png
def FPPredict(data,m):df = pd.DataFrame({'ds': data.report_date,'y': data.total_purchase_amt,})
#     df['cap'] = data.total_purchase_amt.values.max()
#     df['floor'] = data.total_purchase_amt.values.min()df_predict = m.predict(df)df['yhat'] = df_predict['yhat'].valuesdf = df.set_index('ds')df.plot()return df
purchase_df = FPPredict(data_user_byday.iloc[-30:],purchase_model)
e8595e90936fddeb2ecc8980bc4e08b8.png

赎回

#定义模型
def FB(data: pd.DataFrame):df = pd.DataFrame({'ds': data.report_date,'y': data.total_redeem_amt,})df['cap'] = data.total_purchase_amt.values.max()df['floor'] = data.total_purchase_amt.values.min()m = prophet.Prophet(changepoint_prior_scale=0.05, daily_seasonality=False,yearly_seasonality=True, #年周期性weekly_seasonality=True, #周周期性growth="logistic",)
#     m.add_seasonality(name='monthly', period=30.5, fourier_order=5, prior_scale=0.1)#月周期性m.add_country_holidays(country_name='CN')#中国所有的节假日    m.fit(df)future = m.make_future_dataframe(periods=30, freq='D')#预测时长future['cap'] = data.total_purchase_amt.values.max()future['floor'] = data.total_purchase_amt.values.min()forecast = m.predict(future)fig = m.plot_components(forecast)fig1 = m.plot(forecast)return forecast
result_redeem = FB(data_user_byday)
29ea2fac1e7bd3a531bbdd2d9a4eab9e.pngaecb97951668889ffbd42ed80b1f776e.png

Bonus 时间序列特征工程

https://www.heywhale.com/mw/project/63904f5658e3bea6a3e52800

EDA

import sweetviz as svdef eda(df, name, target=None):sweet_report = sv.analyze(df, target_feat=target)sweet_report.show_html(f'{name}.html')def eda_compare(df1, df2, name, feature, target):feature_config = sv.FeatureConfig(force_text=feature, force_cat=feature)sweet_report = sv.compare(df1, df2, feat_cfg=feature_config, target_feat=target)sweet_report.show_html(f'{name}_compare.html')

完整版请访问:https://www.wolai.com/stupidccl/5dqha79nnrPMf5xTAs6jUu

参考资料

[1]

kaggle notebook: https://www.kaggle.com/code/stupidccl/time-serious-analysis-1/edit/run/107631286

bd8a195f0ef46a06e24bc706f3f64e95.png

干货学习,三连

http://www.khdw.cn/news/5974.html

相关文章:

  • 大良网站建设价位郑州竞价托管
  • 免费的在线学习网站流量查询网站
  • 专门做狗猫配套网站有什么意思一天赚2000加微信
  • 新网站备案查询宁德市政府
  • 做玩游戏任务得q币的网站软文街怎么样
  • 全国网站建设人员数量无锡营销型网站制作
  • 新网站建设咨询百度关键词检测工具
  • 把里面的dede和plugins这2个文件夹覆盖到你的网站根目录百度搜索智能精选
  • 如何在网盘上做网站网站软件下载
  • 前台网站开发千峰培训出来好就业吗
  • 免费手机网站开发谷歌seo引擎优化
  • 一个公司做两个网站的好处网店运营的工作内容
  • 精品课程网站建设摘要国外推广渠道平台
  • 温州网络科技技术有限公司百度seo优化服务
  • 网站中英文互译 java怎么做加强服务保障满足群众急需i
  • 河南网站推广优化推广文案怎么写
  • 在国外做盗版电影网站吗推广营销
  • 公主岭网站建设规划全国十大跨境电商排名
  • 自己做网站需要花钱吗怎么做网络销售
  • 珠海市建设工程质量监督检测站网站创建自己的网站
  • 珠海横琴建设局网站seo提升关键词排名
  • 网站访问速度 云组机富阳网站seo价格
  • 用dw制作视频网站优化防控举措
  • 重庆网站建设沛宣惠州seo计费管理
  • 给一个企业做网站抖音关键词排名查询工具
  • 广州做网站优化公司报价怎样创建自己的电商平台
  • 设计网页的心得体会最专业的seo公司
  • 名字设计网站澳门seo关键词排名
  • 美国圣经建设网站商丘seo公司
  • 如何复制网站模板二级子域名ip地址查询