5.7 对接R语言

SaCa DataViz支持结合R脚本进行数据计算的功能。针对一些业务场景问题,可使用DataViz进行R脚本算法计算来进行解决。R的安装与部署以及Rserve的连接,参考第2章内容。
在SaCa DataViz中提供了部分R脚本算法数据计算的示例,包括:数值计算、字符串计算、时序预测、聚类分析和回归分析。

5.7.1 R脚本的算法对接与实现

5.7.1.1 数值计算

using_R_script_algorithm/1

图1-1 数值计算后的折线图

using_R_script_algorithm/2

图1-2 数值计算的R脚本

如图1-1所示,是数值计算后的折线图,其中红色折线中的数值数据是在编辑字段“计算订单金额”中进行R脚本计算得到的,R脚本内容如图1-2所示。 图1-2中的具体R脚本内容如下所示,是对订单金额乘以2倍,然后使用线性回归进行简单拟合,并返回拟合结果。

using_R_script_algorithm/20

该脚本内容中,使用SCRIPT_NUMBER函数作为R脚本关键字(红色内容); R语言脚本的输入数据要定义成变量,赋值内容要符合SQL脚本语法,赋值使用”=”,该变量可在后续计算使用(蓝色内容); 不同语句之间使用回车换行分隔; 计算结果要返回单个向量数组的数值变量(绿色内容);其余部分可使用R语言进行程序设计(黑色内容)。

5.7.1.2 字符串计算

using_R_script_algorithm/3

图2-1字符串计算后的折线图

using_R_script_algorithm/4

图2-2 字符串计算的R脚本

如图2-1所示,是字符串计算后的柱状图,其中维度(分类轴)中的字符串数据是在编辑字段“地区(字符串计算)”中进行R脚本计算得到的,R脚本内容如图2-2所示。 图2-2中的具体R脚本内容如下所示,是对维度字段的地区和省份进行字符串拼接的功能,并返回拼接后的字符串结果。

using_R_script_algorithm/21

该脚本内容中,使用SCRIPT_STR函数作为R脚本关键字(红色内容); R语言脚本的输入数据要定义成变量,且赋值内容要符合SQL脚本语法,赋值使用”=”,该变量可在后续计算使用(蓝色内容); 不同语句之间使用回车换行分隔; 计算结果要返回单个向量数组变量(绿色内容);其余部分可使用R语言进行程序设计。

5.7.1.3 时序预测

时序预测是数值计算的一种,因此时序预测脚本的内容符合数值计算R脚本的定义。另外,进行时序预测时,需要拖拽入时间字段到维度中。

5.7.1.3.1 业务场景

在财务领域,根据往年的成本支出情况,时序预测可以被用来预测未来几年(一段时间)的成本支出是多少。在销售领域,已知各年销售额,时序预测可以被用来预测未来几年(一段时间)的销售额是多少。

5.7.1.3.2 销售额的ARIMA模型分析

using_R_script_algorithm/5

图3-1 销售额的年时序预测

using_R_script_algorithm/6

图3-2 年时序预测的脚本

如图3-1所示,是销售额年时序预测的折线图,红色框内是预测的未来五年销售额趋势。操作的过程是:

(1)选中折线图;
(2)向“数据值”区域拖入“销售额”字段,向“分类轴”区域拖入“销售日期”字段,从而绘制出折线图;
(3)对“销售额”字段进行编辑字段的操作,在编辑字段页面中编写ARIMA模型分析的脚本内容后,点击确定,进行预测计算,得到预测结果的折线图。
(4)再拖入“销售额”的数据字段,可区分的显示出预测数据。

如图3-2所示,是编辑字段中ARIMA模型的脚本内容,具体内容如下所示。

using_R_script_algorithm/15

该脚本内容中,除红色内容外的其他内容,都遵循着数值计算中的脚本定义规则;但其中的蓝色内容${5}$表示预测未来的时间段长度;在红色内容中包括了:构建时序数据、引入预测包、训练ARIMA模型、使用ARIMA模型进行未来5年的预测以及返回原始数据与预测新数据的数值向量

5.7.1.3.3 财务成本的时间序列平滑预测

using_R_script_algorithm/7

图3-3 财务成本的月时序预测

using_R_script_algorithm/8

图3-4 月时序预测的脚本

如图3-3所示,是财务成本月时序预测的折线图,红色框内是预测的未来五个月财务成本趋势。操作的过程是:

(1)选中折线图;
(2)向“数据值”区域拖入“财务成本”字段,向“分类轴”区域拖入“日期”字段,从而绘制出折线图;
(3)对“财务成本”字段进行编辑字段的操作,在编辑字段页面中编写平滑预测的脚本内容后,点击确定,进行预测计算,得到预测结果的折线图。
(4)再拖入“财务成本”的数据字段,可区分的显示出预测数据。

如图3-4所示,是编辑字段中平滑预测的脚本内容,具体内容如下所示。

using_R_script_algorithm/15

该脚本内容中,除红色内容外的其他内容,都遵循着数值计算中的脚本定义规则;但其中的蓝色内容${5}$表示预测未来的时间段长度;在红色内容中包括了:构建时序数据、引入预测包、训练平滑预测模型、使用平滑预测模型进行未来5个月的预测以及返回原始数据与预测新数据的数值向量。

5.7.1.3.4 订单数量的季节变动预测

using_R_script_algorithm/9

图3-5 订单数量的季节变动预测

using_R_script_algorithm/10

图3-6 季节变动预测的脚本

