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は売上高年間シーケンス予測の折れ線グラフである。赤枠内は将来5年間の売上高トレンド予測である。操作手順:

(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は財務コスト月度シーケンス予測の折れ線グラフである。赤枠内は将来5ヶ月の財務コストトレンドの予測である。操作手順:

(1)折れ線グラフを選択する。
(2)「データ値」エリアに「財務コスト」フィールドをドラッグし、「分類軸」エリアに「日付」フィールドをドラッグし、折れ線グラフを作成する。
(3)「財務コスト」フィールドに対してフィールド編集操作を行い、フィールド編集画面で平滑予測のスクリプト内容を記入した後、決定をクリックすると、予測計算を行い、予測結果の折れ線グラフが得られる。
(4)「財務コスト」のデータフィールドをドラッグすると、予測データの表示を分割できる。

図3-4はフィールド編集の平滑予測のスクリプト内容で、具体的な内容は以下の通り。

using_R_script_algorithm/15

当該スクリプト内容において、赤色以外の内容は、数値計算のスクリプト定義ルールに準拠する。但し、青色内容${5}$は将来予測の次元段長さを示している。赤色内容には、シーケンス構築データ・予測パッケージインプット・ARIMAモデルトレーニング・ARIMAモデルによる将来5年間の予測及び基データへの帰還と新規データ予測の数値ベクトルが含まれる。

5.7.1.3.4 発注数の季節変動予測

using_R_script_algorithm/9

図3-5 発注数の季節変動予測

using_R_script_algorithm/10

図3-6 季節変動予測のスクリプト

図3-5と図3-6は発注数季節変動予測の折れ線グラフ表示と季節変動スクリプトの実現である。操作手順は上記2件と同じ。

なお、DataVizの次元階層のロールアップ・ドリルダウン機能の使用またはインプットデータの処理をこなすために、Rスクリプトにて次元データに対して先行処理(赤色内容)を行うことで、シーケンスデータをより活用できる。

using_R_script_algorithm/17

5.7.1.4 クラスタリング分析

5.7.1.4.1 業務シーン

ビジネスにおいて、クラスタリング分析は様々な顧客団体を見付けるために運用されており、類似顧客のクラスタリンググループ分けし、顧客団体の特徴をそれぞれ分析することで、顧客への理解を高めることができる。人的資源においては、履歴書に含まれるフィールド(例えば学歴・会社規模・給料・職位名など)に応じて、クラスタリンググループ分けによって履歴書と職位の規律をマイニングすることで、効率よく従業員をマッチングすることができる。 DataVizのクラスタリング分析機能への理解を高め、うまく運用できるために、クラスタリング分析で代表的なIRISデータセットを使用する。

5.7.1.4.2 IRISデータセット

下表のように、4つの独立した属性変数(ガクの長さ、ガクの幅、花弁の長さ、 花弁の幅)で、IRISの種類が描かれる。

ガクの長さ ガクの幅 花弁の長さ 花弁の幅
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 IRIS種別のクラスタリング分析

using_R_script_algorithm/12

図4-2 クラスタリング分析のスクリプト

図4-1はIRIS種別クラスタリング分析の散布図で、表示されているデータは図例計算結果によって3色の種別に分けている。操作手順:

(1)散布図を選択する。
(2)「X軸」エリアに「花弁の長さ」フィールドをドラッグし、「Y軸」エリアに「花弁の幅」フィールドをドラッグし、散布図を作成する。
(3)「図例」エリアに「種別」フィールドをドラッグし(他のフィールドも可)、「種別」フィールドに対してフィールド編集操作を行い、フィールド編集画面でクラスタリング分析のスクリプト内容を記入した後、決定をクリックすると、クラスタリング結果計算を行い、クラスタリング結果の散布図が得られる。

図4-2はフィールド編集のクラスタリング分析のスクリプト内容で、具体的な内容は以下の通り。

using_R_script_algorithm/18

当該スクリプト内容において、青色内容はインプットのIRISデータで、赤色内容はクラスタリング分析の実現である。最後はクラスタリング結果の文字列データを返す。

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 ""