zoukankan      html  css  js  c++  java
  • 使用SAP Analytics Cloud显示全球新冠肺炎确诊人数和发展趋势的预测

    注:本文只是借用新冠肺炎全球确诊人数作为历史数据,来介绍SAP Analytics Cloud基于机器学习的Time Series Forecasting功能,并没有对现实世界中新冠肺炎的发展趋势做出任何实际预测。

    Jerry之前的文章 SAP Analytics Cloud和SAP Cloud for Customer的集成 介绍过,我们最近在做一个项目,通过微信小程序在SAP Cloud for Customer里创建数据,并使用SAP Analytics Cloud对这些数据进行分析和预测。

    作为一款用于商业智能和协作式企业计划的解决方案,SAP Analytics Cloud结合了预测分析和机器学习技术的强大功能,能够帮助企业相关人员制定明智的决策,实现更卓越的业务成果。

    作为SAP Analytics Cloud的突出亮点之一,我们希望能够在项目里尝试其强大的基于机器学习的数据预测功能。SAP Analytics Cloud里基于机器学习的功能点有不少,本文先介绍从使用步骤上来说最简单的Time Series Forecasting(基于时间序列的智能预测)功能。

    该功能通俗地说,就是利用过去一段时间产生的历史数据,利用机器学习算法,预测出最近的将来可能会发生的数据。至于背后算法的原理,使用SAP Analytics Cloud的用户一般都不会去关心。

    为了体验SAP Analytics Cloud的Time Series Forecasting功能,我选择了全球新型冠状肺炎病毒逐日确诊的人数作为历史数据,并使用SAP Analytics Cloud对其增长趋势进行预测。从下载新冠肺炎确诊人数的历史数据,到最后看到预测的数据,总共耗时不超过20分钟,这说明SAP Analytics Cloud的时间序列预测功能是相当容易操作的。

    操作思路如下:

    (1) 从相关网站下载新冠肺炎确诊人数的历史数据。
    (2) 将历史数据导入SAP Analytics Cloud,创建Model.
    (3) 基于Model创建Story,在Story里创建一个Line Chart控件,使用该控件提供的Time Series Forecasting即可。

    从下面这个网站下载新冠肺炎确诊人数的历史数据:

    https://ourworldindata.org/covid-sources-comparison

    下载到本地是一个csv文件,其中有三个数据源,分别来自Johns Hopkins(美国一所常青藤大学), 世界卫生组织WHO和ECDC(欧洲疾病预防和控制中心). 我们选择其中一列即可,本文我选择Johns Hopkins提供的数据。

    从csv文件导入到SAP Analytics Cloud生成Model的步骤我就不逐一截图了:

    其间有个小问题,SAP Analytics Cloud里支持的Date类型的Dimension的格式如下:

    而csv文件导入到SAP Analytics Cloud后,日期列的格式为MMM DD, YYYY的格式,不属于SAP Analytics Cloud支持的日期格式中的任何一种,因此无法直接将这一列设置成类型为Date的Dimension.

    所以我们首先要将这一列的数据转换成SAP Analytics Cloud支持的日期格式,比如转换成DD-MM-YYYY, 即日,月和年之间用“-”分割。

    首先将原始的MMM DD,YYYY根据逗号拆分成新的三列:MMM,DD和YYYY:

    即下图的Date_3, Date_2和Date_2_2, 这三列相当于编程代码里的中间变量:

    然后再创建新的一列,编辑公式如下,将刚才生成的日,月和年三列的内容用“-”连接起来。

    CONCAT(CONCAT(CONCAT([DD],'-'),CONCAT([MMM],'-')),[YYYY])

    最后生成的经过公式计算后的列位于下图最右边,此时YYYY,MMM和DD这三列的使命已经完成,可以删除了。

    这个模型创建好之后,基于该模型创建一个Story,在空白的页面里插入一个Line Chart(线状图):

    新冠肺炎的确诊人数选择为Measure,日期选择为Dimension:

    SAP Analytics Cloud会默认将Date这个日期类型的Dimension对应的数据进行汇总(Aggregation),因此我将层级结构设置为4,这样得到的统计图表如下图所示:

    再选择Drill Down on Date,就能看到每一天的明细数据了:

    比如在3月18日这天,全球新冠肺炎的确诊人数快接近43万了。

    此时如果要查看SAP Analytics Cloud根据历史数据预测出最近的将来可能会到达的数据,只需要在Line Chart里选择Forecast->Automatic Forecast:

    预测完成,SAP Analytics Cloud将这次预测的质量评分为最高分5分,预测出了未来三天即3月19日,3月20日,3月21日的全球确诊人数。

    同样的,我们可以设置过滤器,仅仅查看SAP Analytics Cloud根据过去的历史数据,预测出某一个国家未来三天可能达到的确诊数字:

    例如,根据SAP Analytics Cloud的预测,美国的确诊人数将在3月19日这一天达到一万。

    在Forecast的高级选项里,还能切换使用其他的算法,比如Linear Regression(线性回归)和Triple Exponential Smoothing(指数平滑法)进行预测。

    关于SAP Analytics Cloud Time Series Forecasting背后使用的机器学习算法和不同的预测算法之间的区别,SAP官网上有概要介绍:

    https://www.sapanalytics.cloud/resources-your-guide-to-time-series-forecasting/

    随着Jerry项目的进行,我会继续分享在项目中学到的SAP Analytics Cloud相关知识。最后希望新冠肺炎在全球的肆虐能早日结束,大家都能回复到正常的生活工作状态中来。感谢阅读。

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    win7共享打印机如何设置,xp系统如何连接共享打印机。
    FTP服务-filezilla server 配置
    imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法
    抓取行政区域js代码
    docker 安装 yapi
    docker 搭建 zipkin
    docker 安装 mindoc
    centos 更换源以及安装软件
    springboot 服务卡死 连接池查询无响应问题解决
    -- Add the primary key as part of the CREATE TABLE statement in case `innodb_force_primary_key` is enabled by flyway
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/12591596.html
Copyright © 2011-2022 走看看