如图3-5和图3-6所示,是订单数量季节变动预测的折线图展示和季节变动脚本的实现。操作过程与前两个方法相同。

同时,为了更好的使用DataViz中时间维度层次的上卷下钻的功能或者对输入数据需要做其他的处理,可以在R脚本中对时间数据进行预处理(红色内容),从而更灵活地使用时序数据。

using_R_script_algorithm/17

5.7.1.4 聚类分析

5.7.1.4.1 业务场景

在商业领域,聚类分析可以被用来发现不同的客户群,并分组聚类出相似客户,分析刻画不同的客户群的特征,来更好的了解客户。在人力资源方面,可根据简历中包含的字段,如学历、公司规模、薪水、职位名称等,通过聚类分组,挖掘出简历与职位的规律,从而快速有效的找到匹配的员工。 为了帮助用户在DataViz中更好理解和使用聚类分析功能,这里使用聚类分析常用的经典鸢尾花数据集。

5.7.1.4.2 鸢尾花数据集

如下表所示,包含4个独立的属性,这些属性变量(花萼长度、花萼宽度、花瓣长度、 花瓣宽度)描绘出了鸢尾花的种类。

花萼长度 花萼宽度 花瓣长度 花瓣宽度
5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2

5.7.1.4.3 聚类分析的实现

using_R_script_algorithm/11

图4-1 鸢尾花类别的聚类分析

using_R_script_algorithm/12

图4-2 聚类分析的脚本

如图4-1所示,是鸢尾花类别聚类分析的散点图,其中显示的数据根据图例计算结果分成了三种颜色类别。操作的过程是:

(1)选中散点图;
(2)向“X轴”区域拖入“花瓣长度”字段,向“Y轴”区域拖入“花瓣宽度”字段,从而绘制出散点图;
(3)向“图例”区域拖“类别”字段(其他字段也可以),对“类别”字段进行编辑字段的操作,在编辑字段页面中编写聚类分析的脚本内容后,点击确定,进行聚类结果计算,得到聚类结果的散点图。

如图4-2所示,是编辑字段中聚类分析的脚本内容,具体内容如下所示。

using_R_script_algorithm/18

该脚本内容中,蓝色内容是输入的鸢尾花数据,红色内容是聚类分析的实现,最后返回了聚类结果的字符串数据。

5.7.1.5 回归分析

5.7.1.5.1 业务场景

在商业领域,以买家和卖家的数据为依据,希望知道某商品销售需求量的趋势情况。可以用回归方法描述商品需求的变动规律,对未来的销售需求量进行趋势分析。

5.7.1.5.2 回归分析的实现

using_R_script_algorithm/13

图5-1 散点图的回归分析

using_R_script_algorithm/14

图5-2 回归分析的脚本

如图5-1所示,是散点图上的回归分析,其中红色的曲线是整个散点的趋势情况。操作的过程是:
(1)选中散点图;
(2)向“X轴”区域拖入“花瓣长度”字段,向“Y轴”区域拖入“花瓣宽度”字段,从而绘制出散点图;
(3)向“回归线”区域拖“花瓣宽度”字段(其他字段也可以),对“花瓣宽度”字段进行编辑字段的操作,在编辑字段页面中编写回归曲线的脚本内容后,点击确定,进行结果计算,得到回归曲线的散点图。

如图5-2所示,是编辑字段中回归曲线的脚本内容,具体内容如下所示。

using_R_script_algorithm/19

该脚本内容中,蓝色内容是输入的花瓣数据,红色内容是回归曲线的实现,最后返回了结果的数值数据。

5.7.2 R的安装与部署

5.7.2.1 R的获取和安装

R可以在CRAN(Comprehensive R Archive Network, http://cran.r-project.org )上免费下载。Linux、 Mac OS X和Windows都有相应编译好的二进制版本。根据选择相应平台的安装说明进行安装即可。推荐使用Linux平台环境进行安装使用。

using_R_script_algorithm/22

5.7.2.2 Rserve的安装介绍与使用

5.7.2.2.1 Rserve介绍

Rserve是一个基于TCP/IP协议的,允许R语言与其他语言通信的C/S结构的程序,支持Java,Python,Nodejs等,Rserve提供远程连接,认证,文件传输等功能。

5.7.2.2.2 Rserve安装

  1. 若系统平台存在外网环境,可在打开的R控制台中直接输入“install.packages("Rserve")”命令进行安装。
  2. 若系统平台不存在外网环境,可在http://www.rforge.net/Rserve/files/ 页面中下载Rserve_1.8-6.tar.gz包后,打开的R控制台中通过“R CMD INSTALL Rserve_1.8-6.tar.gz”命令进行安装。

5.7.2.2.3 Rserve启动与使用

在打开的R控制台中,输入“library(Rserve)”进行引入,再输入“Rserve(args = "--vanilla --RS-enable-remote");”,启动Rserve进程,进程的默认端口号为6311.

using_R_script_algorithm/23

5.7.2.2.4 Rserve的IP与端口配置

在dataviz后台中的配置文件dataviz-service\WebContent\WEB-INF\conf\internalConfig.properties中,对当前Rserve的IP和端口进行配置。

using_R_script_algorithm/24

5.7.2.2.5 R中相关算法包的引入

R中默认包括了一些数据挖掘算法包,但基本不包含时序预测的算法包,需要类似于Rserve安装的方式进行其他算法包的安装。时序预测需要的算法包,如下图所示:

using_R_script_algorithm/25

相关算法包可在https://cran.r-project.org/web/packages/******/https://cran.r-project.org/web/packages/forecast/)中查找。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""