数据库和AI的一次火花

欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~git

本文由宗文 发表于云+社区专栏github

| 导语 经过历史数据,基于时间序列来预测将来。数据库

咱们生活中不少数据是有时间维度的。好比说天气或者股票价格。对于这种带有时序的数据,有一种基于时间序列的预测模型---Prophet。微信

github.com/facebook/pr…架构

上面是项目的地址,须要的小伙伴能够去上面一看究竟。而我主要作的是经过该模型来预测腾讯云数据库存储量变化的将来趋势。下来就来看看Prophet的强大之处吧。less

前面说到Prophet是基于时间序列的模型,因此说时间是里面最重要的一个维度(若是您须要预测本身的数据,那么必须是pandas固定的时间格式)。如今就开始直接看下结果吧。函数

img

纵轴是腾讯云某类型数据库的购买总量,能够看到随着时间的增加,数据库的购买总量仍是在不断增加的。而Prophet所要作的就是根据数据的历史表现来估计数据将来的走势。实验中我选取了2018年1月到6月的数据做为测试集。黑点为真实值,蓝色区域为模型预测的估计值,能够看到随着时间的推移,整体估计容量的趋势是增加的,可是随着时间的推移,不肯定性区域愈来愈大(图中蓝色区域),也能够认为是随着时间的推移,不肯定性愈来愈大。下面来看看真实值与模型预测值是否准确:测试

img

图中6月份之后的数值是对模型的测试集,红色区域就是模型未见过的数值与估计值的相对状况。能够明显的看到,该模型估计仍是至关准确的呀。可能有不少小伙伴要问了,为啥4月末会出现一个阶段式的跳跃呢?就是咱们腾讯云的一个大客户拼多多最近有比较大的手笔。ui

固然该模型不只仅能够估计进几个月,也能够估计更长的时间,可是随着时间的推移,可能就更不许确了。cdn

重点就是来了!!!

这东西就是预测一个容量那么简单么?

固然不是了。。主要分两大方面:

1.能够为咱们本身提供服务:

(1).能够为咱们提供潜在客户的估计。(好比明显能够看到某个公司近几个月飞速购买数据库服务,可是该公司不是咱们的大客户。因此很难经过简单的容量排行榜找到他。可是Prophet能够估计出谁可能在后面变成大客户,这样就能够告诉架构师谁是咱们的潜在客户。)

(2).还能够经过对咱们数据库的总量或者单个客户的数据库总量进行估计,告诉大概何时客户须要扩容了,让咱们对本身的服务有更好的准备。

2.咱们也能够为咱们的客户服务:

(1).客户能够经过对自习所选的维度进行分析,至关于一个saas服务。

(2).客户还能够对本身所买的CVM相关的用量进行分析,以便选择最合理的配置。

最后简单说下模型内部结构。

Prophet是一个累加回归模型(additiveregressionmodel)模型的总体构建以下:

y(t) = g(t)+s(t)+h(t)+et

主要有三部分组成:growth(增加趋势)、seasonality(季节趋势)以及holidays(节假日对预测值的影响)。其中g(t)表示增加函数,用来拟合时间序列中预测值的非周期变化。用分段线性或逻辑增加曲线拟合的趋势成分。Prophet会从数据中找出转折点,自动检测趋势变化s(t)用来表示周期性变化,好比每周、每一年中的季节等。用傅里叶级数建模的季节成分,以年为单位。用虚拟变量表示的季节成分,以周为单位h(t)表示时间序列中那些潜在的具备非固定周期的节假日对预测值形成的影响。et为噪声项。

问答

云数据库问题?

相关阅读

彭磊:TencentHub的架构实现

微信公众号迁移Serverless详解

如何使用StreamSets实现MySQL中变化数据实时写入HBase

此文已由做者受权腾讯云+社区发布,原文连接:https://cloud.tencent.com/developer/article/1155229?fromSource=waitui

欢迎你们前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

海量技术实践经验,尽在云加社区