...

Visual Mining Studio マニュアル

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Visual Mining Studio マニュアル
Visual Mining Studio
マニュアル
バージョン 8.2
株式会社 NTT データ数理システム
問い合わせ
東京都新宿区信濃町 35 番地
信濃町煉瓦館 1 階
Phone:03-3358-6681
Fax:03-3358-1727
[email protected]
2016 年 3 月更新
目次
目次 ......................................................................................................................................... 2
1.
はじめに ...................................................................................................... 8
1.1.
Visual Mining Studio について ..................................................................8
1.2.
Visual Analytics Platform について ...........................................................9
1.3.
起動.............................................................................................................12
1.4.
ユーザフォルダの指定 ...............................................................................14
1.5.
同時実行ユーザ数の制限 ............................................................................18
1.5.1.
異常終了時の同時実行数について .................................................18
1.5.2.
プロセスの実行の優先順位について .............................................19
1.6.
製品の選択と利用数について ....................................................................20
1.7.
ユーザの利用状況について ........................................................................22
2.
ユーザインターフェース ........................................................................... 24
2.1.
概要.............................................................................................................24
2.2.
プロジェクトボード ...................................................................................25
2.3.
オブジェクトブラウザ ...............................................................................26
2.4.
2.3.1.
フォルダの種類 ..............................................................................26
2.3.2.
フォルダの整理 ..............................................................................30
メニューバー ..............................................................................................39
2.4.1.
プロジェクト ..................................................................................39
2.4.2.
ツール.............................................................................................40
2.4.3.
表示 ................................................................................................46
2.4.4.
ウィンドウ .....................................................................................47
2.5.
ツールバー..................................................................................................49
2.6.
メッセージ表示ウィンドウ ........................................................................50
3.
データ管理................................................................................................. 52
3.1.
概要.............................................................................................................52
3.2.
データファイル ..........................................................................................53
3.3.
アイコンの導入と削除 ...............................................................................55
3.4.
データインポート .......................................................................................58
3.4.1.
データインポート ..........................................................................58
3.4.2.
インポート後のデータ ...................................................................66
3.4.3.
データの再取り込み .......................................................................67
2
3.5.
データの保存 ..............................................................................................71
3.6.
データフォルダ ..........................................................................................73
3.7.
モデル .........................................................................................................74
4.
プロジェクト ............................................................................................. 77
4.1.
概要.............................................................................................................77
4.2.
プロジェクトの管理 ...................................................................................78
4.3.
4.2.1.
新規作成 .........................................................................................78
4.2.2.
保存 ................................................................................................78
4.2.3.
開く ................................................................................................82
4.2.4.
削除 ................................................................................................83
4.2.5.
プロジェクトのエクスポート ........................................................84
4.2.6.
アイコン定義のエクスポート ........................................................86
4.2.7.
プロジェクトのインポート ............................................................87
4.2.8.
プロジェクトの共有 .......................................................................87
4.2.9.
プロジェクトのバックアップ ........................................................88
アイコンと処理フロー ...............................................................................90
4.3.1.
アイコン .........................................................................................90
4.3.2.
矢印線.............................................................................................92
4.3.3.
アイコンの実行 ..............................................................................94
4.3.4.
処理フローの自動実行 ...................................................................94
4.3.5.
アイコンの状態と色 .......................................................................95
4.3.6.
パラメータと結果の削除 ...............................................................95
4.3.7.
再実行.............................................................................................97
4.3.8.
データの変更 ..................................................................................97
4.3.9.
全処理アイコン結果の削除 ............................................................98
4.3.10. データビュー ..................................................................................99
4.3.11. 処理結果の保存 ............................................................................100
4.3.12. データアイコンの作成 .................................................................101
4.3.13. 入出力マッチング ........................................................................102
4.3.14. メモ ..............................................................................................104
4.3.15. 範囲を指定して操作する .............................................................109
4.4.
行毎実行 ................................................................................................... 114
4.5.
モジュール................................................................................................ 119
4.5.1.
モジュールの作成 ........................................................................ 119
4.5.2.
モジュールの実行 ........................................................................122
4.5.3.
モジュールの再利用 .....................................................................123
3
4.6.
5.
4.5.4.
既存処理フローのモジュール化...................................................124
4.5.5.
モジュールのループ処理 .............................................................126
4.5.6.
モジュールによるフォルダの処理 ...............................................135
バッチ処理............................................................................................... 142
4.6.1.
バッチファイルの作成 .................................................................143
4.6.2.
バッチ処理の実行 ........................................................................145
データ操作............................................................................................... 150
5.1.
概要.......................................................................................................... 150
5.2.
クリーニング ........................................................................................... 151
5.2.1.
欠損値の検出 ................................................................................151
5.2.2.
欠損値の補完 ................................................................................152
5.3.
グルーピング ........................................................................................... 153
5.4.
サンプリング ........................................................................................... 156
5.5.
ソート ...................................................................................................... 158
5.6.
ファイル分割 ........................................................................................... 160
5.7.
フィルタリング ....................................................................................... 161
5.8.
マージ ...................................................................................................... 164
5.9.
列属性変更............................................................................................... 167
5.10.
正規化 ...................................................................................................... 168
5.11.
層別サンプリング .................................................................................... 169
5.12.
匿名化 ...................................................................................................... 173
5.13.
再配置 ...................................................................................................... 175
5.14.
データハンドリング ................................................................................ 182
5.15.
データハンドリング(旧) ..................................................................... 220
5.16.
日付時刻処理 ........................................................................................... 230
5.17.
行選択 ...................................................................................................... 235
5.18.
日付選択 .................................................................................................. 239
5.19.
集計.......................................................................................................... 241
5.20.
パラメータ毎実行 .................................................................................... 248
5.21.
データエクスポート ................................................................................ 254
6.
Visual Mining Studio 機能 .................................................................... 262
6.1.
概要.......................................................................................................... 262
6.2.
前処理 ...................................................................................................... 264
6.2.1.
時系列処理 ...................................................................................264
6.2.2.
時系列処理 基本操作 .................................................................270
6.2.3.
時系列処理 線分表現 .................................................................273
4
6.3.
6.4.
6.2.4.
時系列処理 距離計算 .................................................................284
6.2.5.
欠損補填 .......................................................................................291
6.2.6.
SQL 作成 ......................................................................................295
6.2.7.
ランダム次元圧縮 ........................................................................299
統計量 ...................................................................................................... 304
6.3.1.
Aggregate ....................................................................................304
6.3.2.
相関 ..............................................................................................306
6.3.3.
Feature Selection ........................................................................308
6.3.4.
群間比較 .......................................................................................310
6.3.5.
RFM 分析 .....................................................................................313
6.3.6.
ビジュアル集計 ............................................................................317
モデリング............................................................................................... 345
6.4.1.
Decision Tree ...............................................................................346
6.4.2.
k-NN 分析 ....................................................................................373
6.4.3.
Neural Network ..........................................................................375
6.4.4.
Radial Basis Function Network.................................................379
6.4.5.
Support Vector Machine .............................................................384
6.4.6.
nuSVM .........................................................................................387
6.4.7.
Support Ball Machine.................................................................390
6.4.8.
予測 ..............................................................................................394
6.4.9.
ルールベース予測 ........................................................................401
6.4.10. モデル統合 ...................................................................................404
6.4.11. Naive Bayes.................................................................................415
6.4.12. 交差検証 .......................................................................................419
6.4.13. Boosting .......................................................................................421
6.4.14. Bagging ........................................................................................438
6.4.15. HSMM モデルの説明...................................................................447
6.4.16. HSMM(カテゴリ)....................................................................450
6.4.17. HSMM 予測(カテゴリ) ...........................................................452
6.4.18. HSMM シミュレーション(カテゴリ) .....................................454
6.4.19. HSMM(連続値) .......................................................................456
6.4.20. HSMM 予測(連続値) ...............................................................458
6.4.21. HSMM シミュレーション(連続値) .........................................461
6.4.22. Tree&Random Forest.................................................................464
6.4.23. 対話型モデル ................................................................................489
6.4.24. 対話型モデル 学習.......................................................................491
5
6.4.25. 対話型モデル 予測.......................................................................495
6.4.26. 対話型モデル 教師値設定 ............................................................497
6.5.
クラスタ分析 ........................................................................................... 501
6.5.1.
BIRCH .........................................................................................501
6.5.2.
K-means 法 ..................................................................................503
6.5.3.
OPTICS .......................................................................................505
6.5.4.
自己組織化マップ ........................................................................508
6.5.5.
ネットワーク階層化 .....................................................................513
6.5.6.
One Class SVM ...........................................................................517
6.5.7.
One Class SVM 判定 ...................................................................519
6.5.8.
階層型クラスタリング .................................................................520
6.5.9.
Cluster Validation .......................................................................525
6.5.10. Dyadic Soft Clustering ...............................................................527
6.6.
6.7.
6.8.
7.
アソシエーション分析 ............................................................................ 536
6.6.1.
アソシエーション分析 .................................................................536
6.6.2.
インタラクティブルール分析 ......................................................539
6.6.3.
関連性ダイアグラム分析 .............................................................542
6.6.4.
時系列アソシエーション分析 ......................................................544
6.6.5.
クラスアソシエーション .............................................................546
多変量解析............................................................................................... 549
6.7.1.
対応分析 .......................................................................................549
6.7.2.
主成分分析 ...................................................................................551
6.7.3.
Kernel 主成分分析 .......................................................................554
6.7.4.
主成分分析得点判定 .....................................................................558
外部ソフト............................................................................................... 560
6.8.1.
時系列分析前処理 ........................................................................560
6.8.2.
時系列分析 ...................................................................................566
6.8.3.
因子分析 R ...................................................................................576
6.8.4.
線形回帰分析 R ............................................................................578
6.8.5.
多項ロジスティック回帰 R ..........................................................580
6.8.6.
予測 R ...........................................................................................582
データ表示............................................................................................... 583
7.1.
概要.......................................................................................................... 583
7.2.
データ&グラフビュー ............................................................................ 584
7.3.
S-PLUS グラフ表示 ................................................................................ 589
7.4.
ネットワークグラフ表示 ......................................................................... 593
6
7.5.
Excel ピボットテーブル ......................................................................... 598
7.6.
レポート表示 ........................................................................................... 601
8.
外部連携 .................................................................................................. 603
8.1.
概要.......................................................................................................... 603
8.2.
S-PLUS 連携 ........................................................................................... 604
8.3.
データベース連携 .................................................................................... 609
8.4.
データベース連携(旧).............................................................................. 615
8.5.
Excel 連携................................................................................................ 623
8.6.
R 連携 ...................................................................................................... 632
9.
8.6.1.
連携の手順 ...................................................................................632
8.6.2.
R スクリプトの定義 .....................................................................632
8.6.3.
R スクリプトの実行 .....................................................................636
8.6.4.
R スクリプトの再利用 .................................................................637
レポーティング機能 ................................................................................ 639
9.1.
概要.......................................................................................................... 639
9.2.
レポーティングの準備 ............................................................................ 641
9.3.
レポーティング編集画面 ......................................................................... 642
9.4.
レポート出力 ........................................................................................... 645
9.5.
レポーティング結果 ................................................................................ 646
10.
スクリプト............................................................................................... 649
10.1.
概要.......................................................................................................... 649
10.2.
定義.......................................................................................................... 650
10.3.
実行と登録............................................................................................... 655
10.4.
スクリプトの基本 .................................................................................... 658
10.5.
テーブルの基本関数 ................................................................................ 663
10.6.
スクリプトの特殊な使い方 ..................................................................... 705
10.7.
スクリプトの検索置換機能 ..................................................................... 716
10.7.1. 検索ウィンドウの表示方法と説明 ...............................................716
10.7.2. 検索置換機能 ................................................................................717
10.7.3. 編集機能 .......................................................................................717
10.8.
11.
スクリプト関数・演算子一覧 ................................................................. 719
使い方に関するお問い合わせ ................................................................. 731
7
1.
はじめに
1.1. Visual Mining Studio について
意思決定支援のより広い舞台を提供するため、Visual Mining Studio(VMStudio)はバー
ジョン 7.1 から、従来のビジュアルプログラミング機能を更に強化し、基盤機能 Visual
Analytics Platform(VAP)に改名され、Visual Mining Studio 自身はデータ解析・マイニン
グ・機能に特化した VAP のパッケージになりました。VMStudio の既存ユーザは、オブジ
ェクトブラウザの構成の若干の変更以外は、従来通りデータ解析・マイニング作業を行う
ことが可能で、いままで作成されたプロジェクトも変更なしに利用することが可能です。
本マニュアルは、VAP、VMStudio に含まれるデータ解析・マイニング機能の順に紹介し
ます。
8
1.2. Visual Analytics Platform について
Visual Analytics Platform (VAP) は NTT データ数理システムが持つ強力なデータマイ
ニング・数理計画・金融等、様々な意思決定問題に対するソリューションを統合的に扱う
目的で開発された製品です。
VAP は、様々な分野に特化したソリューションを持つ NTT データ数理システムのパッケ
ージ製品を VAP に組み込むことで機能を拡張することができます。VAP は、データの前
処理や表示機能に、各パッケージ製品が持つ様々な分野に特化した手法を組み合わせて、
グラフィカル、かつ、インタラクティブに意思決定を行うための機能を提供します。
2012 年 8 月時点で、以下のパッケージ製品が VAP に統合され、パッケージ製品を組み
込むことで機能を拡張することができます。
製品名
バージョン
機能
NUOPT
14 以上
数理計画法による最適化計算
FIOPT
2 以上
ポートフォリオ最適化・金融関連解析
Visual Mining Studio
7.2 以上
データマイニング
Big Data Module
1.0 以上
ビッグデータ分析
また、Visual Mining Studio 7.0.2 と同様、パッケージ製品以外にアドオン製品も利用する
ことが可能です。
VAP は次のような機能を備えています。
ビジュアルプログラミング機能
VAP は、トライ&エラーをすばやく行うことが可能なアイコン&処理フロー方式を採用
しています。データとそれに対する処理を全てアイコンで表現し、問題解決のためのプロ
セスの流れはアイコン間の矢印で表します。プロセスの構築、実行、結果確認のほとんど
は、マウスの操作のみで可能となります。
次の図は VAP での構成要素の関係です。意思決定のために必要なデータ、処理ツールは
全てアイコン化されています。アイコンとアイコンを矢印で繋ぐことによって、処理フロ
ーが構成されます。複数の処理フローは一つのプロジェクトにまとめられます。
9
図 1-1
データ処理の流れ
データ可視化機能
VAP は豊富なデータ表示機能、例えば、各種グラフ表示機能、大規模データ対応のテー
ブル表示機能、各種レポート、集計機能を備えています。
10
前処理機能
各パッケージでより効率的に、効果的に意思決定を行うために、生のデータをいち早く
解析可能な形に変換することができます。 VAP は、通常の前処理機能だけでなく、デー
タに対する細かな操作も可能な、テーブル加工専用のスクリプト機能も提供します。
VAP は次のデータ処理ツールを提供します。

データ操作:クリーニング、グルーピング、サンプリング、ソート、ファイル分割、
フィルタリング、マージ、列属性変更、正規化、再配置、匿名化、層別サンプリン
グ、データハンドリング、日付時刻処理、行選択、日付選択、集計、パラメータ毎
実行
他システムとの接続、連携機能
今まで蓄積されてきたデータ、データ加工ルーチン、統計解析ルーチンをそのまま利用
可能にするために、 VAP から高速 ODBC 経由での市販 DB との接続、S-PLUS、R、
SAS(スクリプト)、MATLAB(スクリプト)、Excel、Perl などとの接続は特別な操作を
必要とせず、通常の VAP の中で使われる処理アイコンと同様に使うことができます。
バッチ処理機能
データマイニングの分析の流れを構築する人と、日常業務に適用する人は一般に異なり
ます。日常業務に適用する場合、分析の流れの構成などを意識することなく簡単に結果が
得られる必要があります。このような目的のために VAP は、インタラクティブな環境で
作成したプロジェクトをバッチ実行する機能を備えています。
11
1.3. 起動
VAP を起動するには、インストール後「スタート」メニューの MSI Solutions から VAP
を選択して下さい。インストール方法に関しては、利用するパッケージ製品のインストー
ルガイド及び Visual Analytics Platform インストールガイドを参照してください。
図 1-2
スタートメニューからの起動
起動が始まると、次のようなロゴが表示されます。
図 1-3
ロゴ
VAP 起動後、図 1-4 のようなウィンドウが開かれます。
12
図 1-4
メインウィンドウ
初回起動時は利用するパッケージ製品を選択する以下の製品の選択ダイアログが表示され
ます。
図 1-5
製品の選択ダイアログ
製品の選択ダイアログについては、
「製品の選択と利用数について」を参照してください。
13
1.4. ユーザフォルダの指定
VAP を実行するには、ユーザフォルダを指定する必要があります。ユーザフォルダを指
定していないユーザが VAP を起動すると、次のようなダイアログが出ます。(インストー
ル後最初に起動したユーザに関しては、自動的にユーザフォルダがインストールフォルダ
にある Users フォルダの下に作成されますので、このダイアログは現れません。
)
図 1-6
実行ライセンス追加要求ダイアログ
ユーザフォルダは、次のように指定します。上図の状態で OK を押すと「ユーザーフォ
ルダ管理」が起動します。このウィンドウを右クリックして、「ユーザー追加」を選択して
ください。
右クリック
図 1-7
ユーザーフォルダ管理ウィンドウを右クリック
作業フォルダを作成する場所を聞いてきますので、適当な場所を入力し(通常はそのまま
で結構です)OK ボタンを押します。これで VAP を起動することが可能になります。
※アカウント名は Windows にログオンする際のアカウント名を指定してください。
登録済みのユーザの作業フォルダを変更する場合や、ユーザの登録を削除するには、メニ
ューバーからスタート→プログラム→MSI Solutions→ツール→VAP ユーザーフォルダの
管理を選び(図 1-8)、ユーザーフォルダ管理を起動してください。
14
図 1-8 ユーザーフォルダ管理の起動 (Windows 7 での画面例)
ユーザーフォルダ管理が起動すると、図 1-9 のような画面が表示されます。削除または
作業パスを変更したいユーザのエントリ上で右クリックして、表示されるメニューから「ユ
ーザー削除」または「作業パス変更」を選択してください。
右クリック
図 1-9 ユーザーフォルダ管理ウィンドウ
制限付きアカウントや、Windows Vista 以降の OS で Administrator 以外のアカウントで
他のユーザの登録、作業パスの変更をしようとした場合、次のような画面が表示されます。
15
図 1-10 管理者権限での再起動確認
他のユーザの作業領域を設定する場合、そのユーザが作業フォルダに対して読み書きがで
きるように、作業フォルダのアクセス権の変更を行います。そのため、管理者権限として
ユーザーフォルダ管理を起動する必要があります。
図 1-10 で「はい」を選択して、続いて「別のユーザーとして実行」ダイアログ(図 1-11)
が表示される場合は、
「次のユーザー」を選択、管理者権限のユーザを指定して「OK」を
クリックしてください。
「ユーザーアカウント制御」ダイアログ(図 1-12)が表示される場合は「はい」を選択して
ください。一般ユーザでログオン中の場合は、監理者ユーザのアカウント・パスワードの
指定が必要になります(図 1-13)。
図 1-11 別のユーザーとして実行ダイアログ
16
図 1-12 ユーザー アカウント制御ダイアログ
図 1-13 ユーザーアカウント制御ダイアログ(管理者アカウント指定)
17
1.5. 同時実行ユーザ数の制限
VAP は1つのマシンで同時に実行可能なユーザ数が制限されています。制限値を超えて
起動すると、警告ダイアログが出現し VAP の実行が終了します。
図 1-14
同時実行数オーバー
同時実行ユーザ数の上限値は、各製品に発行されたライセンスで許可されたユーザ数の
合計となります。上限を変更したい場合は、再度ライセンスの発行手続きが必要です。
1.5.1. 異常終了時の同時実行数について
VAP は 、 起 動 時 に イ ン ス ト ー ル フ ォ ル ダ の SimultaneousRun フ ォ ル ダ の 下 に
user.xxxx という形式のファイル(ロックファイル)を作成することにより同時実行数を把
握します。 VAP が何らかの原因で正しく終了しなかった場合は、異常終了したロックファ
イルが残るために、実際には実行可能ユーザ数を超えていなくても警告が出ることがあり
ます。この場合、インストールフォルダの SimultaneousRun 以下にある user.xxxx (xxxx
は異常終了したユーザ名)を削除してください。
18
図 1-15
ロックファイルの削除
1.5.2. プロセスの実行の優先順位について
VAP は、処理を実行中、他のプロセスが動かないことを避けるため、実行優先順位が「通
常以下」の状態で実行されます。
(具体的には vmsRunNode.exe の優先順位が下がる)
ただし、これは、Windows XP, Windows Server2003 以後の OS でのみ有効です。
19
1.6. 製品の選択と利用数について
VAP に組み込んだ製品を利用するには、製品の選択が必要です。
図 1-16
製品の選択メニュー
ここでは「Visual Mining Studio」を VAP に組み込んだ場合に、Visual Mining Studio
を利用できるようにする設定を説明します。まず、メニューバーの製品から製品の選択を
選択してください。
製品の選択ダイアログが表示されますので、利用したい製品、ここでは Visual Mining
Studio にチェックを入れます。チェックを入れたら、OK を押下してダイアログを閉じて
ください。これで Visual Mining Studio が利用可能になります。
図 1-17
製品の選択ダイアログ
このダイアログで表示されている利用数は分子が現在その製品を利用しているユーザの
数、分母がその製品を利用可能な最大ユーザ数、すなわちライセンスによって許可された
ユーザ数となります。
分母が 0 の場合、その製品のライセンス登録が行われていないことを意味します。
分子と分母が同じ値の場合、利用可能な最大ユーザ数に達していることになるので、そ
の製品を選択して利用することはできません。その場合は、他のユーザの利用が終わるの
を待つか、該当製品のライセンスを再申請して、利用可能なユーザ数を増やしてください。
20
図 1-18
オブジェクトブラウザへ登録
利用可能になった製品は後述する「オブジェクトブラウザ」に製品のフォルダが登録さ
れ、その製品の処理アイコンが利用可能になります。
ここで行った設定は次回起動時には自動的に適用されますが、他のユーザが利用中のた
め、製品の選択ができない場合があります。その場合も他のユーザの利用が終わるまでは
その製品を利用することはできません。
また、製品の選択を行っていない状態で、その製品のアイコンを実行すると以下のよう
なメッセージが表示されるので、製品の選択を行ってください。
図 1-19
製品の選択を行わなかった場合のメッセージ
21
1.7. ユーザの利用状況について
VAP はアプリケーション終了時にアプリケーションを起動したユーザの利用状況をイン
ストールフォルダの logs フォルダの下に usage.yyyy.log という形式のログファイルに出力
します。yyyy にはアプリケーション終了時の西暦が入ります。
図 1-20 利用状況ログファイル
このファイルは各行に以下の項目がカンマ区切りで記述されます。

ユーザがアプリケーションを終了した時刻

ユーザ名

アプリケーションの起動時間(時間:分:秒)

バッチ実行であれば1、そうでなければ 0
現在アプリケーション利用中のユーザについてはインストールフォルダの
SimultaenousRun フォルダの下に user.xxxx(xxxx は利用中のユーザ名)という形式のファ
イルが起動時に生成されるので、このファイルの生成日時から利用時間が確認できます。
22
図 1-21 実行中のユーザ情報
23
2.
ユーザインターフェース
2.1. 概要
ユーザインターフェースは、次の部分から構成されています。

プロジェクトボード
ユーザがデータ処理の流れ(処理フロー)を作成するところです。

オブジェクトブラウザ
システム固有の処理アイコンや、ユーザがシステムに取り込んだデータ、独自に
定義した処理アイコンを置く場所です。

メニューバーとツールバー
システム制御、プロジェクトの操作機能を設定します。

メッセージ表示ウィンドウ
実行中のフローの処理内容や、エラーメッセージが表示されます。
図 2-1
ユーザインターフェース画面の構成
24
2.2. プロジェクトボード
プロジェクトボードは、ユーザがデータ処理の流れをグラフィカルに作成する場所です。
プロジェクトボードでは、データを表すデータアイコンやデータ処理を表す処理アイコン
を矢印線で結んで一連の処理を表現します。具体的には、データアイコンからデータが出
発して、矢印線の方向に沿ってデータが流れていき、処理アイコンでそれぞれの処理が行
なわれます。このようなデータ処理の集まりを処理フロー、あるいは単にフローと呼びま
す。
プロジェクトボードには、複数の処理フローを作成することが可能です。プロジェクトボ
ード上では、定義された複数の処理フローをまとめてプロジェクトとして管理します。プ
ロジェクトは保存、開く、新規作成、インポート、エクスポートなどを行うことが可能で
す。
プロジェクトボードのエリアの右端と下端にプロジェクトボード用のスクロールバーが
あります。スクロールバーによってプロジェクトボードの表示エリアを移動させることが
可能です。
図 2-2
プロジェクトボード
25
2.3. オブジェクトブラウザ
オブジェクトブラウザはシステムが提供する処理アイコンや、ユーザがシステムに取り
込んだデータ、ユーザが独自に定義した処理アイコンを格納する場所です。オブジェクト
ブラウザのアイコンを、プロジェクトボード上に貼り付ける(ドラッグ&ドロップする)
ことによって処理フローを作ります。
オブジェクトブラウザの形式、利用方法は Windows の「エクスプローラ」とほぼ同じ
です。オブジェクトブラウザには、ファイルと、ファイルを含むフォルダが、ツリー形式
で表示されます。一番上の階層のフォルダは下図のように固定されています。ユーザが順
序を変えたり、名前を変えたりすることはできません。
図 2-3
2.3.1.
一番上の階層のフォルダ
フォルダの種類
以下では、オブジェクトブラウザを構成する各フォルダについて説明します。
26
図 2-4 オブジェクトブラウザ(フォルダを展開したところ)

データフォルダ
処理フローで用いるデータアイコンを格納するフォルダです。ユーザが作成したデータ
アイコンを置いたり、すでに置いてあるデータアイコンを削除したりすることができます。
データフォルダに置けるデータアイコンは以下のものになります。

内部バイナリ形式ファイル(vdt)

モデルファイル(vModel)

テキストファイル(txt,csv)

Excel ファイル(xls,xlsx,xlsm,xlsb)

Access ファイル(mdb,accdb)
これらのファイルはプロジェクトボードやエクスプローラからドラッグ&ドロップで置く
ことが可能です。
27
いずれも、ファイルの実体がオブジェクトブラウザのデータフォルダに対応する実際のフ
ォルダにコピーされますが、テキストファイル・Excel ファイル・Access ファイルについ
てはプロジェクトボードに配置した際、オブジェクトブラウザのデータフォルダに対応す
る実際のフォルダ上のものに対する参照になります。この場合、オブジェクトブラウザ上
のデータファイルを削除するとプロジェクトボード上に配置したアイコンが実行(再取り込
み)できなくなります。

データベースフォルダ
データベースファイル及びデータベースからテーブルを選択するテーブル選択と、デー
タベースへ SQL を発行してテーブル取得するアイコン SQL を格納する場所です。また、
ユーザが作成したデータベースアイコンを置いたり、すでに置いてあるデータベースアイ
コンを削除したりすることができます。テーブル選択アイコンと SQL アイコンはシステム
アイコンですので、削除したり切り取ったりすることはできません。

データ操作フォルダ
主にデータの編集、整形など、マイニングの前処理段階で使用する処理アイコンを格納す
る場所です。

統計(S-PLUS)フォルダ
VAP から統計ソフトウェア S-PLUS を利用するためのフォルダです。S-PLUS の各種
分析機能に対応したアイコンが収められています。S-PLUS をインストールし、VAP から
利用可能になると表示されます。

アドオンフォルダ
アドオンを追加すると、ここにアドオンアイコンが表示されます。アドオンがない状態で
は、このフォルダは表示されません。詳細については、各アドオンのマニュアルを参照し
てください。

表示フォルダ
データ、分析結果の内容をいろいろな形式で表示する、所謂データ可視化ツールを格納
します。

ソリューションフォルダ
このフォルダは、VAP から外部のソフトウェアの機能を利用するアイコンが収められま
す。このフォルダにはデータ操作やインストールした製品などにより追加されたアイコン
をパラメータの設定を保持したまま格納することができ、別のデータへの分析に利用する
ことができます。
28
図 2-5
パラメータ指定済みアイコンの格納
また、各種スクリプトを格納するため、下記のフォルダを用意しています。

R-スクリプト
統計ソフトウェアRのスクリプトを格納するフォルダです。ユーザが作成した R
スクリプトを格納することができます。

S-スクリプト
S-PLUS のスクリプトを格納するフォルダです。ユーザが作成した S スクリプト
を格納することができます。

スクリプト
ユーザが作成した、スクリプトを格納するフォルダです。VAP インストール時に
はデータの基本情報を表示する、基本情報.edf が入っています。

プロジェクトフォルダ
作成したプロジェクトを格納する場所です。
「プロジェクト」フォルダに含まれるプロジ
ェクトの操作を行うことができます。
29

共通フォルダ
「共通」フォルダは、VAP を使っているすべてのユーザが共有することのできるフォル
ダです。またユーザ間で共通の処理をしたい場合や、作成したデータ、スクリプトの交換
などに使うことができます。くわしくは「共通フォルダの操作」を参照してください。
2.3.2.
フォルダの整理
オブジェクトブラウザのフォルダのうち、次の 4 種類のフォルダは、下の階層にアイコ
ンを追加したり、フォルダを作成したりすることができます。

「データ」フォルダ

「データベース」フォルダ

「ソリューション」フォルダ

「プロジェクト」フォルダ
※ ただし「データ」フォルダと「プロジェクト」フォルダの下にある Samples フォルダ
にアイコンを追加したり、フォルダを作成することはできません。Samples フォルダ内の
データやプロジェクトの削除・上書きもできません。
追加できるアイコンの種類は、フォルダごとに異なります。詳しくは、フォルダの種類を参照
してください。たとえ「データ」フォルダに追加できるのはフォルダとデータアイコンのみで、
スクリプトアイコンや分析アイコンを追加することはできません。
※ 「共通」フォルダも整理できるフォルダの 1 つですが、他のフォルダとは利用方法が異
なります。詳しくは共通フォルダの操作の項を参照してください。

フォルダの新規作成
フォルダを追加するには、追加したい階層の親フォルダを右クリックしてフォルダの新規
作成を選択します。その後、ダイアログでフォルダ名を入力してください。
30
図 2-6 フォルダの新規作成

アイコンの移動
アイコンを別のフォルダに移動するには、まず移動したいアイコンを右クリックして切
り取りを選択します。次に移動先のフォルダを右クリックして貼り付けを選択します。切
り取られたアイコンが貼り付けた場所に移動します。
図 2-7
アイコンの切り取り
31
図 2-8
アイコンの貼り付け
※ 切り取ったアイコンの種類と異なる種類のフォルダには移動できません。たとえばデー
タアイコンは「ソリューション」フォルダには移動できません。
※ 共通フォルダにアイコンを移動するには「共通へコピー」を使用してください。
※ 切り取りは対象のフォルダを選択して Ctrl+X のキー入力でも行えます。
※ 貼り付けは移動先のフォルダを選択して Ctrl+V のキー入力でも行えます。
32

削除
アイコンを削除するには、キーボードの DEL キーを押すか、削除したいアイコンを右ク
リックして、メニューから削除を選択してください。
図 2-9
アイコンの削除
33

名前の変更
アイコンの名前を変更するには、変更したいアイコンを選択して、キーボードの F2 キー
を押すか、アイコンを右クリックして、メニューから名前の変更を選択してください。
新しいノード名の入力ダイアログで新しい名前を指定して、OK をクリックすると名前が
変更されます。
図 2-10 アイコンの名前の変更

共通フォルダの操作
「共通」フォルダは、VAP を使っているすべてのユーザが共有することのできるフォル
ダです。また、ユーザ間で共通の処理をしたい場合や、作成したデータ、スクリプトの交
換などに使うことができます。
「共通」フォルダに入れることのできるアイコンは、次の 3 種類です。

データ

各種スクリプトを含む、実行可能なアイコン

プロジェクト
「共通」フォルダにアイコンを置くには、まずアイコンに対応するフォルダ(たとえば
34
データアイコンは「データ」フォルダ)にアイコンをおいて、共通へコピーをする必要が
あります。
共通フォルダにコピーされたアイコンは、同じマシンで VAP を使用するすべてのユーザ
が利用することができます。ただし「共通」フォルダのアイコンは、直接プロジェクトボ
ードに貼り付けたり、編集したりすることができません。利用するためには一度、対応す
るフォルダに取り込みをしてください.
図 2-11

共通フォルダへのコピー(フォルダから)
共通フォルダにコピー
「共通」フォルダにアイコンをコピーするには、コピーしたいアイコンを右クリックし
てメニューから共通へコピーを選びます。コピー先はアイコンの種類に対応するフォルダ
(たとえばデータアイコンは「共通」フォルダの下の「データ」フォルダ)となります。
アイコンを切り取り、貼り付けをすることによっても作業フォルダから共通フォルダにア
イコンを移動することができます。
35
図 2-12

共通へコピー
共通フォルダから取り込み
共通フォルダに存在するアイコンを、自分のフォルダに取り込むには、取り込みたいア
イコンを右クリックして取り込みを選びます。取り込み先はアイコンの種類に対応するフ
ォルダです。 たとえばデータアイコンは「データ」フォルダに取り込まれます。
36

アイコンの削除
共通フォルダのアイコンは、キーボードの DEL キーを押すか、アイコンを右クリックし
て削除を選ぶと削除できます。削除したアイコンは復元できませんので、削除する前によ
く確認するようにしてください。特に他のユーザが頻繁に使用するアイコンを削除する場
合には、十分注意してください。
図 2-13
共通フォルダのアイコンの右クリックメニュー
37

オブジェクトブラウザのフォルダと操作一覧
○は可能、×は不可能を表します。
フォルダ名
アイコンの追加・削除
フォルダの作成
データ ※1
○(データファイル)
○
データベース
○(データベース)
○
データ操作
×
×
統計(S-PLUS)
×
×
アドオン
×
×
表示
×
×
○(スクリプト,S-スク
リプト,R-スクリプト,実
ソリューション
行可能なアイコン)
○
プロジェクト ※1
○(プロジェクト)
○
共通
○※2
○
※1: Samples フォルダ内は全て不可
※2: 共通フォルダへコピーするには右クリックメニューから「共通へコピー」を使いま
す。
38
2.4. メニューバー
メニューバーには、システム全体を操作するツールが含まれており、以下のメニューで
構成されています。各メニューの詳細は、該当する項目を参照してください。
図 2-14
メニューバー
各メニューの説明

プロジェクト
プロジェクトの管理などをおこないます。

ツール
新規スクリプトの編集や、プロパティの設定などをおこないます。

表示
ツールバー、ステータスバーの表示・非表示制御を設定します。

ウィンドウ
サブウィンドウの並び方、サブウィンドウの選択をします。

製品
VAP に組み込んだ製品の製品の選択(利用設定)を行います。

ヘルプ
ヘルプを表示します。
2.4.1.
プロジェクト
プロジェクトを編集するときに使うメニューです。プロジェクトに関する詳しい説明は
プロジェクトの項を参照してください。
39
図 2-15 プロジェクトメニュー
メニュー説明

新規作成
プロジェクトを新規作成します。

開く
オブジェクトブラウザのプロジェクトフォルダにあるプロジェクトの一つを選
択し、
「開く」を選択すると、そのプロジェクトを開きます。

上書き保存
プロジェクトを、名前を変えずに保存します。

名前を付けて保存
プロジェクトを、名前を付けて保存します。

インポート
外部で作成したプロジェクトを、システムに取り込みます。

エクスポート
プロジェクトを外部に保存します。

クリア
プロジェクトボードをクリアします。

プロジェクトの終了
現在開いているプロジェクトを終了します。
2.4.2.
ツール
処理フローの実行に使われるアイコンの作成や、パラメータの設定をするためのメニュ
ーです。
40
図 2-16 ツールメニュー
メニュー説明

新規スクリプト
ユーザがスクリプトを定義するための画面を開きます。

新規 S-スクリプト
ユーザが S-PLUS スクリプトを定義するための画面を開きます。
VAP で S-PLUS が利用可能な場合のみ、表示されます。

新規 R-スクリプト
ユーザが R スクリプトを定義するための画面を開きます。
プロパティ
VAP の各種パラメータを設定するときに使います。プロパティを選択すると「システム
パラメータ」ウィンドウ(下図)が開きます。 項目を編集し OK ボタンを押すと、変更
が有効になります。変更を無効にしたい場合は Cancel ボタンを押してください。
41
図 2-17
システムパラメータウィンドウ
42
項目の説明

全般

メモリサイズ
VAP が使用する1つのデータテーブルあたりのメモリサイズを設定します。計算
に必要なメモリのサイズ(計算に必要なデータテーブル数×メモリサイズ)が大
きく、メモリが足りない場合はこの値を少なめに設定してください。

同時編集可能な最大プロジェクト数
同時編集可能なプロジェクト数を指定します。プロジェクトの同時編集を行うと、
メモリ領域を消費しますので、インストール直後は 5 に設定してあります。同時
に多くのプロジェクトを編集したい場合には、この数を増やしてください。

1 入力アイコンへのつなぎかえ
チェックをすると、アイコンをデータ入力としてつないだときに、以前につなが
れていたアイコンとつなぎかえを行います。

プロジェクトを x 分ごとに保存する
指定した時間ごとにプロジェクトを自動で保存します。

実行

データ入出力知らせ画面表示
処理アイコンの実行前および実行後のデータ入出力中に次の画面を表示します。
図 2-18

データ入出力画面
実行終了後, 音で知らせる
チェックをすると、処理フローの実行が終了したあとに、マシンの警告音を鳴ら
して実行終了を知らせます。

ダブルクリックを再実行+結果ビューとする
チェックをすると、ダブルクリックするだけで再実行と結果ビューを実行します。

メイン画面を隠すモードでの実行
チェックすると、処理フローの実行中にメイン画面を隠します。

スクリプト実行の外部エディタ

外部エディタのパス、参照ボタン
外部エディタのパスを指定します。参照ボタンを押下すると、外部エディタプロ
グラムを選択するダイアログが開きます。
43

スクリプトのダブルクリックを編集画面開くとする
チェックをすると、ダブルクリックするだけで編集画面を開きます。

データビュー

常に最前面に表示
チェックすると、データビューウィンドウを他ウィンドウの最前面に常に出して
表示します。

集計情報も表示
データに加えて、データの集計情報を加えて表示します。集計情報を加えると、
その分の計算時間が必要になりますので、集計情報が不要な場合は表示しない(チ
ェックを入れない)ことをおすすめします。

開き方を選択できない場合はコピーして開く
チェックすると、以下の場合において結果ファイルをコピーしてから開きます。
これはアイコンを右クリックしてデータビューからコピーして開くを選択した場
合と同じ挙動になります。

ダブルクリックを再実行+結果ビューとするにチェックが入っている時にア
イコンをダブルクリックした場合


スクリプトアイコンの編集画面から「結果表示」をクリックした場合

データ&グラフビューアイコンをダブルクリックした場合
1000 列より多い場合に警告を表示
データビューは 1000 列より多い場合、グラフを描画することができません。チ
ェックが入っている場合、その旨の警告が表示されます。チェックを外すと警告
が表示されなくなりますが、グラフ作成機能は利用できないことをご注意くださ
い。

実数の表示形式
ここではデータビューでの実数の表示形式を指定します。

小数点以下桁数
小数点以下何桁まで表示するか指定します。設定桁以降については四捨五入して
表示されます。

指数形式
チェックをすると、実数を指数形式で表示します。たとえば小数点以下桁数 3 桁
で 1234.567(= 1.234×103)の場合は 1.235e+003 と表示します。

スクリプト編集画面
スクリプト編集画面に関するパラメータを指定します。

常に最善面に表示
チェックをすると、スクリプト編集画面を常に最前面に表示します。
44

プロジェクト表示順(Object Browser)
プロジェクトフォルダ内での、プロジェクトのソート方式を指定します。

名前順
プロジェクトファイル名のアスキーコード順にソートします。

更新日付順
プロジェクトファイル名の更新日時順にソートします。

メッセージウィンドウ

表示の最大文字数
メッセージウィンドウで表示される文字数を制限します。この文字数を超えた分
についてはメッセージウィンドウには表示されません。表示文字数が多くて処理
速度が遅くなる場合には、少なめに設定してください。

メッセージを Log ファイルに累積
チェックをすると、メッセージウィンドウに表示された内容をそのままファイル
に記録します。記録するファイル名はユーザの作業フォルダ以下の
message_window.log です。なお、ファイルの保存先およびファイル名は変更可
能です。

Log ファイルのパス、参照ボタン
メッセージウィンドウの内容を記録するファイルのパスを指定します。参照ボタ
ンを押下すると Log ファイルの保存先を選択するダイアログが開きます。

メッセージに時刻を追加
チェックをすると、表示されるメッセージ一行ごとに、そのときの時間を行末に
追加して表示します。

GUI 設定

プロジェクトボードカラー
プロジェクトボードの色を指定します。

矢印線幅
アイコン同士を繋ぐ矢印線の幅を指定します。

矢印線カラー
アイコン同士を繋ぐ矢印線の色を指定します。

デフォルト値
プロジェクトボードの色等を初期値に戻します。

環境変数
45
ここでは、プロジェクト共有(ユーザー単位)の環境変数の設定を行います。定義は、
次のルールに従います。
1.
行の先頭に、
「##」で始まる行は無視されます。
2.
「変数名=値」の形式で行います。
注:変数名が重複した場合は、最初の定義が有効となります。
図 2-19
環境変数の設定
ここで定義した変数名は、スクリプトから取得可能となります。
例:
yPath = get_usr_env(“Y_PATH”); //yPath = “c:/foo/y.vdt” となる
また、定義した内容は、ユーザールート以下の ScriptEnvDefinition.txt というファイルに
保存されます。このファイルは事前に設定しておくことも可能です。
2.4.3.
表示
画面表示の設定に関するメニューです。

ツールバー
46
チェックをすると、ツールバーを表示します。

ステータスバー
チェックをすると、ウィンドウの下にあるステータスバーを表示します。
図 2-20
2.4.4.
表示メニュー
ウィンドウ
プロジェクトボードの表示についてのメニューです。
図 2-21 ウィンドウメニュー
メニュー説明

表示方法
以下の 4 項目はプロジェクトボードの表示方法です。次のうちから 1 項目を選択しま
す。

デフォルト
ウィンドウの表示状態をデフォルト状態に戻します(最大化表示)。
 重ねて表示
サブウィンドウを重ねて表示します。
 上下に並べて表示
サブウィンドウを上下に並べて表示します。
 左右に並べて表示
サブウィンドウを左右に並べて表示します。

最小化ウィンドウの整列
最小化されたウィンドウを整列します。

その他ウィンドウ
47
プロジェクトボード及びその他開いているウィンドウ
48
2.5. ツールバー
ツールバーの機能は、メニューバーと同じです。詳細については、メニューバーの項を
参照してください。印刷はプリンタ選択と BMP ファイルへの保存の両方が可能です。
図 2-22
ツールバーの機能
49
2.6. メッセージ表示ウィンドウ
メッセージ表示ウィンドウは、以下のメッセージを表示します。

システム処理メッセージ
ファイルの保存などを行ったときに表示されるメッセージです。

プロジェクト実行メッセージ
プロジェクト上で実行をしたときの実行状況。

エラーメッセージ
何らかのエラーが発生した場合に表示されます。
メッセージ表示ウィンドウの詳細な設定はメニューバーの「ツール」→「プロパティ」
でおこないます。また、メッセージウィンドウの上バーをダブルクリックすると、VAP 本
体から分離します。これを実現するためには、VAP ルートディレクトリ、または、ユーザ
ールートディレクトリ(ここのユーザー独自のものを設定する場合)にある、
sys_default_set.txt ファイルを開き、
「メッセージウィンドウが固定」 を False に設定す
る必要があります。デフォルトでは True (固定)に設定されています。
50
図 2-23
メッセージウィンドウの分離
51
3.
データ管理
3.1. 概要
本章はデータマイニングの対象であるデータのシステムへの導入について紹介します。
VAP は、次の 4 種類のデータをシステムに取り込むことが可能です。

データファイル

データフォルダ(複数データファイルを含むもの)

S-オブジェクト(data.frame)

データベース (Access, Oracle など)
以下では、データファイル、データフォルダについて紹介します。S-オブジェクト、デー
タベースについては、外部連携の項を参照して下さい。
52
3.2. データファイル
VAP は CSV 形式のテキストファイルを、データファイルとして取り込むことができま
す。拡張子は csv あるいは txt とし、データはコンマ、スペース、タブ、セミコロンのい
ずれかで区切ります。
図 3-1 データファイル例:weather.csv
VAPでは取り込んだファイルは内部バイナリ形式の vdt ファイルに変換されます。vdt
ファイルの仕様は次のようになります。
行数
2GB 行まで (最大 2,147,483,647 行)
列数
2GB 列まで (最大 2,147,483,647 列)
ただし、列数が大きい場合、動作が重くなる傾向がありますので、
データは行方向に長くなるように保持していただいたほうが処理が
高速になります。
整数列
最大:2147483647 最小:-2147483647
実数列
最大:1.7976931348623158e+308
最小:-1.7976931348623158e+308
文字列の列
1 セルの文字列の長さは 1023 バイト以下。
半角文字(1 バイト文字)で 1023 文字。
全角文字(2バイト文字)で 511 文字。
ただし、スクリプト関数 read_from_text_file で読み込んだ場合や、
(#begin #end)のような特定の文字列定義を用いた場合の文字列の
53
文字列の長さは制限なしとなります。
(*メモリ上に載るサイズとな
ります。
)
欠損値
データインポートにおいて、数値列の場合、欠損値を特別に扱うこ
とが可能です。整数列の場合は最小値(-2147483647)として、実数
列の場合は-INF として扱われます。
54
3.3. アイコンの導入と削除
データファイルをプロジェクトに貼り付ける(データを導入する)には、次のいずれ
かの方法によって行います。

Windows のエクスプローラなどから、データファイルアイコン(複数も可)をドラ
ッグ(マウスの左ボタンを押したまま動かす操作)をして貼り付けます。

アイコンをオブジェクトブラウザ経由で貼り付けます。いったんオブジェクトブラ
ウザに登録されたアイコンは、繰り返し利用することができます。

プロジェクトボードの何もない場所を右クリックして、メニューから 新規アイコン
作成 → 外部データ入力 → ファイル を選択します。
図 3-2 ドラッグアンドドロップによるデータの導入
55
図 3-3
プロジェクトボード上でのデータ導入
導入可能なファイルの種類は以下のものになります。

内部バイナリ形式ファイル(vdt)

テキストファイル(txt,csv)

Excel ファイル(xls,xlsx,xlsm,xlsb)
このうち、テキストファイル・Excel ファイルについては元のファイルを取り込まずに元のフ
ァイルを参照するため、元のファイルを削除すると再実行(再取り込み)ができなくなります。
56
アイコンの削除について
プロジェクトに貼り付けられたデータアイコン、および、処理アイコン、スクリプトア
イコンは、そのアイコン上での右クリックメニュー→削除にある、削除、または完全削除
を指定し、アイコンをプロジェクトから削除します。完全削除とは元に戻せない削除で、
削除は右クリックメニューから元に戻すことができます。
アイコン削除のショートカットキーは以下のものがあります。
アイコンをクリックして DEL キー
削除
アイコンをクリックして Shift+DEL キー
完全削除
プロジェクトボードをクリックして Ctrl+Z
元に戻す
図 3-4
削除または完全削除の選択
57
3.4. データインポート
3.4.1. データインポート
プロジェクトボードに導入したテキストデータは、VAP が扱える形にデータを変換する
必要があります。これをデータインポートといいます。データインポートは、そのデータ
が使用されるときに行われます。例として、右クリックメニューからデータビューを選び
ます。
データインポートを開始すると、インポート設定画面が開きます。
図 3-5
インポート設定画面
58
項目を設定して OK ボタン を押すと、インポートを開始します。正しくインポートさ
れると、データビュー画面が開かれます。
データインポートでは、様々な形式のデータを読み込めるように、豊富なオプション
が備わっています。データ取り込み時にエラーがあった場合に、それを除外したり、適
切な値で補填し、致命的な問題がない限りデータを取り込めます。エラーがあった際に
は、エラーに対する処理結果を確認することができます。エラーが発生したセルの一覧
表が出力されるので、必要があればこれを用いて高度なエラー処理を行うことができま
す。
項目説明

オプション
データ取込の際の設定を行うことができます。この欄で様々な設定を行った後、形式
再判定ボタンを押すと、設定内容に基づいて列形式を再度判定することができます。
判定結果は列形式選択の欄に反映されます。また、先頭データ表示の欄に設定内容に
基づいたプレビューが表示されます。
図 3-6

オプション設定
区切り文字
データファイルにおいてデータを区切っている文字を選択します。カンマ、タブ、
セミコロン、スペースのいずれかから選択するか、区切り文字そのものを直接入
力してください。区切り文字として使える文字は、英数字1文字、または、「”(ダ
ブルクォーテーション)」以外の記号1文字となります。デフォルトでは区切り文
字はカンマとなっています。
区切り文字を変更したあと形式再判定ボタンを押すと、指定した区切り文字を用
いて列形式を判定し直すことができ、列形式選択の欄に判定結果が反映されます。

エンコード
ファイルのエンコードを指定します。日本語を含むテキストファイルの標準的な
59
エンコードはすべて揃っています。デフォルトのエンコードはシフト JIS となっ
ています。
エンコードを変更したあと形式再判定ボタンを押すと、指定したエンコードを用
いて列形式を判定し直すことができ、列形式選択の欄に判定結果が反映されます。

セル内のカンマ・改行を置き換える文字
VAP ではセル内の文字列にカンマや改行を含むことはできません。そのためそれ
らの文字を他の文字に置き換えて取り込む必要があります。この設定では、カン
マや改行を置き換える文字を指定します。カンマ及び改行以外の任意の文字列を
指定することができます。デフォルトは「|(縦棒、パイプ)」となっています。
この設定を変更したあと形式再判定ボタンを押すと、指定した設定を用いて列形
式を判定し直すことができ、列形式選択の欄に判定結果が反映されます。

属性自動判定に使用する行数
VAP ではファイルの先頭から何行かをあらかじめ読み込み、列の属性を自動的に
判定します。この設定では、列の属性を自動判定する際に使用するデータの行数
を指定します。デフォルトでは 100 行となっています。
この設定を変更したあと形式再判定ボタンを押すと、指定した行数のデータを用
いて列属性を判定し直すことができ、列形式選択の欄に判定結果が反映されます。

先頭行を列名として使う
ファイルの先頭行を列名として扱うかどうかを指定します。チェックを入れた場
合、ファイルの先頭行は列名として扱われます。チェックを入れなかった場合、
先頭行もデータとして取り込まれます。デフォルトでは先頭行を列名として使う
ようになっています。
この設定を変更したあと形式再判定ボタンを押すと、指定した設定を用いて列形
式を判定し直すことができ、列形式選択の欄に判定結果が反映されます。

その他の設定
その他の形式設定のダイアログを開きます。このダイアログでは、このダイアロ
グでは、データ開始位置の設定と、エラー発生時の設定を行うことができます。
詳しくはその他の設定の項目を参照してください。

形式再判定
オプションで指定した設定を用いて、列形式を自動判定します。判定結果は列形
式選択の欄に反映されます。それまでに列形式選択の欄で設定した内容はすべて
60
失われますのでご注意ください。

その他の設定
このダイアログでは、データ開始位置の設定と、エラー発生時の設定を行うこと
ができます。
図 3-7

その他の形式設定ダイアログ
データ開始位置の設定
タイトルと見なす行(列名を含む行)と、データの開始行を指定できます。この設
定を利用すると、ファイルの先頭に(説明書きや作成日などの)データではない情報
を含むファイルから、必要な部分のみをインポートすることができます。
タイトル行は複数行にわたって指定することができ、例えば 1 行目から 3 行目
をタイトル行とした場合には、1 行目から 3 行目までの内容を「_(アンダーバー)」
で結合したものがタイトルとなります。先頭行を列名として使うの設定で、先頭
行を列名として使わないようにしていた場合には、タイトル行の設定は行えませ
ん。デフォルトでは 1 行目をタイトル行と見なします。
61
データ開始行には、データと見なし始める行を指定します。それ以前の行はイ
ンポートされません。先頭行を列名として使うの設定で、先頭行を列名として使
うようにしていた場合には、データ開始行として 2 以上の値を指定できます。先
頭行を列名として使わないようにしていた場合には、1 以上の値を指定できます。
デフォルトでは 2 行目がデータ開始行となっています。

ダブルクォーテーション
テキストファイルのダブルクォーテーションの処理をしていします。セルを囲む
ダブルクォーテーションを除外するにチェックを入れると、セルの両端のダブル
クォーテーションを無視してデータを読み込みます。ダブルクォーテーションで
囲まれていないセルには何もしません。
セルの両端と内部にダブルクォーテーションが存在する場合、読み込みがうまく
いかない場合がありますので、そのような場合にはセルを囲むダブルクォーテー
ションを除外するのチェックを外してください。

エラー発生時の設定
エラー発生時の設定を行うことができます。エラーが発生しても強制的に読み
込むにチェックを入れると、エラーが発生しても最後まで強制的に読み込み、ア
イコンに結果を出力します。チェックしない場合には、エラー発生時に処理を中
止し結果を返しません。
エラー処理結果を出力するにチェックを入れるとエラー発生時にエラーが発生
したセルの一覧を取得することができます。
最大出力エラー数では、エラー発生時にメッセージウィンドウに出力されるエ
ラーの数を指定することができます。0 以上の値を指定することができます。デフ
ォルトでは 100 行となっています。
また、エラー自動補填のためのパラメータを指定することができます。このパ
ラメータは、列形式選択のエラー処理方法で自動を設定した場合に使用されます。
自動補填はスクリプト関数の「filling_missing_data」により行われます。ここで
指定するパラメータは、この関数の同じ名前のパラメータに対応します。詳しく
はスクリプト関数 filling_missing_data の項を参照してください。デフォルトでは
nLoop=20、nCluster=5、distType=Euclid、randSeed=0 となっています。

データサンプリング
データサンプリングの欄では、データの一部分のみをインポートする場合の設定を行
うことができます。データの先頭の一部のみを取り出すことや、一定間隔毎に取り出
す、あるいはランダムに取り出すといったことが可能です。
62
図 3-8 データサンプリング設定欄

サンプリング方法
サンプリング方法では、サンプリングの方法を指定します。全件、先頭から、一
定間隔、ランダムのいずれかから選択します。
全件ではデータをすべて取り込みます。先頭からでは、データ先頭から、指定し
た行数を取り込みます。一定間隔では、データの先頭から、一定の間隔毎にデー
タを取り込みます。ランダムでは、指定した行数だけランダムに取り込みます。
デフォルトでは全件となっています。
サンプリング方法を変更すると、方法に応じて必要な設定項目が現れます。

行数
取り込む行数を指定します。1 以上の値を指定します。デフォルトでは 1000 行と
なっています。
この設定項目は、サンプリング方法を 先頭から、一定間隔、ランダム に設定し
た場合のみ現れます。

開始行番号
取り込み開始行数を指定します。1 以上の値を指定します。デフォルトでは 1 とな
っています。
この設定項目は、サンプリング方法を 先頭から、一定間隔 に設定した場合のみ
現れます。
※その他の設定において、データ開始位置の設定がありますが、その設定が反映
された上での開始行番号指定になります。例えばデータ開始行として 10 を設定し、
開始行番号として 5 を設定していた場合には、ファイルの 15 行目を開始行として
サンプリングが行われます。

逆順
ファイルの末尾から取り込むかどうかを指定します。チェックを入れた場合、指
定した内容に従ってファイルの末尾からサンプリングを行います。デフォルトで
63
は先頭から取り込みます。
この設定項目は、サンプリング方法を 先頭から、一定間隔 に設定した場合のみ
現れます。

間隔
データを取り込む間隔を指定します。例えば 2 と指定すれば、1行置きにデータ
を取り込みます。デフォルトでは 1 となっています。
この設定項目は、サンプリング方法を 一定間隔 に設定した場合のみ現れます。

乱数のシード
ランダムサンプリングの際の乱数のシードを指定します。シードとは、乱数を生
成する元になる値であり、同じシードを指定すれば同じサンプリング結果が得ら
れます。デフォルトでは 0 となっています。
この設定項目は、サンプリング方法を ランダム に設定した場合のみ現れます。

列形式選択
インポートする形式を列ごとに設定します。数値列の取り込み時にエラーがあった
場合はその処理を行うことができます。この欄の1行1行が、ファイルの各列に対
する設定となります。
図 3-9

列形式選択欄
列数
取り込むデータの列数を指定します。自動判定で列数を正しく判定できなかった
場合にはこれを変更します。ただし、自動判定で判定された列数より減らすこと
はできません。この場合、代わりに選択を利用して不要な列を取り込まないよう
にしてください。
64

列名
列ごとの列名を指定します。列名に「,(カンマ)」や「”(ダブルクォーテーション)」
は使用できません。また、複数の列に同じ列名を指定することはできません。

列属性
列属性では、データの列ごとの型を指定します。整数、実数、文字列のいずれかから
選びます。

エラー処理方法
エラー処理方法では、数値列(整数、実数)について、取り込みエラーがあった際の処
理方法を選択します。数値列に空白のセル、または数値以外の文字が含まれるセルが
あった場合、取り込みエラーが発生します。
列属性が文字列の列には設定することはできません。自動、除外、ユーザ指定から選
択します。自動では、データの分布を崩さないように、適切な値を自動的に補填しま
す。除外では、取り込みエラーがあった行を除外します。ユーザ指定では、取り込み
エラーがあったセルにエラー時補填値で指定した値を埋めます。デフォルトでは自
動となっています。
エラーがあった場合、
どこでエラーがあったかをメッセージウィンドウに表示します。
表示する行数はその他の設定の最大出力エラー数で指定できます。この設定につい
て詳しくは、その他の設定の項目を参照してください。
エラー処理方法として自動を用いた場合、メッセージウィンドウに補填処理の誤差を
表示します。自動補填に関するパラメータは、その他の設定の自動補填のパラメー
タで指定できます。自動補填のパラメータに関しては、その他の設定の項目を参照
してください。

エラー時補填値
エラー時補填値では、エラー処理方法をユーザ指定とした場合の補填値を設定しま
す。数値を入力することができます。デフォルトでは 0 となっています。

選択
選択は、インポートする列を指定します。チェック入った列のみが取り込まれます。
デフォルトではすべての列にチェックが入っています。
例)
「weather.csv」 には、湿度が 「??」 の行があります。湿度の列を整数列とし、
「??」がある行を除外する場合の指定方法は、下図のようになります。結果、「??」
は整数でないと判断されてエラー処理方法が適用され、行が除外されます。
65
図 3-10

weather.csv のインポート例
先頭データ表示
インポートするデータの先頭部分の何行かを表示します。オプション設定や列形式
選択の際の目安にしてください。

プレビュー更新
エラー処理方法などを変更すると、プレビュー更新ボタンが押せるようになりま
す。プロジェクト内に取り込む前に、設定変更により、どのような結果になるか
ということを確認することができます。
図 3-11
先頭データ表示欄
3.4.2. インポート後のデータ
インポートしたあと、データは VAP が直接扱える形式(バイナリ形式)になっていま
す。インポート後のアイコンは、オブジェクトブラウザのデータフォルダにドラッグし
66
て登録することができます。バイナリ形式のデータは、オブジェクトブラウザにドラッ
グ&ドロップして登録すると、拡張子 vdt がつきます。バイナリ形式のデータはインポ
ートがすでに済んでいるので、再び使用するときには、インポートする必要はありませ
ん。
図 3-12
オブジェクトブラウザへのデータの格納
3.4.3. データの再取り込み
一度データをインポートしたが、元のファイルに新しいレコードが追加された場合や、
取り込んだデータの列形式が正しく設定できていなかった場合には、再度データを取り
込み直すことができます。データアイコンを右クリックし、再取り込み→同形式、また
は、再取り込み→形式再指定を選択します。同形式では、全く同じ設定でデータを取り
込み直します。元のファイルに新しいレコードが追加された場合に便利です。形式再指
定では、形式を変更して取り込み直すことができます。列形式が正しく設定できていな
かった場合に便利です。
図 3-13 データの再取り込み
エラー処理結果
インポートした後には、取り込みエラーがあったセルに対して、どのようなエラー処
理が行われたかを確認することができます。データアイコンを右クリックし、その他→
エラー処理結果表示を選択すると、取り込みエラーが発生したセルの行番号、列番号、
処理前のセル内容、処理後のセル内容の一覧を確認することができます。また、その他
→エラー処理結果アイコン化を選択すると、エラー処理結果の一覧表が別アイコンとし
てプロジェクトボード上に配置されます。インポート後、より高度なエラー処理を行い
67
たい場合には、このテーブルを利用することができます。なお、取り込みエラーが発生
していないアイコンに対してこれらを選択した場合、メッセージウィンドウにその旨の
メッセージが出力されるだけで他には何も発生しません。
図 3-14 エラー処理結果表示
※エラー処理結果テーブルにある行番号や列番号は、ファイルに対する番号ではなく、
エラー処理後のデータに対する行番号や列番号となっています。そのため、エラー処理
として除外を用いた場合や、列形式選択において一部の列を取り込まないように設定し
た場合には、ファイルの中でのセルの位置とずれることがあります。これは、エラー処
理結果テーブルをデータインポート後に利用することを考慮しているためです。また、
除外された行や列に関する情報は、エラー処理結果テーブルに出力されません。
エラー処理結果テーブルの内容
図 3-15 エラー処理結果テーブル

Missing.Row
エラーがあったセルの行番号です。この行番号は、インポート前のファイルに対する
行番号ではなく、エラー処理が済んだ後のデータに対する行番号です。

Missing.Col
エラーがあったセルの列番号です。この列番号は、インポート前のファイルに対する
列番号ではなく、列選択が済んだ後のデータに対する列番号です。

ColName
エラーがあったセルの列名です。

ColType
エラーがあったセルの属性です。

Missing.Value
68
エラーがあったセルのエラー処理前の値です。

Action
エラー処理方法及びエラー処理結果を示します。
エラー処理方法(エラー処理結果)
の 形 で 示 さ れ て いま す。 エ ラ ー 補 填 方 法 が 自動 の 場 合 に は エ ラー 処理 方 法 に
AutoReplace が、ユーザ指定の場合には Replace が入ります。エラー処理結果には
置き換えた値が入ります。
パラメータ取得
データアイコンからパラメータ取得を行うことで、スクリプトから全く同じ設定でデ
ータを取り込むことができます。パラメータ取得は、データアイコンを右クリックし、
その他→パラメータ取得を選択することで行います。これによりクリップボードにパラ
メータをコピーすることができます。
図 3-16 パラメータ取得
この内容をスクリプトに貼りつけて実行することで、GUI 画面上で設定した設定を用
いてファイルをインポートすることができます。全く同じ形式のデータを何度も取り込
み直す必要がある場合、非常に便利です。
69
図 3-17 スクリプトへの貼り付け・実行
70
3.5. データの保存
各アイコンが保持する計算結果のデータをファイルに保存することができます。次の
いずれかの方法によって行います。

データビューウィンドウのメニューバーから、ファイル(F) → 名前をつけて保存
(S) を選びます。この場合保存できるデータ形式は、コンマ区切り CSV 形式のテ
キストファイルとなります。

結果を保存したいアイコンを右クリックして、メニューから保存を選びます。
この場合保存できるデータ形式は、次のとおりです。

テキスト形式 (拡張子 csv または txt)
コンマ区切りの CSV 形式です。
データビューから保存する場合の形式です。

バイナリ形式 (拡張子 vdt)
VAP が直接扱うことのできるデータ形式です。この形式で保存したファ
イルはテキスト形式ではないため、エディタで編集することはできませんが、
ファイルを導入するときに、改めてデータインポートをしなくて良いという
利点があります。

S-オブジェクト形式
S-PLUS のオブジェクトとして保存します。ファイルではなく、オブジェクト
として保存される点に注意してください。

オブジェクトブラウザに保存
データをオブジェクトブラウザに登録します。

データベースに保存
データをデータベースに保存します。ODBC を選択した場合は既に登録
されているデータソースから対象となるデータソースを選択してください。
71
図 3-18
アイコンを右クリックして結果を保存
72
3.6. データフォルダ
プロジェクトには、データファイルを含むフォルダを導入することができます。フォ
ルダを導入するには、ファイルと同様に、エクスプローラなどからそのフォルダをプロ
ジェクトボードにドラッグすることで行います。
図 3-19
フォルダをプロジェクトボードにドラッグ
フォルダは、オブジェクトブラウザにも登録することが可能です。
図 3-20
フォルダをオブジェクトブラウザにドラッグ
フォルダには、テーブル表示とモジュール以外のアイコンをつなぐことができません。
フォルダ内のファイルに対して処理をおこなうには、モジュールを使用しなければなり
ません。詳しくはモジュール の項を参照してください。
73
3.7. モデル
モデルは、モデル作成アイコンで作成される、説明変数からクラスへと分類する規則の
ことです。モデルは、形式が普通のデータとは異なり、データビューなどで中身を確認す
ることは通常できません(Decision Tree など、中身を確認できるモデルもあります)。
モデルは、

モデルファイル ( *.sol ファイル、*.vModel ファイル )

モデルアイコン
の形で保持することができ、別のプロジェクトで再利用することが可能です(モデルの詳
細に関しては分類分析の項を参照してください)
。
モデルファイル
モデルファイルを作成するには次のいずれかを行います。

プロジェクト上のモデル作成アイコンを左クリックして、ボタンを押したままオブ
ジェクトブラウザのソリューションフォルダにドロップします。モデルは拡張子 sol
のファイルとして表示されます。
図 3-21

ドラッグアンドドロップによるモデルファイルの作成
モデル作成アイコンを右クリックして、結果の保存→判別モデルを選択します。保
存場所とファイル名を指定すると、拡張子 vModel のファイルとして保存されます。
74
図 3-22
右クリックメニューからモデルファイルの作成
モデルアイコン
モデルアイコンを作成するには、データの導入と同様に、モデルファイルをプロジェク
トにドラッグします。単にモデルを複製したい場合には、モデル作成アイコンの右クリッ
クメニューから「判別モデルアイコン作成」とすれば、プロジェクト上にアイコンが作成
されます。
75
図 3-23
モデルアイコンの作成
モデルアイコン単体では、何も行うことはできません。予測アイコンや、モデル統合ア
イコンに矢印線をつなぐことによってモデルを再利用してください。モデルファイルから
アイコンを生成する場合は、データのインポートの場合と同様、エクスプローラなどから
ドラッグします。
図 3-24
モデルファイルの取り込み
76
4.
プロジェクト
4.1. 概要
VAP では、処理アイコンと、データの流れをあらわす矢印(処理フロー)をひとまとめ
にしてプロジェクトという単位で管理します。この章では、プロジェクトの操作と管理方
法について説明します。
図 4-1
プロジェクトの例
77
4.2. プロジェクトの管理
4.2.1. 新規作成
プロジェクトを新たに作成するには、メニューバーのプロジェクト (F)からプロジェクト
の新規作成を選びます。また、前回終了したときにすべてのプロジェクトを閉じていた場
合は、自動的に新しいプロジェクトが作られます。
図 4-2
プロジェクトの新規作成
4.2.2. 保存
新規作成したプロジェクトには、仮の名前(Project1.pr0 といったような名前)がつけ
られます。作成したプロジェクトを保存するには、まず名前をつけて保存をします。次の
いずれかの方法で行います。

保存したいプロジェクト上の何もない場所で右クリックしてメニューを出し、名
前をつけて保存を選ぶ。

メニューバーのプロジェクト(F)から名前を付けて保存を選ぶ。

保存したいプロジェクト上の何もない場所で一度左クリックを押した後、Ctrl+S
を押す。
(既存のプロジェクト上の場合は、自動で上書きされます。
)
78
図 4-3
右クリックメニューから保存
保存する前に、まず名前を要求されますので、保存したい名前を入力してください。入
力した名前には自動的に VAP プロジェクトの拡張子 pr0 がつけ加えられます。
79
図 4-4
名前をつけて保存ウィンドウ
プロジェクトを保存すると、オブジェクトブラウザ上のプロジェクトフォルダに登録さ
れます。さらに下の階層のフォルダに保存したい場合は、フォルダ名も指定してください。
次の図では、tmp フォルダの下に Project1.pr0 という名前でプロジェクトを保存すること
になります。
80
図 4-5
特定のフォルダの下に保存する場合
名前をつけたプロジェクトに変更を加えたあと、もう一度保存する場合、上書き保存を
行えば名前をつける手順が省けます。上書き保存は次のいずれかの方法で行います。

保存したいプロジェクト上の何もない場所で右クリックしてメニューを出し、上
書き保存を選ぶ。

メニューバーのプロジェクト (F)から上書き保存を選ぶ。
81
図 4-6
右クリックメニューから上書き保存
4.2.3. 開く
保存したプロジェクトを開くには、次のいずれかの方法で行います。

メニューバーのプロジェクト (F)から開くを選ぶ。

オブジェクトブラウザの「プロジェクト」フォルダの中にある、開きたいプロ
ジェクトを右クリックしてプロジェクトを開くを選ぶ。
82
図 4-7
プロジェクト選択ウィンドウ
4.2.4. 削除
プロジェクトをオブジェクトブラウザから削除するには、次のいずれかを行います。

削除したいプロジェクトを右クリックして削除を選ぶ。

削除したいプロジェクトを選択し DEL キーを押す。
削除したプロジェクトは、復元することができません。重要なプロジェクトは削除する
前にもう一度確かめるか、念のためにエクスポート(次項)しておいてください。
図 4-8
プロジェクトの削除
83
4.2.5. プロジェクトのエクスポート
プロジェクトは、さまざまなファイルから構成されています。プロジェクトのエクスポ
ートは、プロジェクトを 1 つのファイルに変換する機能です。エクスポートしたファイル
は、プロジェクトのすべての情報を含みます(DB を含む。プロジェクトでもエクスポート
できる)
。次のような用途に有効です。

作成したプロジェクトを異なるマシンの間で交換したいとき

遠く離れた人に、添付ファイルの形でプロジェクトを渡したいとき

作成したプロジェクトのバックアップを取りたいとき。
図 4-9
エクスポートファイル利用例
エクスポートは次のいずれかの方法で行います。

保存したいプロジェクトのボード上の何もない場所で右クリック、メニューから
エクスポート→プロジェクト全体を選ぶ。

メニューバーのプロジェクト (F)からエクスポートを選ぶ。

オブジェクトブラウザで、エクスポートしたいプロジェクトを右クリックして、
メニューからエクスポートを選ぶ。
84
図 4-10
プロジェクトボード上からエクスポート
図 4-11
メニューバーからエクスポート
ファイル名を入力するウィンドウが開きますので、保存したいフォルダを選択してファ
イル名を入力してください。処理アイコンの結果をエクスポートしない場合は、
「処理アイ
コンの結果をプロジェクトに含む」のチェックを外してください。さらに、処理アイコン
の結果を含まない場合は、起点になるアイコンの結果のみ含めるかどうかを選択すること
ができます。エクスポートしたファイルには自動的に VAP エクスポートファイル形式の
拡張子 prj がつけ加えられます。
85
図 4-12
エクスポートファイル名を指定
4.2.6. アイコン定義のエクスポート
プロジェクト中のアイコンを定義した内容をエクスポートすることもできます。アイコ
ン定義のエクスポートによって、スクリプトからプロジェクトの外部にあるアイコンの設
定内容を利用することができます。アイコン定義のエクスポートを実行するには、プロジ
ェクトボード上のアイコンが無い場所から右クリックして、エクスポートを選び、アイコ
ン定義をクリックします。
図 4-13
アイコン定義のエクスポート
次にアイコン定義に関するファイルのエクスポート先を指定します。出力先を指定した
ら OK を押してください。
86
図 4-14
アイコン定義の出力フォルダの指定
以上でアイコン定義のエクスポートは完了です。エクスポートされたアイコンの呼び出
し方法については、マニュアルの「スクリプトの特殊な使い方」にある「■アイコンの機
能呼び出し」の項目や、ヘルプの「アイコン名での呼び出し」の項目を参照してください。
4.2.7. プロジェクトのインポート
インポートとは、エクスポートした prj ファイルを VAP に取り込むことを指します。エ
クスポートしたファイルをインポートするには、メニューバーのファイル(F)からインポー
トを選んで、ファイルを指定します。インポートに成功すると、インポートしたプロジェ
クトが開きます。
4.2.8. プロジェクトの共有
1 つのマシンを複数のユーザで共用している場合は、プロジェクトを共通フォルダにいれ
ることによって、プロジェクトの共有ができます。プロジェクトを共通フォルダに入れる
には、オブジェクトブラウザ上の対象プロジェクトを右クリックし、共通へコピーを選択
します。共通フォルダにコピーされたプロジェクトは、取り込みをおこなうことによって、
VAP を操作できるすべてのユーザが開くことができます。
87
図 4-15
4.2.9.
プロジェクトの共有
プロジェクトのバックアップ
VAP はプロジェクト保存時にユーザフォルダ下のプロジェクト(バックアップ)以下にプロジ
ェクト名.pr1 というフォルダ名でプロジェクトをバックアップします。
図 4-16 バックアップフォルダ
プロジェクトが破損していて開けない場合、バックアップがあれば下記のようなダイアログが
表示され、
「はい」を選択するとバックアップから復旧してプロジェクトを開きます。
88
図 4-17 バックアップからの復旧
バックアップからの復旧時、破損したプロジェクトをユーザフォルダ下のプロジェクト(バッ
クアップ)内にプロジェクト名.pr0.old というフォルダ名で退避します。
図 4-18 破損プロジェクトの退避
89
4.3. アイコンと処理フロー
この節では、アイコンをつなげて処理フローをつくり、実行する手順を説明します。処
理フローの作成手順は、おおまかに次のようになります。
1.アイコンを貼り付ける。
2.矢印線をつなぐ。
3.実行する。
4.処理内容を確認する。
図 4-19
処理フローの作成手順
VAP では、この 1~4 のステップを繰り返しながら、1 つのプロジェクトを作っていきま
す。この順序に沿って説明します。

アイコン

矢印線

フローの実行

データビュー
4.3.1. アイコン
貼り付け
アイコンを、プロジェクトに貼り付けるには次のようにします。
(1) オブジェクトブラウザ上で、使いたいアイコンにマウスポインタをあわせ、左ボタ
ンを押して、押したままにする。
(2) オブジェクトボードに、左ボタンを押したままマウスポインタを動かす。
(3) アイコンを置きたい場所で左ボタンを離す。
90
図 4-20
アイコン貼り付けの手順
アイコンのコピー・貼り付け
アイコンをコピーするには、アイコンを右クリックしてコピーを選びます(またはアイ
コンを左クリックしてからキーボードで Ctrl-C を入力します)。コピーしたアイコンを貼
り付けるには、右クリックメニューから貼り付けを選びます(またはキーボードで Ctrl-V
を入力します)
。データアイコンやスクリプトアイコンの複製を作る場合に利用します。
図 4-21
アイコンのコピー・貼り付け
アイコンの削除
プロジェクトボードに置いたアイコンを削除するには、次のいずれかの操作を行います。
 アイコンを選択(左クリックして文字の色を変える)して、DEL キーを押す。
 アイコンを右クリックして、メニューから削除→削除を選ぶ。
91
 アイコンを右クリックして、メニューから削除→完全削除を選ぶ。
削除したアイコンは、右クリックメニューの「元に戻す」(Ctrl-Z)で復元することがで
きますが、完全削除では元に戻せません。スクリプトアイコンや、フィルタリングアイコ
ンなど、入力パラメータの多いアイコンを削除する際には注意してください。詳しくは「ア
イコンの導入と削除」の節を参照ください。
図 4-22
アイコンの削除と完全削除
4.3.2. 矢印線
矢印線のつなぎ方
アイコンとアイコンを矢印線でつなぐには次のようにします。
(1) 始点となるアイコンにマウスポインタをあわせ、マウスの真ん中のボタンを押して、
押したままにする(真ん中のボタンがない場合は、右のボタンを押して、押した
ままにする)
。
(2) 終点となるアイコンに、ボタンを押したまま移動し、そこでボタンを離す。
図 4-23
矢印線のつなぎ方
※ 出力がないアイコンを矢印の起点にしたり、入力のないアイコンを矢印の終点にした
92
りすることはできません。
アイコンの挿入
矢印でつながったアイコン間に、別のアイコンを挿入するには、矢印線にマウスポイン
タを合わせて真ん中のボタンを押し、押したままにして、別のアイコンまで移動してボタ
ンを離します。
※ 真ん中のボタンがない場合は、右のボタンを押しながら左のボタンを押し、両方押し
たまま移動することで矢印をつかむことができます。
図 4-24
アイコンの挿入
矢印線の削除
矢印線を削除するには、矢印線を右クリックして、削除を選択します。
図 4-25
矢印線の削除
93
4.3.3. アイコンの実行
アイコンの処理を実行するには、次のいずれかの操作を行います。
 実行したいアイコンをダブルクリックする。
 実行したいアイコンの右クリックメニューから実行を選ぶ。
図 4-26
アイコンの実行
アイコンの実行の際に、パラメータの設定をする必要がある場合は、パラメータの入力
ウィンドウが現れます。パラメータの設定の仕方は、マニュアルの各アイコンの項目を参
照してください。
4.3.4. 処理フローの自動実行
アイコンの実行に、上流のアイコンの結果が必要な場合は、自動的にその上流のアイコ
ンを実行します。さらに上流が必要な場合も同じように自動的にアイコンが実行されます。
このように、フローの最下流のアイコンを実行することにより、自動的にフロー全体の計
算をおこなうことが可能です。ただしパラメータが設定されていないアイコンについては、
パラメータを設定する必要があります。
94
図 4-27
処理フローの自動実行
4.3.5. アイコンの状態と色
処理が終了すると、処理アイコン名の色が図のように黒から赤に変わります。アイコン
名が赤くなったアイコンは入力パラメータと結果データを保持しています。
図 4-28
4.3.6.
アイコン名の色の変化
パラメータと結果の削除
一度アイコンを実行すると、パラメータが設定されます。パラメータが設定されたアイコンは
フローの最下流のアイコンを実行することで自動実行されますが、処理が終了して結果を持つア
イコンについては直接そのアイコンを実行しないと再実行されません。その場合には右クリック
メニューからパラメータと結果の削除、結果のみ削除を選びます。結果のみ削除を行うと、パ
95
ラメータを保持したまま結果を保持しない状態になるので、フローの終端アイコンを実行するこ
とで自動で再実行されます。
図 4-29 結果のみ削除
パラメータも消去してアイコンを初期化したい場合は右クリックメニューからパラメータと
結果の削除、パラメータと結果を削除を選びます。パラメータと結果の削除を行うとパラメー
タが消去されるため、フローの終端アイコンを実行してもパラメータが消去されたアイコンのパ
ラメータ設定画面が表示されます。
図 4-30
パラメータと結果を削除
96
4.3.7. 再実行
右クリックメニューから実行を選んだ場合、あるいはダブルクリックによる実行をした
場合、実行前に必ずパラメータウィンドウが開きます。 一度設定したパラメータを用いて、
もう一度その処理をおこないたい場合には、右クリックメニューから再実行を選びます。
再実行を行うと、前回指定したパラメータを用いるため、パラメータウィンドウは開きま
せん。
図 4-31
アイコンの再実行
4.3.8. データの変更
パラメータは、アイコンの内部に保持されます。このため入力を別のアイコンに差し替
えて再実行を行うことが可能です。ただし、列名、列数、属性が同じ入力に限ります。形
式が異なるデータの場合は、再実行を選択してもパラメータの設定が必要になります。
以下のように、データ「菖蒲」に対して処理を行った後に、別のデータ「別の菖蒲デー
タ」に対してまったく同じ処理を行う場合は、まず、「菖蒲」から伸びている矢印をいった
ん削除し、
「別の菖蒲データ」から矢印を伸ばします。処理の実行には、集計アイコンを右
クリックして、メニューから再実行を選択します。
97
図 4-32
別のデータで再実行
4.3.9. 全処理アイコン結果の削除
処理の最初から、全アイコンを再実行する場合、全処理アイコンの結果を削除すること
ができます。右クリックメニューから「全処理アイコンの結果削除」を選択すると、保持
されていた結果データは削除され、赤くなったアイコンは黒に戻ります。これによりプロ
ジェクトの軽量化が可能です。
98
図 4-33
全処理アイコンの結果削除を選択
4.3.10. データビュー
処理が終わったアイコンの結果を見るには、アイコンを右クリックしてメニューのデー
タビューから開くまたはコピーして開くを選択します。
コピーして開くを選択した場合、実行結果を別ファイルにコピーしてから開くので、開
きっぱなしにしておき別のパラメータを指定して実行した結果と比較するといった使い方
ができます。開くを選択した場合は実行や再実行を行う前に必ず結果画面を閉じてくださ
い。
図 4-34
データビュー
結果を見たいアイコンを、データ&グラフビューにつないでも、見ることができます。
99
図 4-35
テーブル表示によるデータビュー
データビューの機能はデータ&グラフビューと同じです。詳細については、
「データ表示」
の章を参照してください。
4.3.11. 処理結果の保存
処理が終わったアイコンの結果を、オブジェクトブラウザへ保存できます。結果を保持
しているアイコンを右クリックしてメニューから結果の保存、オブジェクトブラウザへ保
存選択します。
図 4-36
処理結果をオブジェクトブラウザへ保存
処理が終わったアイコンの結果を、外部テキストファイルへ保存できます。結果を保持
100
しているアイコンを右クリックしてメニューから結果の保存、テキスト形式を選択します。
区切り文字・実数フォーマット・ダブルクォート、列名を含むかどうかの選択が可能です。
図 4-37
外部テキストファイルへ保存
4.3.12. データアイコンの作成
処理が終わったアイコンの結果を、プロジェクトボード上で直接データアイコンに変換
することができます。結果を保持しているアイコンを右クリックしてメニューから結果の
保存、データアイコン作成を選択します。
101
図 4-38
データアイコンの作成
4.3.13. 入出力マッチング
出力が複数あるアイコンから、矢印線を結ぶと×印が現れることがあります。これは複
数の出力のうち、どれを入力として扱うか(あるいはどのように入力するか)が決まって
いないので、処理できないことを意味しています。この入出力関係を決める作業を入出力
マッチングと呼びます。×印は、入出力マッチングに不備があることを示しています。
次の図の場合、データ「菖蒲」を「ファイル分割」によって分割しているので、出力が 2
つになっており、次のアイコンの入力データが決まりません。このため矢印に×印がつき、
入出力マッチングをおこなう必要が出てきます。
102
図 4-39
入出力マッチングに不備がある場合
入出力の関係を確かめるには、対象となるアイコンにマウスポインタを合わせ、キーボ
ードのシフトキーを押しながら左クリックしてください。入出力関係が下図のように表示
されます。集計アイコンの入出力関係を見ると、アイコンの入力(IN)が空白になってい
て、入力データが決まっていない(何もない)状態になっていることがわかります。
図 4-40
空白の入出力関係
入出力マッチングを行うには、アイコンを右クリックしてメニューから入力マッチング
変更を選択します。入出力マッチングウィンドウが開きます。下図は「集計」の入力マッ
チングウィンドウです。アイコンに入ってくるデータ(対応データ名)を、アイコンの入
力引数名に割り当てます。ここでは、必要な入力データは 1 つなので、1 つのデータを割り
当てます。
103
図 4-41
入出力マッチングウィンドウ
入出力マッチングが正しくおこなわれると、×印が消えます。もう一度入出力関係を確
かめると、IN に入力データが入っていることがわかります。
図 4-42
入出力マッチング設定後
4.3.14. メモ
解析の途中で、解析内容の詳細について記録するためのメモ機能があります。メモには
次の 2 種類があります。
 プロジェクト内で自由に貼りつけるメモ(プロジェクトメモ)
 特定のアイコンに貼りつくメモ(アイコンメモ)
プロジェクトメモを貼り付ける位置は自由に設定できます。アイコンメモは、対象アイ
104
コンのそばにしか貼り付けられませんが、アイコンを右クリックして、メニューからメモ
設定を選択すると対象アイコンのそばに移動します。
メモの作成
プロジェクトボードを右クリックしてメニューから 環境変数&メモ → 新規メモ を選
択すると、プロジェクトメモが作成されます。メモをクリックしてキーを入力することで
文字を書き込むことができます。アイコンメモは、アイコンを右クリックして、メニュー
から メモ設定 を選択します。
図 4-43
メモの作成
105
図 4-44
アイコンメモの作成
メモの移動・編集切り替え
メモには以下の 3 つの状態があります。
1.
編集中
2.
移動中
3.
右クリックメニュー表示
これらの状態は下図のような操作で切り替えることができます。
106
図 4-45
編集・移動切り替え
メモの表示/非表示
メモを右クリックしてメニューから 閉じる を選択すると、そのメモは一時的に非表示
になります。
107
図 4-46
メモを閉じる(非表示)
再度表示するには、プロジェクトメモの場合、右クリックメニューから 環境変数&メモ
内の該当メモを選択すると再度表示されます。アイコンメモの場合は、再度メモ設定 をメ
ニューから選択することで再度表示を行います。
図 4-47
メモを表示(プロジェクトメモ)
メモの削除
メモを右クリックしてメニューから 削除を選択すると、そのメモは削除されます。
メモの設定
メモの背景色を変更するには、
「背景色選択」を、また、メモの背景色や大きさなどを保
108
存するには「現設定をデフォルトとして保存」を選択します。
4.3.15. 範囲を指定して操作する
コピーや削除といったアイコンごとの操作は、処理を行う範囲を指定して、その範囲に
含まれるアイコンに対して一度に処理を行うことが可能です。範囲の指定を行うには、プ
ロジェクトボードの何もないところでマウスの真ん中ボタン(ホイールボタン)を押しな
がら領域を選択し、操作したアイコンを選択します。
※ マウスの真ん中のボタンがない場合は、右のボタンを押しながら左のボタンを押し、
両方押したまま移動することで領域を選択できます。
図 4-48
範囲の指定方法
選択された範囲内のアイコンに対して次の操作を行うことできます。
 フローの移動
 フローの複製(コピー・貼り付け)
 フローの削除
 アイコンの位置揃え
また、シフトキーを押しながら右クリックをすることで複数のアイコンを選択すること
ができます。この場合、移動、位置そろえを行うことはできません。
選択範囲内のフローの移動
選択範囲内のフローは、範囲内を右クリックしたままドラッグすることにより、フロー
全体を移動することができます。
選択範囲内のフローの複製
指定範囲の中にあるフローを複製するには、範囲内を右クリックしてメニューからコピ
109
ーを選択するか、キーボードから Ctrl-C を入力して範囲内のフローを記憶しておいてから、
右クリックメニューの貼り付けを選択します(または Ctrl-V を入力します)。
図 4-49
範囲指定の複製
選択範囲内のフローの削除
指定範囲内にあるアイコンをすべて削除するには、範囲内を右クリックしてメニューか
ら削除を選択するか、キーボードの DEL キーを押します。完全削除(元に戻せない)をす
る場合は完全削除を選ぶか Shift キーを押しながら DEL キーを押します。
図 4-50
選択範囲の削除
110
選択範囲内のアイコンの位置揃え
選択範囲内の位置をそろえることができます。選択範囲内を右クリックしてメニューか
ら次の項目を選択します。
 横方向整列
縦の位置を保ったまま、横にアイコンを揃えます。
 縦方向整列
横の位置を保ったまま、縦にアイコンを揃えます。
図 4-51
選択範囲の整列例(縦方向)
選択範囲内の処理フローの実行
選択範囲内にあるアイコンにつながる処理フローをまとめて実行することができます。
選択範囲内を右クリックしてメニューから実行を選択します。
111
図 4-52 選択範囲の実行
選択範囲内のアイコンの結果を削除
選択範囲内にあるアイコンとそのアイコンからつながる下流のアイコンが持つ結果を削
除することができます。選択範囲内を右クリックしてメニューから結果を削除を選択しま
す。
112
図 4-53 選択範囲の結果の削除
113
4.4.
行毎実行
この節では、行毎実行により処理フローをループ化する方法について説明します。VAP
でループを行う方法は、この節で説明する行毎実行を使う方法のほかに、モジュールを使
う方法とスクリプト内で for ループを使う方法があります。
(1) アイコンを行毎実行の対象に指定する
アイコンの種類によって行毎実行対象に指定する方法は異なります。
データアイコンの場合は、アイコンを右クリックしてメニューから行毎実行対象を選
択し、チェックをつけます。データアイコン以外の場合はアイコンを右クリックして
その他→行毎実行対象を選択しチェックをつけます。行毎実行対象から解除する場合
は同じ方法でチェックを外します。
図 4-54
行毎実行対象に設定
行毎実行に指定されたアイコンは、アイコンの右上にマークがつきます。
図 4-55
行毎実行対象のマーク
(2) 行毎実行を行う
114
行毎実行を行いたいアイコンを右クリックし、メニューから行毎実行を選択します。
図 4-56
行毎実行メニュー
行毎実行対象に指定されたアイコンは 1 行ずつ出力されて、結果が行毎実行したアイ
コンに蓄えられていきます。それぞれの結果を縦に並べたものが行毎実行の結果とな
ります。
例
具体的に行毎実行でループ処理を行う例を見てみましょう。菖蒲の種類ごとのがく長の
平均を算出するプロジェクトを作成します。
図 4-57
サンプルプロジェクト
菖蒲アイコンは種類とがく長などが含まれたデータです。ループ変数アイコンは菖蒲の
種類が入った 1 列 3 行のデータです。
115
図 4-58
ループ変数
図 4-59
菖蒲
Script アイコンは table のうち種類が loop と一致するものだけを抜き出すスクリプトを
記述してあります。
116
図 4-60
スクリプトアイコン
行毎実行を行う前に、集計アイコンの通常の実行を行い、がく長の平均を計算するよう
に設定して OK を押します(エラーが起こり実行できませんが、設定をするだけなので無視
します)。この設定が保存され、行毎の実行を行う際にもこの設定のまま計算が行われます。
117
図 4-61
集計アイコンの設定
準備が整ったので集計アイコンを右クリックし、行毎の実行を行います。行毎実行対象
に設定された、ループ変数アイコンの第一行と菖蒲アイコン全体が Script アイコンに入力
されます。Script アイコンの結果は菖蒲データのうち種類が Setosa の行を抜き出したもの
となります。これが集計アイコンに入力されて、Setosa のがく長の平均が計算され、1 回
目のループが終了します。以下同様に 2 回目のループで Versicolor のがく長平均、3 回目の
ループで Virginica のがく長平均が計算されます。この 3 回のループの結果が縦に並べられ
たものが、行毎実行の結果となります。
行毎実行は、ループ変数アイコンに外部ファイルパス一覧を設定することで、多数の外
部ファイルを順に処理することが可能になります。
図 4-62
行毎実行結果
118
4.5.
モジュール
モジュールは、処理フローの一部をまとめて部品として扱うための機能です。処理フロ
ーをモジュールとしてまとめておけば、頻繁に使用する処理を再利用でき、また何度も繰
り返して実行(ループ処理)することもできます。
図 4-63
モジュールの利用
モジュールは、処理フロー上では 1 つのアイコンとなり、他の処理アイコンと同様、入
力と出力を持っています。モジュールの中身は処理フローになっており、自由に編集する
ことができます。モジュールは、入出力のあるプロジェクトとみなされます。普通のプロ
ジェクトと同様に、共通フォルダにコピーしたり、エクスポートしたりすることができま
す。
4.5.1. モジュールの作成
モジュールの新規作成
モジュールを作成するには、次のように操作します。
モジュールをおきたいプロジェクト上の、何もない部分を右クリックして、
「新規アイコ
ン作成」→「モジュール」を選択します。
119
図 4-64
モジュールの作成
するとモジュールアイコン
が作成されます。 モジュールの名前を設定する
には、モジュールアイコン上で右クリック、名前設定を選択します。選択すると、名前が
編集できる状態になります。
図 4-65
名前の設定
モジュールの中身を編集するには、モジュールを右クリックしてメニューから編集を選
択します。選択すると、新たにモジュール編集ウィンドウが開きます。
図 4-66
モジュールの編集
入出力の定義
モジュールの外部からデータを入力し、外部へデータを出力するには、入出力アイコン
を用います。入出力アイコンをモジュールの内部におくには、次のようにします。モジュ
ール内部の何もない場所を右クリックし、
「新規アイコン作成」→「モジュール入出力定義」
120
を選択します。
図 4-67
モジュール入出力定義作成
すると、外部からの入力アイコンと、外部への出力アイコンが 1 つずつ作られます。
図 4-68
外部からの入力アイコン・外部への出力アイコン
入出力アイコンは、それぞれ 1 つしか置けません。入力(または出力)するデータが複
数の場合、1つのアイコンに複数の入出力を割り当てます。この割り当ては次の「入出力
の編集」でおこないます。
入出力の編集
モジュールの入出力データの個数や、名前を決定するには、外部からの入力アイコン(あ
るいは外部への出力アイコン)を右クリックして、メニューから編集を選びます。
図 4-69
入出力の編集
するとモジュール入力名定義ウィンドウが開きます。入出力データが複数個必要となる
場合は、必要な数だけ入出力を設定してください。
121
図 4-70 モジュール入力名定義ウィンドウ
入出力を作成した直後は、入出力は次のように設定されています。
0.入力は 1 つ(名前:table)
1.出力は 1 つ(名前:result)
入力が1つずつの場合、特に編集する必要はありません。
4.5.2. モジュールの実行
モジュールを外部から使用するためには、通常のアイコンと同様に矢印線を結んで実行
するだけです(入出力を定義していないモジュールに矢印をつなぐことはできません)。
図 4-71
モジュールを接続
モジュールが複数の入出力を持っている場合、矢印線を結んだ直後は、入出力がまだ決
まっていないので、入出力マッチングを行う必要があります。
122
図 4-72
入出力マッチングが必要な場合
4.5.3. モジュールの再利用
モジュールはプロジェクトの一種ですので、オブジェクトブラウザのプロジェクトフォ
ルダに入れることができます。一度作ったモジュールを再利用するには、オブジェクトブ
ラウザからプロジェクトボードにモジュールをドラッグして張り付けます。データアイコ
ンと同じように使用することができます。
図 4-73
モジュールの再利用
123
4.5.4. 既存処理フローのモジュール化
すでにある処理フローをモジュールとしてまとめたい場合は、処理フローをまとめてコ
ピーすると便利です。
例)下図のフローのうち、丸で囲んだ部分だけをモジュールにまとめることを考えます。
図 4-74
モジュール化対象のフロー
まず使用するフローをコピーします。
図 4-75
モジュール化対象フローのコピー
124
次に、プロジェクト上にモジュールを作成します。
図 4-76
モジュールアイコンの作成
モジュールアイコンを右クリックして、編集を選び、モジュールの編集画面を開きます
(ウィンドウの最大化ボタンを押してプロジェクトを「並べて表示」すると見やすくなり
ます)
。
図 4-77
モジュールにフローを貼り付け
モジュールの中に、コピーしておいたフローを貼り付けます。このフローと入出力を矢
印線でつなぎます。
このモジュールを実際に利用するには、モジュールアイコンに別のアイコンを、矢印線
125
でつないで実行します。
図 4-78
モジュールに接続
4.5.5. モジュールのループ処理
作成したモジュールを指定した回数だけ繰り返す(ループする)ことができます。ルー
プ処理を行うには、ループ変数の入力と、プロパティの設定が必要です。ここでは実際の
使用例を通してループの使い方を説明します。
(ループ処理の例)
例としての図 4-79 の数値データに値 1 を加算し結果図 4-80 を得るような処理を「加算
する値」を変えながら 3 回実行する処理を考えます。
図 4-79
入力データ
126
図 4-80
結果データ
まず以下のようなモジュール add_module を作成します。
図 4-81
加算を行うモジュール
127
ここで add アイコンは、ユーザ定義のスクリプトアイコンで、以下のように定義します。
図 4-82
加算を行うスクリプト
次に上記で作成したモジュール add_module を利用して以下のように新規プロジェク
トを作成します。
128
図 4-83
プロジェクト
ここでのデータアイコン「データ」
「加算する数」の内容は次のようにしています。
また、モジュールアイコン add_module の入力マッチングは次のように指定します。
129
図 4-84
入出力マッチング
ここで、アイコン「DataGraph Viewer」を実行しますと、次のような結果が得られます。
図 4-85
実行結果
次に加算値を変えながらモジュール add_module を 3 回実行するように変更します。
まず、データアイコン「加算する数」を以下のようなデータアイコン「加算する数2」
に差し替えます。
130
図 4-86
加算する数 2
次に、アイコン module_add 上右クリックメニュー[プロパティ]を実行し、以下のプロ
パティフォームを起動します。
131
図 4-87 モジュールアイコンのループ設定
ここで、モジュール add_module の入力名 in01, in02 の中からループ変数に指定する
ものをチェックします。
今回は、
「加算する数 2」をループさせたいので、入力名 in02 をチェックし、OK ボタ
ンをクリックします。こうすることで、
「加算する数 2」の行数と同じ回数だけ add_module
が実行されるように設定されます。ここでは 3 回実行され、入力名 in02 には、一回目の
実行では 1、2 回目の実行では 2、3 回目の実行では 3、が入力されます。
次に、アイコン「DataGraph Viewer」を実行すると、次のような結果が見られます。
132
図 4-88
モジュールアイコンのループ設定
プロパティで「ループ毎に累積出力」を選択したので、 3 回分の結果が縦に連結された
形で得られます。列 Loop.Iter には、何回目の実行の結果であるかが表示されています。
プロパティ
ループ方法はモジュールプロパティウィンドウで設定します。モジュールを右クリック
してメニューからプロパティを選択すると開きます。
図 4-89
モジュールプロパティ
133
項目説明
ループ変数の指定
ループ変数を指定します。複数の変数を指定した場合は、ループ変数の各行のすべての
組み合わせに対してループを実行します。実行順序は、指定の最も上に現れたものから、
順に変数を変えていきます。実行順序は、データ名をクリックしてドラッグすることによ
って変えます。
例) 次の 2 つのデータ
をループ変数として、図のようにプロパティを設定してループを動かすと、
図 4-90
ループ変数を二つ指定
ループは次のように 6 回実行されます(この場合 in01 が「早く回る変数」です)
。
134
図 4-91
ループ結果
ループ結果の再適用
ループの出力をもう一度入力として使用するかを指定します。何も指定しなかった場合
は、各ループで同じ入力を使用します。
ループ毎の結果を累積出力
ループ毎の出力を行方向につなげて累積出力するかを指定します。累積出力した場合に
は、ループ回数を示す列 Loop.Iter が、出力の一番右側に付け加えられます。累積出力し
ない場合は、ループの最後の結果のみを出力します。
4.5.6. モジュールによるフォルダの処理
フォルダアイコンを処理するには、モジュールを使います。
例)図のようなフォルダ「菖蒲」の内部に含まれる複数のファイルを、1 つのデータにま
とめるモジュールを作ります。
135
図 4-92
入力ファイル
まず、モジュール file_merge を作成します。このモジュールの内部では、単に出力に入
力を代入するだけの処理をおこないます。
136
図 4-93
モジュールの内容
次に、フォルダをプロジェクトにインポートして、モジュール file_merge とつなぎます。
フォルダはエクスプローラなどからドラッグしてインポートします(「データフォルダ」の
項を参照)
。
図 4-94
フォルダとモジュールを接続
フォルダ「菖蒲」の出力 table は Setasa.csv, Versicolor.csv, Virginica.csv の 3 つのデ
ータです。これらがまとめてモジュールの入力に入ります。ここで file_merge のプロパテ
ィを設定します。
137
図 4-95
モジュールのプロパティ
ループ変数の欄の table には、自動でチェックが入っています。このようにモジュールの
入力としてフォルダを入力すると、フォルダは自動的にループ変数になります。ループ変
数には、フォルダの中のファイルが順次入っていきます。つまり、この場合ループは 3 回
回ることになり、
ループ 1 回目: Satosa.csv
ループ 2 回目: Versicolor.csv
ループ 3 回目: Verginica.csv
がそれぞれ table の中に入ります。モジュールの内部では何も処理はおこなわないので、
「ループ毎の結果を累積出力」を選択すると、それぞれのデータが行方向にマージされて
出力されることになります。
※
上記の例では、出力テーブルの列数、列名、列属性が各ループで常に同じですが、
出力テーブルの列数や列属性が各ループで異なる場合、以下のような出力動作になりま
す。

列数の異なるテーブルが出力された場合、左詰めでテーブルを連結する

左詰めのテーブルを行方向に連結したときに、同じ列に異なる属性がある場
合はエラーになる

列名は最も列数の多いテーブルの名前を用いる

列が足りない部分には、各列の属性に応じて 0(整数型)、0.0(実数型)、””
(文字列型)が埋められる
以下に例を挙げます。列名を a~g とします。
138
例1:
下記の 2 つのテーブルの行方向へのマージは、2 列目の型が一致しないためエラーになり
ます。
ループ 1 回目の出力 1 整数型の列 a、文字列型の列 b
ループ 2 回目の出力 2 整数型の列 a、実数型の列 c
例2:
下記の 3 つのテーブルの行方向へのマージは正しく動作します。マージされた出力テー
ブルの列名は、一番列の多い 2 回目のループの出力列名 a,b,e,f を用います。3 列目の実
数列の無い箇所には 0.0、4 列目の整数列が無い箇所には 0 が補完されて出力されます。
ループ 1 回目の出力 整数型の列 a、文字列型の列 b、実数型の列 c
ループ 2 回目の出力 整数型の列 a、文字列型の列 b、実数型の列 e、整数型の列 f
ループ 3 回目の出力 整数型の列 a、文字列型の列 g
※
複数のフォルダを入力することもできます。また、他の入力データとフォルダを同
時に入力したり、ループ変数に指定したりすることができます。この場合、ループ変数
の「順序」に気をつけてください。プロパティを設定したあと、モジュールを実行しま
す。すると、インポート設定ウィンドウが開きます。
139
図 4-96
インポート設定
これはループ変数の最初のデータ “Setosa.csv” のインポート設定です。ここで OK を押
すと、次回以降のループ変数 “Versicolor.csv”, “Virginica.csv” はこの設定を自動的に引き
継いでインポートするので、インポート設定の必要はありません。フォルダの中に含まれ
るファイルの数(今の場合 3 回)だけループが回り、実行が終了します。結果のデータは、
入力データが行方向にマージされたものになっていて、一番右の列にループ回数を表す列
が付け加えられています。
140
図 4-97
モジュールのループ結果
141
4.6.
バッチ処理
VAP は、頻繁に行う処理をバッチファイルとして保存することが出来ます。定義した処
理フローを日常処理に適用する場合を想定した機能です。プロジェクトの処理フローを固
定化し、入力ファイルだけを変えて、処理フローを再実行することなどが可能です。
■外部公開の指定
VAP は、バッチ処理を定義する際に、1 つ以上の処理を外部に公開することを必要とし
ます。外部に公開する処理を指定するには、プロジェクトボードを右クリックし、新規ア
イコン作成→外部公開を選択します。
図 4-98
外部公開アイコンの作成
すると、プロジェクトボード上に外部公開指定用のアイコンが作成されます。
142
図 4-99
外部公開アイコン
ここで、外部公開に指定したいアイコンから、外部公開アイコンに向かって、矢印線を
つなぎます。これで、指定したアイコンの処理を外部に公開したことになります。以下の
図では、入力(外部データ)のファイルを変えることができ、それに対応する出力(外部
集計)が得られるバッチ処理を作成することができます。複数の外部公開アイコンを使用
する場合は、アイコンの名前が重複しないように変更してください。
図 4-100 外部公開指定
4.6.1. バッチファイルの作成
ここで、バッチ処理を定義したプロジェクトをバッチファイルとして保存します。バッ
チファイルを作成するには、プロジェクトボードを右クリックし、バッチプログラム作成
を選択します。
143
図 4-101 バッチプログラム作成
すると、バッチファイルの保存ダイアログが出るので、出力ファイルの場所を指定して
適当なファイル名を入力して保存して下さい。処理アイコンの結果をエクスポートしない
場合は、
「処理アイコンの結果をプロジェクトに含む」のチェックを外してください。
144
図 4-102 バッチファイルの保存画面
4.6.2. バッチ処理の実行
バッチプログラムの実行は、
「VAP バッチ実行」 から行う方法と、DOS コマンドから行
う方法があります。
■DOS コマンドからバッチプログラムを実行
詳細はインストールディレクトリ以下の、¥Samples¥ConsoleBatch¥readme.txt を参照し
てください。
■VAP バッチ実行からバッチプログラムを実行
Windows のスタートメニューから、VAP バッチ実行を選択すると、実行ウィンドウが起動
します。
図 4-103 VAP バッチ実行 の起動
145
図 4-104 VAP バッチ実行 の実行ウンドウ
次に、バッチファイルを指定します。右上のボタン「…」をクリックすると、ウィンド
ウが表示され、バッチファイルを指定することが出来ます。
146
図 4-105 VAP バッチ実行
さらに、実行記述ファイルを作成の横にある参照ボタン(「…」)をクリックして指定しま
す。実行記述ファイルとは、外部公開された処理に対し、どのような処理を外部から実行
するかを定義したファイルになります。ファイルが存在しない場合は、作成することが出
来ます。
実行記述ファイルを作成する場合は、作成というボタンをクリックすると、実行記述フ
ァイル作成画面が表示され、パラメータを指定することが出来ます。
147
図 4-106 実行記述ファイル作成画面
ここで、
Operation Caption Parameter.Data.Result の 3 つのパラメータを指定します。
1)Operation には次の 4 つのパラメータを指定することが出来ます。

「replace data」
:データファイルを置き換える1

「run」
:処理を実行する

「rrun」
:行毎実行を行う

「set parameter」
:処理のパラメータを変更する
2)Caption には外部公開に指定したアイコンの名前を指定します。
3)Parameter.Data.Result にはファイルパスを指定します。
ある処理のパラメータを変えたい場合には、その処理を示す run よりも上に set
parameter でパラメータを設定する必要があります。
Parameter.Data.Result で指定するファイルは、Operation のパラメータによって意味が
異なります。

「replace data」
:入力データのパス

「run」
:出力結果ファイルを保存するパス

「rrun」
:出力結果ファイルを保存するパス

「set parameter」
:パラメータファイルのパス
設定が終わったらファイルを保存します。以上でバッチ処理を実行するための準備は終
わりです。最後に、実行ボタンをクリックすると、Visual Analytics Platform Batch Server
が起動し、バッチ処理を実行することが出来ます。再実行ボタンをクリックすると、再び
1
「replace data」は処理フローの始点以外にある外部公開アイコンには設定できません。
148
バッチ処理を実行することが出来ます。
図 4-107 バッチ処理実行画面
149
5.
データ操作
5.1. 概要
本章ではデータ分析の前段階に必要となるデータ処理アイコンの機能を紹介します。VAP
では、基本的なデータ処理アイコンを、オブジェクトブラウザ上に「データ操作」として
まとめてあります。これらは主にデータ解析の前段階で、データクリーニングや、データ
整理に使われます。
図 5-1
データ操作フォルダのアイコン一覧
150
5.2. クリーニング
データの中に含まれる異常な値や、特異的な値(欠損値)を検出して、補完、除外を行
います。データインポートにも同等の機能があります(
「データ管理」の項を参照)。
図 5-2
5.2.1.
クリーニングパラメータウィンドウ
欠損値の検出
欠損値の検出は、検出方法「欠損値検出」とその基準値「欠損値基準」によって指定さ
れます。検出方法は、データ列の属性は文字列の場合と数値の場合によって異なります。
文字データの場合
欠損値検出
外れ基準
説明
出現率
α
値の出現率がα以下の場合、欠損値とみなす
ユーザ指定
s
値が文字列 s である場合、欠損値とみなす
数値データの場合
欠損値検出
外れ基準
説明
欠損値検出の指定によらず、整数の最小値
(-2147483648)・実数の負の無限大は欠損値とみなす
(いずれも-INF と表記)
標準偏差
α
|値-平均値|>α*標準偏差 の場合、欠損値とみなす。
151
標準偏差は標本分散の平方根で計算される。
平均偏差
α
|値-平均値| >α*平均偏差 の場合、欠損値とみなす。
平均偏差 MD は次式で与えられる。
非数・無限
値が実数の場合、-INF に加えて正の無限大(INF)・非
数(NaN)も欠損とみなす
ユーザ指定
β
値=β の場合欠損値とみなす
欠損値検出後はデータインポートと同じ処理(除外か補完)を行います。
5.2.2.
欠損値の補完
欠損値と見なされた場合、そのデータ行を対象データから除外するか、別の値を代入(補
完)することが可能です。欠損値の補完は、補完方法「欠損値補完」とその値「ユーザ指
定」によって指定されます。補完方法は、データ列の属性が文字列の場合と数値の場合に
よって異なります。
文字データの場合
欠損値補完
ユーザ指定
説明
除外
欠損値と見なされた行を対象から除外
最頻値
欠損値に現れた頻度が一番高いものを代入
ユーザ指定
s
欠損値に指定した文字列 s を代入
数値データの場合
欠損値補完
ユーザ指定
説明
除外
欠損値と見なされた行を対象から除外
平均値
欠損値に列の平均値を代入
最大値
欠損値に列の最大値を代入
最小値
欠損値に列の最小値を代入
中央値
欠損値に列の中央値を代入
既定の欠損
欠損値に、整数の場合-2147483648 を、実数の場合
値
負の無限大を代入(いずれも-INF と表記)
ユーザ指定
β
欠損値に指定した数値βを代入
152
5.3. グルーピング
数値データをカテゴリに分類し、文字データをグループに分類します。分割のルールは、
画面下部のセルに表示されます。このセルの内容を書き換えることで、自由にグルーピン
グを行うことが可能になります。
図 5-3
グルーピング(文字データ)パラメータウィンドウ
153
図 5-4
グルーピング(数値データ)パラメータウィンドウ
項目説明
 対象列
グルーピングの対象となる列を選択します(複数列同時選択も可能)
。
一度グルーピングを指定した変数には、<<指定済み>>マークがつきます。
 結果列名
グルーピングの結果列名を指定します。
154
 グループ指定〔数値列を選択した場合〕
その数値列に対応する分割点が表示されます。ヒストグラム上の棒をクリックすると
棒の表示色が変わり、クリックした場所が分割点になるように下のセルが更新されます。
ヒストグラムの縦軸は、度数を 0 から 5 に正規化したものになります。
Hist 数
ヒストグラムの棒の数を指定します
グループ数
カテゴリ化された後のカテゴリ数
クリア
指定した分割点を初期化します。指定済みとなっている列の指定解
除を行うには、クリアを押下して、別の列を対象列に指定します。
等数分割
分割後のカテゴリ間でデータ件数が等しくなるように分割します。
「がく幅」をグルーピングした後の結果は、下図のように元のテーブルにグループ名を
示す列「がく幅.Grp」が追加されます。
 グループ指定〔文字列を選択した場合〕
登録したグループのグループ名、グループに所属するレコードの件数、グループに割り
当てられるカテゴリ値が表示されます。グループ数を指定すると、カテゴリをいくつに
再分類するかを指定できます。
155
5.4. サンプリング
サンプリングは、膨大な量のデータからその一部分を抽出します。ユーザがデータの行
に対しての抽出方法を指定するだけではなく、列の選択も可能です。オプションは、キー
列の指定を行います。
図 5-5
サンプリングパラメータウィンドウ
サンプリング方法は 先頭から、一定間隔、ランダムのいずれかを選択します。
図 5-6
サンプリング方法
選び出す数には、抽出するデータ数か割合(単位として「%」を付加する)を指定します。
間隔には、抽出する間隔を指定します。最大の右側に表示した数字は元データのデータ数
(行数)に対応し、指定できるデータ数の最大値を表します。初期値は 100%に指定されて
156
います。乱数の初期値には、ランダムサンプリングでの乱数の初期値を設定します。キー
列には、同一レコードとして取り扱う列を指定します。
検索ボタンを押下すると、検索する文字列を入力するウィンドウが現れます。対象列名
にある列名に対し、前方一致で探索します。検索ボタン押下時に、対象列名中に一致する
列名がある場合、その列名を選択状態にします。
図 5-7
検索ウィンドウ
157
5.5. ソート
特定の列をキーとして、行単位で並べ替えを行います。ソートするキー列ごとに昇順/
降順を指定することが可能です。
■画面
図 5-8
ソートパラメータウィンドウ
設定項目

列選択
ソート対象となる列を指定します。優先する順に 1 番目キーから順に設定します。

昇順・降順
データを昇順、降順の順に並べ替えるということを指定します。
■出力
ソート後のデータファイルを出力します。以下の図は、がく長について昇順でソートし
た結果になります。
158
図 5-9
ソートの結果例
159
5.6. ファイル分割
データを学習用データと検証用データに分割します。分割は乱数を用いて行います。乱
数の初期値は自動と手動の 2 通りの選び方があります。手動に設定した場合、右側に入力
する数値(乱数の種と言います)を変えなければ、毎回同じ分割結果を得ることができま
す。分割パラメータ画面では学習用データと検証用データの分割比を指定します。実行結
果は2つのデータとして出力されます。
図 5-10
ファイル分割パラメータウィンドウ
このアイコンは、データマイニングの分類分析(Decision Tree や Newral Network など)
においてモデルを作成するために、データの一部でモデルの作成(学習)をおこない、デ
ータの残りの部分でモデルの効果の検証をする場合に有効です。
160
5.7. フィルタリング
指定した条件を満たすデータ行のみを取得します。
図 5-11
フィルタリングパラメータウィンドウ
フィルタ条件はスクリプトの条件式で表現します。列要素は table("列名")のように記述
します。例えば下図のように、列名欄の「がく長」をダブルクリックすると、フィルタ条
件に table("がく長")が入力されます。
161
図 5-12
フィルタ条件式
フィルタの使用例
記述方法はスクリプトと同様です。ただし行末にセミコロンを入れないでください。セ
ミコロンを入れるとエラーになります。


使用できる演算子

比較演算子 ==, !=, <, <=, >, >=

条件演算子 and, or, not
基本的なフィルタ

天候が「雨」の行を取得
table("天候") == "雨"

天候が「晴れ」の行を除外して、それ以外の行を選択。
table("天候") != "晴れ"

"not" を使っても同じことができます。
not table("天候") == "晴れ"

条件の組み合わせ

温度 65%未満、または、温度 26 度以上の行を選択
table("湿度") < 65 or table("温度") >= 26
162

天候が晴れではなく、かつ、湿度 75%以上の行を選択
table("天候") != "晴れ" and table("湿度") >= 75

条件文は途中で改行してもかまいません。
table("天候") == "晴れ"
and table("湿度") >= 75

温度が 25~30 度であるか、または、晴れ以外の日を選択
not table("天候") == "晴れ"
or ( 25 <= table("温度") and table("温度") <= 30)
※ より細かい処理を行うには、スクリプトを作成することをお勧めします。
163
5.8. マージ
複数個のデータを一つに結合します。
図 5-13
マージ
マージ方法は、行方向の行マージと列方向の列マージの 2 種類があります。

行マージの場合
オプション

埋める

共通のみ 列名アンマッチの場合は、列を除外する

列マージの場合
列名アンマッチの場合は、ブランクで埋める
オプション

単一参照
指定した主テーブル内のキー列の内容に一致する結合対
象テーブル(主テーブル以外)の行を参照し、列方向に結合する。結合対象テー
164
ブルにキーが存在しない場合は、指定した欠損補填値が出力される。結合対象テ
ーブルでキーが重複する行が合った場合は先頭の行の内容のみ結合される。SQL
の LEFT OUTER JOIN や RIGHT OUTER JOIN に相当する。

単一参照・欠損値除外
指定した主テーブル内のキー列の内容に一致する結合対
象テーブル(主テーブル以外)の行を参照し、列方向に結合する。結合対象テー
ブルにキーが存在しない場合は、その行は出力されない。主テーブル以外のテー
ブルでキーが重複する行が合った場合は先頭の行の内容のみ結合される。SQL の
LEFT INNER JOIN や RIGHT INNER JOIN に相当する。

マージキー列指定
マージのキー列を指定して、キー列の内容が一致する行を
出力する。

単純結合
行同士での単純結合
主テーブル選択
列マージのオプションとして単一参照、または、単一参照・欠損値除外を選択した場合
は主テーブルを1つ選択する必要があります。主テーブルに出現する行に、他のテーブル
を列方向に結合します。主テーブル以外のテーブルに出現するキーでも、主テーブルに出
現しない場合は出力されません。
マッチしない行を含むファイル選択
マッチしない行を含むを選択した場合、対応する行が存在しないときには欠損補填値が
出力され、マッチしない行を含むを選択しなかった場合はその行は出力されません。
図 5-14
列マージ
列オプション選択後、結果ファイルの列名の指定画面が開かれ、列名の変更を行うことが
可能です。列名を空白(ブランク)にすると、結果テーブルから除外することが可能です。
165
図 5-15
列マージ時の列名変更画面
複数のテーブルをマージするときの注意
3 つ以上のテーブルを列マージする場合について、すべてのテーブルで完全にキーが
一致している場合は、1 度にすべてのテーブルがマージできます。テーブルのキーが複
数あり、部分的にキーが同じ場合の列マージは、基になるテーブルと部分的に一致する
キーを持つテーブルを取り出します。その結果を、さらに部分的にキーが一致するテー
ブルと列マージするということを繰り返す必要があります。
例えば、テーブル 1 のキーに Key.A と Key.B、テーブル 2 のキーに Key.A、テーブ
ル 3 のキーに Key.B がある場合、基になるテーブル 1 とテーブル 2 を列マージしてか
ら、その結果に対しテーブル 3 を列マージすることになります。
166
5.9. 列属性変更
データの列名及び属性を変更します。
図 5-16
列属性変換
新しい列名およびタイプ(デフォルトでは変更なし)を指定し、OK ボタンで実行します。
数量化は文字列に対してのみ有効です。文字列の数量化は、その列のクラス毎に列が作成
され、各行の内容に対応するクラス列を1と設定し、それ以外の列を 0 と設定します。例
えば、上記の指定は、次のような結果となります。整数型の場合は、最大 2147483647 か
ら最小 -2147483648 までになります。
図 5-17
文字列の数量化
167
5.10.
正規化
数値を規格化・標準化します。変換は列ごとに行われ、それぞれの列で変換方法を指定
できます。
図 5-18
正規化オプション設定画面
項目説明
■規格化方法
列を規格化する方法を以下から指定します。 規格化方法が空白になっている列は規格化
を行いません。
規格化方法
説明
規格化(0-1)
0と1の間の値をとるデータに変換します
規格化(和)
総和が1になるように規格化します
規格化(2 乗和平方)
2 乗和の平方根を用いて規格化します
標準化(標準偏差)
標準偏差を用いて標準化します
標準化(平均偏差)
平均偏差を用いて標準化します
対数変換
e を底とする対数をとります
168
5.11.
■
層別サンプリング
内容
層別サンプリングは、サンプリングの手法の一つです。層化抽出法ともよばれます。母
集団(元データ)が性質の異なる複数の層のデータから成るとき、または予想されるとき、
層別にサンプリングを行うことで、標本誤差が小さくなることやサンプルの質を高めるこ
とが期待されます。層の定義にはキー列指定によるものと条件指定によるものの 2 通りが
あります。
■キー指定によるサンプリング
キー列指定によるものでは、キー毎に別々にサンプリングを行います。層別サンプリン
グでは前段階で元データにキー列をつけておくことが必要です。指定するパラメータはサ
ンプリングする量を表す行数または割合、キー列、復元抽出、乱数発生シード値です。
行数は整数で指定します。たとえば 200 と指定するとサンプルがすべての層を合わせて
200 データとなるよう、層ごとの数に比例させて抽出します。割合の場合は実数で指定しま
す。1.0 がデータ全体を表します。各層ごとの数に割合をかけた数のサンプルを抽出します。
復元抽出と乱数発生シード値については後述します。
図 5-19
層別サンプリングパラメータ設定画面
169
■条件指定によるサンプリング
条件指定によるものでは条件をつけて層をつくり、層ごとにサンプルの行数、または割
合、復元抽出の有無を設定することができます。たとえば分散が大きい層ではサンプル数
を多くするなどの設定が可能です。
図 5-20
条件指定によるサンプリングパラメータ設定画面
条件設定は条件の列の欄をダブルクリックすることで開きます。設定方法はフィルタリ
ングと同様になります。
170
図 5-21
条件入力画面
■復元抽出について
復元抽出するかどうかはキー指定の場合はチェックボックスで、条件指定の場合は復元
抽出の欄を X にすることで選択できます。復元抽出とはサンプリング時に同じものを繰り
返し抽出することを許す抽出方法です。以下、詳細を説明します。
1.
復元抽出なしの場合
(ア) 必要なサンプル数が元データ以下のとき
1 度選ばれたデータは除いて抽出を繰り返します。得られたサンプルはすべて異
なるデータになります。
(イ) 必要なサンプル数が元データより多いとき
なるべくサンプルが被らないようにします。たとえば、Rは元データ数よりも小
さいとして
必要なサンプル数 = 元データ数×N +R
と表せたとき、元データ数×N個は元データを単純にN倍してつくり、残りのR
個を(ア)のように被らないように選びます。
2.
復元抽出ありの場合
必要なサンプル数になるまで重複ありでランダムに抽出します。
■乱数発生シード値の設定
乱数発生シード値の設定を行うかはチェックボックスで指定できます。初期設定では指
定しません。
乱数発生シード値を指定しないと、現在時間を秒単位で取り出し、シードとするため、
171
毎回乱数シード値が異なります。つまり、サンプリング結果も異なります。乱数発生シー
ド値(整数値)を指定すると再現性があるサンプリングを行うことができます。
図 5-22
乱数発生シード設定
■ 注意事項
キー列に指定できるのは、文字列属性か整数属性の列のみです。
172
5.12.
匿名化
データを匿名化します。
図 5-23
匿名化パラメータ設定画面
匿名化したい列を対象列指定でチェックを入れ、OK ボタンを押下して実行します。
■詳細
1.
列名も匿名化されます。
2.
数値データの変換方法: 新データ=<変換値>+<変換スケール>*元の値
<変換値>: ユーザ指定か、乱数生成(範囲は、1~1000)
<変換スケール>: ユーザ指定か、乱数生成(範囲は、1~10)
3.
スケール変換のチェックをつけることで、変換値と変換スケール内にユーザは値を
指定することが可能になります。
4.
文字列の変換方法: 全て出現番号つきの文字列へ変換されますが、欠損(空文字
「""」
、NA「"NA"」
)は変換されません。
173
図 5-24
匿名化後データ(列名なども匿名化されます)
174
5.13.
再配置
■ 内容
データテーブルの内容を再配置します。以下のような操作ができます
転置: 行と列の入れ替え
横展開: 行方向に並んでいるデータを列方向に展開
リスト化: 列方向に並んでいるデータを行方向に変換(横展開の逆操作)
列順変更: 列の順序を変更
操作イメージ
矢印がデータ方向表します。
斜線パターン(色)が意味的に等しい内容のものを表します。
以下、順に説明します。
■ 転置
行と列の入れ替えを行います。
■オプション
□入力の列名を出力の第1列にする
チェックをつけると入力テーブルの列名を出力テーブルの第1列に指定します。チェック
が無い場合は出力テーブルの第 1 列は入力テーブルの第 1 行になります。初期設定ではチ
ェックありになっています。
□入力の第一列を出力の列名にする
チェックをつけると入力テーブルの第1列を出力テーブルの列名に指定します。チェック
が無い場合は入力テーブルの第 1 列が出力テーブルの第 1 行になります。初期設定ではチ
ェックありになっています。
175
■設定画面
図 5-25
再配置(転置)
■出力
□出力
転置されたデータテーブル
■ 注意事項
転置後に列の属性が正しく決まるように、転置してテーブル内容になる部分(入力テーブ
ルの列名列以外)は同じ属性である必要があります。オプションの“入力の第一列を出力
の列名にする“にチェックしている場合は第 2 列以降を同じ属性に、チェックしていない
場合はすべての列を同じ属性にする必要があります。列名列は文字列または整数の列であ
る必要があります。
■ 横展開
行方向に並んだデータを列方向に展開します。例えば下の表Aのように並んでいるデータ
から右下にある表Bのようなデータへ変換します。具体的には、ある 1 列(横展開列)を
176
列名とし、キー列と横展開列によって指定される元データ成分をテーブル型に配置します。
表A 支店別月別売り上げ
表B 横展開後のデータ
支店
月
売り上げ
支店
1月
2月
3月
A
1月
100
A
100
120
150
A
2月
120
B
100
110
160
A
3月
150
B
1月
100
B
2月
110
B
3月
160
■ 設定項目
□キー列指定
変換後も列のままである列
□横展開列指定
行方向に展開されるときに列名になる列
□内容列指定
横展開された列の成分(内容)になる列
□欠損補填値ユーザー指定
キー列と横展開列に対応する内容列の行が無
かった場合に補填される値。チェックすると
入力欄が現れます。
■設定例
上記表Aから表Bへの変換の場合
キー列指定:支店、横展開列指定:月、内容列指定:売り上げ
となります。下図、設定画面参照
■設定画面
177
図 5-26
再配置(横展開)
■出力
□出力
再配置されたデータテーブルを出力します
■ 注意事項
キー列、横展開列に指定できるのは文字列属性、または整数属性の列のみです。横展開し
た結果 1 つのセルに複数の内容が該当する場合、入力テーブルの一番下の内容(最後に登
場した値)が横展開の結果になります。
■ リスト化
列方向に並んだデータを行方向に変換します。例えば表A(左下)のように並んでいるデ
ータから表B(右下)のようなデータへ変換することができます。具体的には、指定した
キー列と対象列のすべての組み合わせを作り、データを埋めます。
178
表A 支店別月別売り上げ
表B リスト化後データ
支店
1月
2月
3月
支店
キー列
内容
A
100
120
150
A
1月
100
B
100
110
160
A
2月
120
A
3月
150
B
1月
100
B
2月
110
B
3月
160
■ 設定項目
□キー列指定
変換後も列のままである列
□対象列指定
変換後に列名がテーブルの成分になる列
この列の成分が”内容”の列の成分になります
□除外パターン指定
データ欠損(NA など)があり、出力されるリ
スト形式のテーブルから除外したいときに指
定します。チェックすると入力欄が現れます
■設定例
上記表Aから表Bへの変換の場合
キー列指定:支店、対象列指定:1 月,2 月,3 月、除外パターン指定:0
となります。下図, 設定画面参照
■設定画面
179
図 5-27
再配置(リスト化)
■出力
□出力
リスト形式に変更されたデータテーブルを出力します
■ 注意事項
キー列に指定できるのは、文字列属性か整数属性の列のみです
■ 列順変更
列の順序を変更します。
列順序指定の欄の順番を指定し変更できます。
■操作方法
以下の方法があります。
1.
列を選択し▲▼ボタンで移動させます。
2.
マウスでドラッグ&ドロップで移動させます
3.
キーボードの↑↓←→キーで移動させます
↑↓キーで選択されている列名の変更
180
←→キーで選択されている列名の移動
■設定画面
図 5-28
再配置(がく幅)
■出力
□出力
列順序が変更されたデータテーブルを出力します
181
5.14.
データハンドリング
(データハンドリングアイコンは VAP Ver.1.1/VMStudio Ver.7.3 から機能を刷新いたしま
した。ただし旧アイコンも従来機能で使用可能です。旧アイコンの使用方法は、データハ
ンドリング(旧)をご参照ください。)
■ データハンドリング
データハンドリングは、マウス操作でインタラクティブにデータを操作、加工しながら、
その内容及び結果を、表形式またはグラフ形式で確認するツールです。
このアイコンでは、
· 行選択
· 列選択
· 列追加
· 集計
· 日付時刻処理
を連続して行うことができます。
また、操作対象として扱えるデータは、
· VAP バイナリ形式
· ビッグデータ形式(ただし、Big Data Module のインストールが必要)
· データベース(ODBC 接続)※日付時刻処理を除く
となります。
※対応データベース:市販の ODBC 接続を提供するベンダーのもの。無償データベースに
ついては MySQL に対応。
画面構成
以下の二画面から構成されます。
1.
データ&グラフビュー画面
2.
データ操作画面
182
データ&グラフビュー画面
データ&グラフビュー画面の操作方法に関しては、別紙「データ&グラフビューマニュア
ル」をご参照ください。
データ操作画面
データ操作画面では、対象データ欄で操作対象のデータを選択、タブ選択で必要な操作を
指定し、操作についての必要なパラメータを指定して実行すると、新しいデータが作成さ
れます。
新しく作成されたデータは、データ&グラフビュー画面にタブ追加され、対象データ欄に
もデータ名が表示されます。
183
入力データ
データハンドリングアイコンに向かってつなげたデータを入力データとします。複数デー
タを同時に扱うこともできます。
可能な操作
1.
データ作成
a)
行選択
b)
列選択
c)
列追加
d)
集計
184
e)
日付時刻処理
2.
(作成した)データの削除
3.
(作成した)データの表示、非表示切り替え
4.
(作成した)データの作成パラメータ再現
5.
(作成したデータがデータベースの View 形式の場合)Table 形式へ変換
出力データ
操作対象
処理
出力形式
VAP 形式
全て
VAP 形式
ビッグデータ形式
行選択
ビッグデータ形式
列選択
列追加
日付時刻処理
データベース
集計
VAP 形式
全て
VAP 形式
■ データ作成
以下、入力データを VAP 形式として説明します。
(サンプルデータの carTest を使用)

行選択
条件にマッチする行を抽出します。
「行選択」タブを選択します。
「条件に合致した結果名」欄および「合致しない結果名」欄に作成したいデータ名を記入
します。
「合致しない結果名」にデータ名を記入すると、
「結果名」を満たさない条件のデータが作
成されます。必要がない場合は空欄にします。
185
「列名」欄をクリックします。
データに存在する列名がリスト表示されますので、列名を選択します。
また、列名に加えて「--行番号--」という項目も列挙されます。
「--行番号--」を選択すると、
行番号の値または範囲を指定して抽出を行います。
選択した列名の列属性が文字列の場合、
「条件演算」欄にデフォルトで「次のいずれか」が
表示されます。
操作行左の展開ボタン([+]ボタン)をクリックすると、指定した列名に含まれる内容が下に列
挙され、内容に該当する「件数」欄および「パーセンテージ」欄に「***」が表示されます。
186
ここで、
「件数」
「パーセンテージ」の値を計算、表示させることができます。
「件数」欄または「パーセンテージ」欄の「***」が表示されている欄でダブルクリックし
ます。
値が計算、表示されます。
187
データサイズが大きい場合、計算に時間がかかりますので、必要に応じてダブルクリック
を行ってください。
また、表示される内容の件数は、行選択タブページ中下段の「文字列の最大表示個数」欄
で設定ができます。
188
「文字列の最大表示個数」欄のデフォルト値は「100」で、入力値は「10」以上の数字を入
力してください。
「10」未満の数字を入力すると、「列名」欄で列名を選択しなおした際、
あるいは、「件数」欄、「パーセンテージ」欄をダブルクリックした際に、最大表示個数の
最小値となる「10」が自動的記入され、
「10」を最大表示個数として内容や件数が表示され
ます。
「選択」チェックボックスで、抽出したい内容を選択します。選択すると、対象欄に選択
文字列が記入されます。また、対象欄は直接入力することも可能です。
また、これら
· 最大表示個数による表示の更新
· 内容の選択/非選択
· ***の値表示
といった操作は、詳細内容表示欄の右クリックメニューからも行えます。
189
結果を追加したい場合は、
「結果追加」ボタンを押します。
下に、結果名列、条件列が追加されます。
また、選択した列名の列属性が文字列の場合、条件を選択することもできます。
190
「条件演算」欄をクリックします。
条件を選択し、
「対象」欄に比較させたい文字を入力します。
(ただし、入力データがデータベースかつ SQL Server の場合、条件演算に「正規表現」
を選択することはできますが、Like 演算子を用いた比較となります。
)
条件を追加したい場合は、
「条件追加」ボタンを押します。
191
下に、条件列が追加されます。
「条件結合」欄をクリックすると、
「かつ」または「または」の切り替え表示がされますの
で、条件結合を選択します。
192
選択した列名の列属性が数値データの場合、「条件演算」欄にデフォルトで「>」(大なり)
が表示され、
「最小」欄から「最大」欄まで「***」が表示されます。
「条件演算」欄をクリックします。
「条件演算」欄に演算子がリスト表示されますので、演算子を選択します。
前述の列属性が文字列時と同様「***」欄でダブルクリックすると、値が計算、表示されま
す。値が表示されている状態で「平均」欄をクリックすると、平均値が「対象」欄に記入
されます。
ただし、「最小」欄、
「平均」欄、「最大」欄をダブルクリックすると、「最小」「平均」「最
大」の三つの値のみ表示され、
「1Q」欄、
「中央値」欄、
「3Q」欄をダブルクリックすると、
「最小」から「最大」までの五つの値が表示されます。データサイズが大きい場合、計算
に時間がかかりますので、必要に応じて、必要な欄をダブルクリックしてください。
193
また、操作対象データがデータベースの場合、計算、表示される値は、「最小」欄、「平均」
欄、
「最大」欄のみになります。
抽出パラメータを設定後、
「実行」ボタンを押します。
条件にマッチした行が抽出されたデータが作成されます。
194
また、
「対象データ」欄にも、データ名が追加表示されます。

列選択
選択した列を抽出します。
(操作対象データを、上記「行選択」操作で作成したデータ「行選択 2」とします。
)
「列選択」タブを選択します。
「結果名」欄に作成したいデータ名を記入します。
抽出したい列名をチェックボックスで選択します。
195
パラメータを設定後、
「実行」ボタンを押します。
選択した列名だけが抽出されたデータが作成されます。
196
また、
「対象データ」欄にも、データ名が追加表示されます。

列追加
列名と計算式を与え、列を追加します。
(操作対象データを、再度「行選択 2」とします。
)
「列追加」タブを選択します。
197
「結果名」欄に作成したいデータ名を記入します。
「列名」欄に列名を入力します。
列名リストボックスで参照したい列名をダブルクリックします。
「計算式」欄に、ダブルクリックした列名が「table(“(列名)”」と記入されます。
このように列データを参照した計算式を作成することができます。
198
また、対象データがデータベースの場合、「計算式」欄には「列名」と記入されます。計算
式には、対象データベースにそった SQL を記述してください。
列名および計算式が正しく記入されていることを確認します。
「実行」ボタンを押すと、末列に列が追加されたデータが作成されます。
199

集計
集計を行います(パラメータの指定方法は「Aggregate」アイコンと同じです)。
(操作対象データを、再度「行選択 2」とします。
)
「集計」タブを選択します。
「結果名」欄に作成したいデータ名を記入します。
200
集計したい項目を「集計項目」欄のチェックボックスで選択、キー付きおよび重み付きな
どの指定を行います。
「キー列のカウント」欄は、キー列に指定した列の件数を集計するチェックボックスで、
「集
計項目」欄と排他的になります。
201
「実行」ボタンを押すと、集計データが作成されます。
202
(集計項目「平均」の全てにチェックを入れた場合の結果)
(
「キー列のカウント」にチェックを入れた場合の結果)

日付時刻処理
日付を数値にして分解、期間計算、オフセット計算します。
(操作対象データを、サンプルデータの「時系列データ」とします。
)
「日付時刻処理」タブを選択します。
「結果名」欄に作成したいデータ名を記入します。
203
処理対象を選択します。
列名を選択した場合、データの列名を選択します。
日付の形式は自動検出しますが、独自の形式を扱う場合は、形式ボタンを押し、形式を入
力することもできます。
対象に日時を選択した場合は、日時を指定します。
204
処理対象データを分解して出力する場合、
「分解出力」にチェックを入れ、出力したい項目
を選択します。
「曜日」を出力項目に選択した場合、曜日の出力形式を指定します。
205
処理対象データとの期間を計算する場合、「期間計算」にチェックを入れます。
処理対象データを始期として扱うので、終期となるデータを選択します。
206
計算の向きを指定します。
期間の計算結果のうち、出力したい項目を選択します。
処理対象データとのオフセットを計算する場合、
「オフセット計算」にチェックを入れます。
オフセット計算の対象を選択します。
207
列名を選択した場合、データから列名を選択します。
値を選択した場合、計算値を入力します。
オフセット計算結果のうち、出力したい項目を選択します。
結果データに元のデータを出力したい場合、
「元データ」にチェックを入れます。
208
「実行」ボタンを押すと、日付処理データが作成されます。
■ 作成データの削除
(carTest データでの「集計」実行後に戻って説明します。
)
「対象データ」欄で、作成したデータを右クリックし、
「削除」を実行します。
209
確認ダイアログが表示され、
「OK」ボタンを押すと、データが削除されます。
ただし、削除データから作成されたデータも同時に削除されます。
■ 作成データの表示、非表示切り替え
「対象データ」欄で、作成したデータを右クリックし、
「表示」まはた「非表示」を実行し
ます。
210
データ&グラフビュー画面でデータの表示、非表示切り替えが行えます。
この状態で、データハンドリングの「閉じる」ボタンを押し、アイコンを終了すると、実
際の結果出力からも、非表示とした「行選択 1」が削除されます。
再度アイコンを実行すると、
「非表示」として削除したデータも、対象データ欄にはツリー
構造を保ったまま表示されますので、「表示」を実行することで、簡単にデータを再作成す
211
ることができます。
212
■実行パラメータの再現
一度実行したパラメータを画面上に再現する機能です。
対象データ欄で、作成したデータを右クリックし、「実行パラメータ再現」を実行します。
確認ダイアログが表示され、「OK」ボタンを押すと、選択したデータを作成した際のパラ
メータが画面に再現されます。
例えば、再現したパラメータを一部編集し、これを実行することで、少しだけ条件の異な
るデータを簡単に作成することができます。
213
■他のデータへの適用
同じ形式を持つデータであれば、データハンドリングアイコンで行った操作を適用して、
データを作成することができます。
操作を行ったデータハンドリングアイコンをコピーします。
ペーストしたデータハンドリングアイコンに、別のデータや別のアイコンをつなげて「再
実行」を行います。
214
同様の操作を行ったデータを、パラメータ設定を行うことなく得られます。
■ビッグデータ形式の入力データの利用
ビッグデータ形式のデータを扱うためには、Big Data Module のインストールが必要とな
ります。

入力データ
ビッグデータ形式の出力をもつアイコンを入力データとして矢印で結ぶことで、データハ
ンドリングを利用することができます。
215

並列実行数および出力フォルダの設定
データハンドリング操作画面右上に、ビッグデータ用プロパティ設定ボタンがあります。
表示されるダイアログで、並列実行数、および、出力フォルダを指定します。
一度操作を実行後(データ作成後)は、出力フォルダを変更することはできません。
それぞれデフォルトは、並列実行数はマシンのコア数、出力フォルダは自動、になります。
216
■ODBC 接続によるデータベースからの入力データの利用
事前に、利用するデータベースに応じた ODBC 接続の設定が必要となります。

入力データ
ODBC を選択したデータアイコンを作成し、そのアイコンを入力データとして矢印で結ぶ
ことで、データハンドリングを利用することができます。
データアイコンの作成に関しては、
「データアイコン作成」のヘルプをご参照ください。
217

実行オプション
データハンドリング操作画面右下にある「DB 出力」コンボボックスで、データベースへの
出力形式を選択します。
データベースへの出力形式として「テーブル」と「ビュー」が選択できます。
実行の際に、
「VAP 形式出力」チェックボックスにチェックを入れないで実行すると、デー
タベースへのデータの作成を行い、データ&グラフビュー画面で、作成したデータを参照
することができますが、VAP 上に VAP 形式のデータを作成しません。
「VAP 形式出力」チェックボックスにチェックを入れて実行すると、データベースへのデ
ータ作成と同時に、VAP 上に VAP 形式のデータを作成します。
218
また、
「DB 出力」コンボボックスで「なし」を選択すると、データベースへの書き込みを
行わずに、VAP 上に VAP 形式のデータを作成します。
219
5.15.
データハンドリング(旧)
■ データハンドリング
データハンドリングは、データ可視化の一環として、マウス操作でインタラクティブにデ
ータを操作、加工しながら、その内容、結果を表形式または、グラフ形式で確認するツー
ルです。このアイコンでは、データ抽出、列追加、集計などの計算を同時に行うことがで
きます。データ操作およびグラフ表示はすべて自動的にスクリプトソースに記憶され、他
のデータへの適用、スクリプトレベルでの操作の微調整などが可能となります。
以下の画面から構成されます。次節、データハンドリングメイン画面参照。
1.
データハンドリングメイン画面
2.
データ操作画面
3.
グラフ作成画面(データビュアーと同様にデータハンドリングメイン下画面にて
右クリックメニューで新規チャート作成によってグラフ作成画面に移ります。)
入力データ
データハンドリングアイコンに向かってつなげたデータを入力テーブルにします。
複数テーブルを同時に扱えます。
可能なデータ操作
データ操作画面で操作を実行すると、その操作で作られたテーブルがデータハンドリング
メイン画面に表示されます。各テーブルへの可能な操作は以下になります。
1.
行選択
2.
列選択
3.
列追加(計算式による追加)
4.
集計
5.
スクリプト実行
上記 1~4 の操作からスクリプトを作成することができます。
さらに、データ操作画面で編集し実行することができます。
■データハンドリングメイン画面
220
データハンドリングメイン画面
データハンドリングのメイン画面はデータビューアーと共通で、ほぼ同様の操作が可能で
す。データビューアーと共通に持っている機能については、
「データビューアー」の項を参
照してください。ここではデータハンドリングアイコンにのみ存在する機能について説明
します。
■ 右クリックメニュー(メイン画面)
データハンドリングのメイン画面で、テーブルを右クリックすると、次のメニューが現れ
ます。データハンドリングに固有のメニューは次の通りです。
221

選択行を新テーブル作成
選択行のみを含むテーブルを作成します。主にグラフィカルカットを行う場合に用います。

分割ウィンドウ表示/タブ形式表示
このテーブルを表示する形式を分割ウィンドウとタブ形式から選択します。
■データ操作画面
データ操作画面
データ操作画面では上記のデータ操作が可能です。タブ選択で必要な操作を指定し、操作
についての必要なパラメータを指定して“実行(新規)
“すると、新しいテーブルがデータ
ハンドリングメイン画面に追加されます。”実行(更新)
“ではテーブルが更新されます。
“閉
じる“でデータハンドリングを終了します。
■ 新規テーブル作成
新規テーブルの作成方法(フィルタの作成方法)には次の2通りがあります。

データ操作画面にて操作を指定し実行(新規)をクリックする

グラフィカルカット
データハンドリングではまず行選択タブで条件を設定します。条件を設定した後、右クリ
ックをして実行(新規)で、データが作成されます。このとき設定した条件は、同時にこ
のアイコンのフィルタ条件となります。再度このアイコンに、同じ形式のデータを入力し
てアイコンを再実行させるためには、同じ条件列をもつ同じデータ名のデータを与える必
要があります。また新規データを作成するために用いたデータを削除したり名前を変更し
たりすると、フィルタの実行はできなくなります。
222
データハンドリング操作 詳細
可能な操作は次の 5 種類があります。新規データ作成1回につき、次の内のどれか1つが
選択可能です。
行選択
条件にマッチする行のみ抽出します。数値データの場合、対象に数値を入力して抽出値(ま
たは範囲)を指定します。また文字列の場合は指定した文字を含む行を抽出可能です。
列選択
選択した列のみを抽出します。
223
列追加
元のデータにある列から作成した別の列を追加します。例えば菖蒲データであれば、がく
長とがく幅をかけて、大きさの基準値を付与できます。
集計
データの集計結果を出力します。パラメータの指定方法は集計アイコンとほぼ同じですが、
キーごとの件数も加えて表示できるようになっています。
224
実行(新規または更新)
各操作を設定した後に、新規テーブルを作成するには、設定エリアで「実行(新規)
」を選
択します。新しくテーブルが作成され「データ.行選択」といったようなデータ名が付きま
す。抽出した後で条件を微調整し、再度データを抽出しなおす場合は「実行(更新)
」を選
択してください。
スクリプト作成
「スクリプト作成」を実行すると、この操作を行うために用いたスクリプトをスクリプト
タブに表示されます。このスクリプトはそのままスクリプトアイコンに貼り付けて実行す
ることが可能です。下図のようにスクリプトのタブにスクリプトが表示されます。このス
クリプトを編集し、実行(新規)をして、新規テーブルを作成することができます。
225
■ グラフィカルカット
グラフ上で抽出する領域を選択し、その領域情報を別のデータに対して適用する方法です。
グラフの描画を行ってからデータの特徴を見極めたうえでフィルタリングを行うことがで
きるのでマニュアル条件設定よりも強力です。グラフィカルカットを行うには、まずデー
タからグラフを描画します。
(テーブルを右クリックして「新規チャート作成」を選択しま
す。 「データビューアー」の項を参照してください)
※2014 年以降、64bit OS マシンにおいて、
「新規チャート作成」機能は使用できなくなり
ました。
226
この後、領域選択ボタンを押してから抽出したい領域を指定します。指定したい範囲の左
クリックし領域選択ボタンを押すと、グラフ上でデータを選択することができます。マウ
スの左ボタンを押し込んだままマウスを動かすと、青い領域が表れますので、この領域で
選択したい棒や点などを囲みボタンを離すと、複数のデータが同時に選択できます。
227
抽出対象となるデータがテーブル上で選択状態となります。選択されたデータのどれかを
テーブル上で右クリックをして「選択行を新テーブル作成」を選択します。これでフィル
タが定義されました。
データが数値データの場合、領域データは数値区間の組み合わせとして保持されます。入
力データ数が異なるデータを入力しなおした場合は、同じ領域に入ったデータが抽出対象
となります(なお、グラフ上でカテゴリの軸を含む場合の条件は、選択された領域内のカ
テゴリ値のどれかを含むこととなります)。なお実際の抽出条件は、フィルタ後のデータを
右クリックして「テーブル変更」を選択して出るハンドリングウィンドウの下部で確認す
ることが可能です。
■他のデータへの適用
定義したフィルタは、同じ形式を持つデータであれば同じ条件を適用してデータハンドリ
ングで行った操作を行うことが可能です。フィルタの適用方法は、次のようになります。
アイコンのコピーをする方法
最も簡単な方法は、アイコンそのものをコピーする方法です。コピーした後に別のアイコ
ンにつなげて「再実行」を行うと同様の操作を行うことが可能です。
228
スクリプトをコピーする
スクリプト作成を行った場合は、作成されたスクリプトをコピーし、スクリプトアイコン
にコピーした内容を貼り付けることによって、同じ抽出を行うことが可能です。
229
5.16.
日付時刻処理
日付時刻処理アイコンには以下の役目があります。

日付と時刻を表す文字列から数値としてとりだす

日付と日付の期間を計算する

オフセット日付(基準となる日付に指定した日数を加えた日付)を計算する
これらを用いることで、日付を扱うことが容易になります。
230
■ 画面
図 5-29
日付処理 GUI 画面(基準計算タブ指定時)
231
図 5-30
日付処理 GUI 画面(オフセット日付タブ指定時)
設定画面

対象時刻

列指定
日付時刻を表している列を対象時刻に指定します。

形式
列指定した場合、列に入力されている日付の形式を対象時刻に指定します。
232

時刻指定
日付時刻を手入力で指定します。

基本出力項目
対象時刻で指定した日付時刻に対して出力したい項目を指定します。

曜日名
曜日名を出力するときの形式を指定します。

期間計算
対象時刻との期間を計算します。

基準時刻

列指定
基準時刻を表す列を指定します。

形式
基準時刻の列に入力されている日付の形式を出力します。

時刻指定
基準時刻を1つ、手入力で指定します。

基準時刻から、まで
対象時刻-基準時刻、基準時刻-対象時刻のどちらを計算するか指定します。

出力単位
期間の計算結果のうち、出力したい項目について指定します。

オフセット日付
対象時刻にオフセットを表す数値を加えたものを計算します。

オフセット指定
オフセットの形式を指定します。

列指定
対象期間の各行に対応するオフセットの列を指定します。

オフセット
オフセットとなる整数を 1 つ指定します。

オフセット単位
オフセットを加えた結果を出力したい項目について出力します。

元データ出力
出力結果のテーブルに入力となったテーブルを出力するかどうかを指定します。
233
■出力結果
左から元データ、基本出力項目、期間計算結果、オフセットを足した結果の順に、指定
したものについて出力されます。
図 5-31
出力結果の例
234
5.17.
行選択
行選択アイコンは、ある条件に対して合う行のみからなるテーブルと、合わない行のみ
からなるテーブルに分けて出力する機能を持ちます。また、複数の結果を一度に作成する
ことも可能です。
■ 画面
図 5-32
行選択 GUI 画面
設定画面

展開
条件を指定する枠内の階層構造を展開します。

たたむ
条件を指定する枠内の階層構造をたたみます。

結果追加
結果名、Not 結果名に関する表が追加されます。

条件追加
行選択の条件に関する表を追加します。

結果名、Not の結果名
条件に合った行からなるテーブルの名前と、合わなかった行からなるテーブルの名前
を指定します。

条件結合
235
複数の条件を設定した場合、
「かつ」、「または」のどちらかを指定して、条件を作成し
ます。

列名
条件を設定する列の名前を指定します。

列属性
指定した列名の属性を表示します。

条件演算
列属性が文字列の場合は「次のいずれか」と表示され、下に選択、内容、件数、パー
センテージからなる画面が登場します。列属性が数値(整数、実数)の場合は不等号
などの演算を指定します。

対象
列属性が文字列の場合は、選択でチェックした内容が表示されます。列属性が数値の
場合は数値を入力し、条件演算と合わせて、条件を作成します。例えば、条件演算に
≧、対象に 10 と入力した場合、指定した列で 10 以上の値を持つ行のみを抽出するこ
とになります。

最小、1Q、中央値、平均、3Q、最大
列属性が数値の場合、指定した列の統計量を表示します。値をクリックすると対象に
その値を代入することができます。

選択(列属性が文字列のときのみ)
出力させたい内容にチェックをいれます。

内容(列属性が文字列のときのみ)
列に含まれる文字列を全種類表示します。

件数(列属性が文字列のときのみ)
列に含まれる内容のそれぞれの件数を表示します。

パーセンテージ(列属性が文字列のときのみ)
列に含まれる内容の件数の割合をパーセントで表示します

No.(列属性が文字列のときのみ)
カテゴリ値の出現順に、1から順に値を割り振った列です。

文字列の表示個数
一度に表示する文字列の最大カテゴリ数を指定します。列のカテゴリをさらに表示す
る際には、文字列の表示個数の値を大きく設定し、件数・パーセンテージの***と書か
れた箇所をダブルクリックします。すると、文字列の表示個数で指定された数だけカ
テゴリが表示されます。全カテゴリが表示されている状態で件数・パーセンテージの
236
***と書かれた箇所をダブルクリックすると、***と書かれている件数・パーセンテー
ジが計算され、その値が表示されます。
■ 結果
結果名、Not の結果名で指定した名前を持つテーブルを出力します。下の図では res1 に
がく長が 51.0 以上かつ種類が Versicolor の行を、nres1 には条件に当てはまらなかった行
を出力します。また、res2 には種類が Setosa の行を出力します。条件に当てはまらなかっ
た行については、Not の結果名にテーブル名を指定していないので、出力されません。
図 5-33
条件指定画面
237
図 5-34
出力結果
■ 注意
条件や結果名の表を削除するには、白いセルの左にある青い箇所をクリックして、行全
体を選択した状態にして Delete キーを押します。
図 5-35
条件の削除
238
5.18.
日付選択
日付選択アイコンは日付に関するフィルタリングを行い、条件に合う日付を持つ行のみ
を抽出します。
■ 画面
図 5-36
図 5-37
日付範囲指定タブ
開始日からの期間タブ
239
図 5-38
終了日までの期間タブ
■設定画面

列指定
フィルタリングの対象となる日付の列を指定します

形式
日付の列の日付のフォーマットを指定します

日付範囲指定
開始日と終了日を指定して、期間に当てはまる行を抽出します

開始日からの期間
開始日とその日から先の期間を指定して、期間に当てはまる行を抽出します

終了日までの期間
終了日とその日までの期間を指定して、期間に当てはまる行を抽出します
■出力
日付を表す列が指定した期間に該当する行を出力します。
240
5.19.
集計
データファイルに含まれる内容について、文字列(項目)の件数をカウントしたり、数
値データの合計、平均、分散などを求めたりするのに用います。データの集計方法は、項
目カウンタ と サマリ の 2 通りがあります。項目カウンタの場合はクロス集計表を作成す
ることが可能です。集計キー列名を指定した場合は、キーごとに集計を行います。
図 5-39 項目カウンタ
241
図 5-40
サマリ
項目カウンタ
指定した対象列内の、項目ごとの数をカウントします。
(例) 集計キー列 = 年齢、対象列 = 性別 と指定した場合
242
図 5-41
項目カウンタ結果例
クロス集計
項目のカウンタ結果について、キー列と対象列をそれぞれ縦と横におく表(クロス集計
表)で表すことも可能です。例えば、結果形式を合計表とした場合は、次のようなテーブ
ルが得られます。
243
図 5-42
クロス集計表
結果形式の選択項目

リスト
集計表をリスト形式で出力します。

マトリックス
集計表をクロス形式で出力します。

合計表
クロス集計表(クロス形式に列方向、行方向の合計を加えたもの)を出力します。
244

割合(横)
クロス集計表に対して、各セルの頻度を行方向の頻度の和で割ったものを計算し
て出力します(単位はパーセント)
。列名は集計対象列名+集計対象列名の内容+”
→”

割合(縦)
クロス集計表に対して、各セルの頻度を列方向の頻度の和で割ったものを計算し
て出力します(単位はパーセント)
。列名は集計対象列名+集計対象列名の内容+”
↓”

割合(横)+割合(縦)
割合(横)
、割合(縦)を同時に表示します。列名は集計対象列名+集計対象列名
の内容+割合の方向(→または↓)

マトリックス+割合(横)
上記、マトリックスの結果テーブルに割合(横)を列方向につなげたもの

マトリックス+割合(縦)
上記、マトリックスの結果テーブルに割合(縦)を列方向につなげたもの

マトリックス+割合(横)+割合(縦)
上記、マトリックスの結果テーブルに割合(縦)、割合(横)を列方向につなげた
もの
245

合計表+割合(横)
上記、合計表の結果テーブルに割合(横)を列方向につなげたもの

合計表+割合(縦)

上記、合計表の結果テーブルに割合(縦)を列方向につなげたもの

合計表+割合(横)+割合(縦)
上記、合計表の結果テーブルに割合(縦)、割合(横)を列方向につなげたもの
サマリ
指定した対象列に対して、平均、合計などの計算を行います。計算方法は、サマリ項
目で指定します。
(例) サマリ項目 = 平均、 分散、件数、
集計キー列名 =性別、集計対象列名 =利用時間、クレーム回数、
出力形式 = マトリックス出力形式 と指定した場合。
246
図 5-43
サマリ結果例
サマリ項目には同時に複数選択を指定することができます。キー項目の指定がなければ、
レコードを対象とします。
マトリックス出力形式は、サマリ項目(Summary.Op.Name 列)と集計対象列名をそれぞれ
縦と横の表形式で出力します。
マトリックス出力形式のチェックを外してサマリを実行すると、横方向に 集計対象列名.
サマリ項目 を列名とした形式で出力します。
図 5-44
サマリ結果例 (マトリックス形式のチェックを外した場合)
247
5.20.
パラメータ毎実行
パラメータ毎実行アイコンに接続された処理フロー上のアイコンについて、パラメータ
セットを複数指定して、設定されたアイコンのパラメータを変更しながら全アイコンのパ
ラメータセットの組み合わせ数だけ、処理フローをループ実行します。
ループは処理フローの下流に近いアイコンのパラメータセットほど早く回ります。また、
実行対象の処理フロー内に、他のパラメータ毎実行アイコンが含まれる場合は実行できま
せん。
■ 画面
図 5-45
アイコン選択画面
248
図 5-46
パラメータ指定画面(ファイル分割)
パラメータ毎実行アイコンをダブルクリックすると、上流にあるアイコンの一覧が表示
されます。パラメータを変えたいアイコン名をクリックしてパラメータ編集画面を開き、
パラメータの組を作成します。
■設定項目
□ アイコン選択画面
パラメータセットを指定するアイコンをクリックして、パラメータセット指定画面に
移動します。
□ Run
ウィンドウを閉じ、パラメータ毎実行を行います。
249
□ OK
ウィンドウを閉じ、設定を保存します。
□ Cancel
ウィンドウを閉じ、変更を破棄します。
□ 選択指定
パラメータセットを指定します。パラメータセットは複数指定可能で、パラメータセ
ットの区切り行及び先頭行は--(ハイフン二つ)で始める必要があります。パラメータ
は選択可能な内容の詳細を参考にして、<KEY>=<内容>の形式で記述してください。
□ 選択可能な内容
現在設定しているアイコンで設定可能なパラメータと指定方法が表示されます。指定
方法の詳細は選択可能な内容の詳細を参照してください。
□ 既存パラメータファイル内容
現在アイコンに保存されているパラメータの内容が表示されます。
■出力
各ループの結果を縦に並べたものが出力されます。また、本来の出力結果列の他に、ル
ープの回数を意味する OptionIterNumber 列と、そのループで指定されたパラメータの内
容の列が追加されます。図 5-48 は予測アイコンの出力結果です。この結果は、図 5-45 の
分析フローにおいて、ファイル分割アイコンに対して図 5-46 の設定と、Neural Network
アイコンに対して図 5-47 の設定を行った結果になります。1 行目から 3 行目までが一回目
のループで、パラメータとして Neural Network アイコンの説明変数に「がく長,がく幅,花
びら長,花びら幅」が、ファイル分割アイコンの分割比に「8 対 2」、乱数の初期値は「1」と
指定されている事がわかります。説明変数の区切り文字「,」(カンマ)は「|」(縦棒、パイプ)
に置換されることに注意してください。
図 5-47
パラメータ指定画面(Neural Network、選択指定部のみ抜粋)
250
図 5-48
出力結果
■選択可能な内容詳細
選択可能な内容詳細は以下の構成になっています。
##<定義名>
funcion=<関数名>
icon_name=<アイコン名>
memo=<メモ>
<Key>=<内容>
(以下、<Key>=<内容>の繰り返し)
memo までの行は現在設定しているアイコンについての情報を表示しています。それ以
降の行を参考にパラメータ指定を行ってください。
<Key>にはパラメータ名が入り、<内容>にはパラメータの以下の指定方法が入ります。
251
表記
意味
表記例
選択可能な値「|」や「{}」と組
「|」(縦棒、パ
み合わせて利用される。
イプ)参照
(整数 From、整
選択可能な 整数 の範囲。
ク
数 To)
From ≦ 値 ≦ To。-inf, inf,
=(1,inf)
文字列
ラ
ス
指定例
数
クラス数=3
整数 のいずれかを指定する。
-inf は-無限大、inf は無限大
とする。
(実数 From、整
選択可能な 実数 の範囲。
分岐停止条件.
分岐停止条件.節点
数 To)
From ≦ 値 ≦ To。-INF, INF,
節点の不純度
の不純度=12.5
整数 のいずれかを指定する。
=(0.0,100.0)
-INF は-無限大、INF は無限
大とする。0 より大きく 1 未満
の 場 合 (0.00001,0.99999) と
する。
<説明文>
「」(ブランク)
「|」(縦棒、パ
データに依存する値。記号<>
説明文詳細を参
内に説明が記述されている。
照
選択肢なし
「{}」(中括弧)参
オフセット.出力単
照
位=
デ ー タ 型 =類 似
データ型=類似度
一つの項目を選択
イプ)
「{}」(中括弧)
度|非類似度
複数の項目を選択
オフセット.出
オフセット.出力単
力単位=|{年数,
位=年数,月数
月数,週数,日数,
時数,分数,秒数}
「…」
直前の項目の繰り返し。可変長
列
を意味する。
>,...}
252
1={< 列 名
列 1=がく長,がく幅

選択可能な内容詳細
表記
説明
<列名>
データの列名
<カテゴリ列名>
データの属性が 文字列 の列名
<数値列名>
データの属性が 整数 または 実数 の列名
<クラス>
カテゴリ列 に含まれる値、文字列
<日時>
yyyy/MM/dd HH:mm:ss 形式の文字列
<列選択 1>
<列選択 1> より右側の <項> が、可変で繰り返される。
<列選択 2>
左辺の <key> の最後に連番が付加される。
ex.) 指定列=<列選択 2>,<数値列名>,数値,<自由記述>,(1,100),(2,500),<
列選択 1>,(-INF,INF),<自由記述>|<列選択 2>,<カテゴリ列名>,カテゴ
リ,<自由記述>,(2,500),<列選択 1>,<クラス>,<自由記述>
// 指定列 1=年齢,数値,年齢.Grp,20,2,-inf,10 代,20,20 代,30,30 代,inf,40
代以降
// 指 定 列 2= 月 収 , カ テ ゴ リ , 月 収 .Grp,2,20 万 ,G01,30 万 ,G01,30
万,G02,40 万,G02
<百分率>
(0.00001,100.0) に続いて "%" が記述される文字列
<フラグ 1>
(0,1) が "データ数" 分だけ繰り返された文字列、カンマ区切りなし
<フラグ 2>
(0,1) が "列数" 分だけ繰り返された文字列、カンマ区切りなし
<自由記述>
記述形式の指定なし
ex.) 結果列名の接尾辞=|<自由記述>
<属性 1>
整数|実数|文字列
<属性 2>
数値|カテゴリ|順序付き
<属性 3>
数値|カテゴリ
<数量化>
|数量化
<欠損値検出>
なし|標準偏差|平均偏差|出現率|ユーザ指定
<欠損値補間>
除外|平均値|中央値|最大値|最小値|最頻値|ユーザ指定
<最大分岐数>
共通|無制限|(2,99)
<正規化方法>
規格化(0-1)|規格化(和)|規格化(2 乗和平方)|標準化(標準偏差)|標準化
(平均偏差)|対数変換
<順序>
昇順|降順
<検索方向>
Plus|Minus
<モデル名>
決定木|NNet|KNN|SVM
253
5.21.
データエクスポート
入力データを外部に出力します。出力フォーマットは、テキスト形式、バイナリ形式、デ
ータベース(Access、ODBC)から選択できます。
■ 画面
254
255
■設定項目
□出力フォルダ
ファイル形式出力の際の出力先フォルダ
□出力形式
ファイル出力の形式を選択する
バイナリ形式
VAP ファイルの専用バイナリ形式(.vdt)
テキスト形式
csv、tsv のようなテキスト形式。フォーマットを指定可能
□区切り文字
テキスト形式出力の際の、セルの区切り文字を指定する。
プルダウンメニューにない文字を直接指定することも可
能。
フ
ァ □実数出力フォーマット
イ
ル 小数点以下桁数
タ
ブ フォーマット指定
□列名出力
テキスト形式出力の際の実数値のフォーマットを指定する
小数点以下の桁数で指定する
printf のフォーマットの書式(%03.2f など)を指定する
テキスト形式出力の際に列名を出力するかどうかを選択
する。チェックがついている場合は列名を出力する。チェッ
クがついていない場合はデータのみを出力する。
□ダブルクォーテーション テキスト形式出力の際にセルの内容をダブルクォーテー
ションで囲むかどうかを指定する。チェックがついている場
合はダブルクォーテーションで囲む。チェックがない場合は
ダブルクォーテーションをつけない。
□データソース選択
データベースの指定を行う
アクセスファイル
アクセスファイルを指定する。
ODBC DSN
ODBC の DSN でデータベースを指定する。あらかじめ
DSN の設定を行っておく必要がある。DSN 設定の詳細は
マニュアルの 7.3.データベース連携を参照。
□ID
デ
ー
タ □パスワード
ベ
ー
ス □パスワードを保存
タ
ブ
データベースにログインするための ID を設定する。ID が不
要の場合は空欄のままで良い。
データベースにログインするためのパスワードを設定す
る。パスワードが不要の場合は空欄のままで良い。
パスワードをアイコンのパラメータとして保存するかどうか
を指定する。チェックがついていれば、パスワードを保存
する。
□データベース出力設定
データベースに出力する際のオプション設定
整数
データベース上で整数データを格納する列の列型を指定
する
実数
データベース上で実数データを格納する列の列型を指定
する
256
文字列
データベース上で文字列データを格納する列の列型を指
定する
列名のドット(.)を置換する 列名にドットが含まれる場合に他の文字に置換を行う。置
文字
/
出 □上書きする
力
フ
ァ
イ
ル □選択
名
テ
ー □出力ファイル名
ブ
ル
名
換の際に使用する文字列を指定する。
既に同名のファイルが/テーブルが存在する場合に、上書
きを行うかどうかを指定する。チェックがついていれば上
書きする。
該当のデータを出力するかどうかを指定する。チェックが
ついていれば出力する。
エクスポート時のファイル名、もしくはデータベース上のテ
ーブル名を指定する。出力ファイル名として使用不可能な
文字列は下表を参照。
■ 出力ファイル名として使用不可能な文字列一覧
データベースによっては、下記以外にも使用不可能な文字列が存在する可能性があります。
ABSOLUTE
EXEC
OVERLAPS
ACTION
EXECUTE
PAD
ADA
EXISTS
PARTIAL
ADD
EXTERNAL
PASCAL
ALL
EXTRACT
POSITION
ALLOCATE
FALSE
PRECISION
ALTER
FETCH
PREPARE
AND
FIRST
PRESERVE
ANY
FLOAT
PRIMARY
ARE
FOR
PRIOR
AS
FOREIGN
PRIVILEGES
257
ASC
FORTRAN
PROCEDURE
ASSERTION
FOUND
PUBLIC
AT
FROM
READ
AUTHORIZATION
FULL
REAL
AVG
GET
REFERENCES
BEGIN
GLOBAL
RELATIVE
BETWEEN
GO
RESTRICT
BIT
GOTO
REVOKE
BIT_LENGTH
GRANT
RIGHT
BOTH
GROUP
ROLLBACK
BY
HAVING
ROWS
CASCADE
HOUR
SCHEMA
CASCADED
IDENTITY
SCROLL
CASE
IMMEDIATE
SECOND
CAST
IN
SECTION
CATALOG
INCLUDE
SELECT
CHAR
INDEX
SESSION
CHAR_LENGTH
INDICATOR
SESSION_USER
CHARACTER
INITIALLY
SET
CHARACTER_LENGTH
INNER
SIZE
CHECK
INPUT
SMALLINT
258
CLOSE
INSENSITIVE
SOME
COALESCE
INSERT
SPACE
COLLATE
INT
SQL
COLLATION
INTEGER
SQLCA
COLUMN
INTERSECT
SQLCODE
COMMIT
INTERVAL
SQLERROR
CONNECT
INTO
SQLSTATE
CONNECTION
IS
SQLWARNING
CONSTRAINT
ISOLATION
SUBSTRING
CONSTRAINTS
JOIN
SUM
CONTINUE
KEY
SYSTEM_USER
CONVERT
LANGUAGE
TABLE
CORRESPONDING
LAST
TEMPORARY
COUNT
LEADING
THEN
CREATE
LEFT
TIME
CROSS
LEVEL
TIMESTAMP
CURRENT
LIKE
TIMEZONE_HOUR
CURRENT_DATE
LOCAL
TIMEZONE_MINUTE
CURRENT_TIME
LOWER
TO
CURRENT_TIMESTAMP
MATCH
TRAILING
CURRENT_USER
MAX
TRANSACTION
259
CURSOR
MIN
TRANSLATE
DATE
MINUTE
TRANSLATION
DAY
MODULE
TRIM
DEALLOCATE
MONTH
TRUE
DEC
NAMES
UNION
DECIMAL
NATIONAL
UNIQUE
DECLARE
NATURAL
UNKNOWN
DEFAULT
NCHAR
UPDATE
DEFERRABLE
NEXT
UPPER
DEFERRED
NO
USAGE
DELETE
NONE
USER
DESC
NOT
USING
DESCRIBE
NULL
VALUE
DESCRIPTOR
NULLIF
VALUES
DIAGNOSTICS
NUMERIC
VARCHAR
DISCONNECT
OCTET_LENGTH
VARYING
DISTINCT
OF
VIEW
DOMAIN
ON
WHEN
DOUBLE
ONLY
WHENEVER
DROP
OPEN
WHERE
ELSE
OPTION
WITH
260
END
OR
WORK
END-EXEC
ORDER
WRITE
ESCAPE
OUTER
YEAR
EXCEPT
OUTPUT
ZONE
EXCEPTION
■ 出力
ファイルもしくはデータベースにエクスポート結果を出力します。
実行に成功した場合は「OK」と書かれたダミーテーブルが出力されます。
■ 注意
エクスポートアイコンは 64bitOS でのアクセスファイルへの出力に対応していません。
261
6.
Visual Mining Studio 機能
6.1. 概要
本章は Visual Mining Studio(以下 VMStudio と表記することもあります)が提供する
データ分析機能について説明します。VMStudio は VAP にインストールすることにより、
利用できるようになります。VMStudio のインストール方法については、VMStudio のイン
ストールガイドをご覧ください。VAP で利用可能な VMStudio の分析アイコンはオブジェ
クトブラウザの Visual Mining Studio フォルダ以下に配置されます。下図は Visual Mining
Studio に含まれるアイコンの一覧です。
図 6-1 Visual Mining Studio フォルダ
262
Visual Mining Studio フォルダは、機能別に次のフォルダに分類されています。

前処理
データの時系列処理、および高度な欠損補填など他の分析と併用して利用するツール
です。

統計量
集計や相関など、データの基本的な特徴を抽出するためのツールです。

モデリング
分類・回帰モデルの作成、および作成したモデルを用いて予測、評価するためのツー
ルです。

クラスタ分析
データ間の距離が近いもの同士を同じグループにする、データのグループ分けツール
です。

アソシエーション分析
同時発生事象を抽出するツールです。

多変量解析
データマイニングと頻繁に併用する統計ツールです。

外部ソフト
S-PLUS、R の時系列機能などをアイコン化したツールです。
各ツールの分析手法の技術的な詳細については Visual Mining Studio 技術資料を参照
して下さい。
263
6.2. 前処理
データマイニングでは、最初に得られたデータは必ずしも扱いやすい形式で得られてい
るとは限りません。例えば、アンケートデータにおいては、年収などの個人情報は無回答
になるようなことがしばしば起こり得ます。無回答のような欠損を含んだデータは、その
ままでは分析手法が適用できないことがあります。従って、データを取り込んだ直後に処
理を行う必要があります。
本節では、前処理に関連した機能として、時系列処理アイコンと欠損補填アイコンの機
能について説明します。
6.2.1. 時系列処理
ここでは時系列処理アイコンの説明をする前に、データマイニングにおける時系列処理
の意義について説明します。
■時系列線分パターン分析とその利点
分析する対象の時系列データは、日時や時間といった順序がある数値データです。パタ
ーン分析に適したデータとしては、企業や店舗の売上推移、株価、各種センサー、心電図、
体温、血圧、機械故障監視データなど、様々な分野のデータがあります。
図 6-2
株価終値の時系列グラフ
264
時系列分析とは、主にこのような時系列データから、なんらかの規則性、傾向、特徴を
抽出することです。分析結果から、ある店舗の売上が上がる傾向にあるのか、下がる傾向
にあるのか、あるいは、血圧が安定しているのか、変動が激しいのかを把握することが可
能になります。
時系列データ分析を行うために、まず、時系列データをどのように表すか決める必要が
あります。最も単純かつ原始的な表し方は、データをその事象がおこった日付順、時間順
に並べる方法です。しかし、この方法は、データの規則性、傾向が分かりにくく、一般的
に扱うデータ量は膨大となります。
次に簡単な方法としては、データを集約する方法があります。たとえば、売上ならば週
単位で合計する、株価ならば、移動平均法で表現する方法です。この方法で問題になるの
は、はたして週単位で集約してよいのか、移動平均なら何日間の平均が望ましいのか、単
純には決められないということがあります。また、集約することにより、多くの情報が欠
落してしまうことにあります。
単純な構造で、最大限必要な情報を保持する方法として、時系列データの表現方法がい
くつか提案されていますが、データマイニング手法の適用と相性がよいと言われているの
が、線分表現という手法です。
線分表現は、時系列を複数の連続した線分で表現する方法です。 それぞれの線分を求め
る方法は、数多く存在しますが、基本的には、隣接する時系列データ間の変動に注目し、
変動の少ないもの同士を一直線で繋げる方法です。例えば、下図のように時系列を線分化
します。
265
図 6-3
時系列データの線分表現
時系列データをこのような複数の線分で表現することには次の利点があります。

時系列上の細かい変動、または、ノイズを除去することができる

データを「圧縮」することができる

時系列データ間の距離計算の高速化が可能である

線分パターンは、データマイニング手法のクラスタリング、分類分析に適用しや
すい
時系列の「形」は、複数の線分の組み合わせ(パターン)で表現します。たとえば、左
は「下がる、上がる、下がる、上がる」と、中央は「下がる、下がる、上がる、下がる」
と表されます。もちろん、線の傾きや間隔もパターンに影響します。
266
図 6-4
線分化された時系列データのパターン
パターンに含まれる線分の数は特に制限がありません。線分化された時系列そのものを
一つのパターンとして扱うことも、時系列を複数パターンの組み合わせと扱うこともでき
ます。
時系列に似たようなパターンが周期的に現れる場合は、時系列の規則性(周期性)を求
めることや、線の傾きを時系列の傾向として分析することができます。 この分析の利点の
一つに、時系列のパターンを抽出することがあります。たとえば、同じパターンの売り上
げを示す店舗はどれとどれか、同じ心電図のパターンを示す患者はどの人とどの人かを見
つけだすことができます。パターンと時系列データを比較する分析の流れは以下のように
なります。
1.
時系列データを線分化する
2.
似たものを探したいデータのパターンを指定する
3.
時系列データのパターン間の「距離」を求める
■時系列データの線分化
時系列データを複数の線分に分割する方法(アルゴリズム)、分割された線分のタイプ、
その分割の評価基準は、多数存在します。VMStudio では、ユーザがオプションとして、次
を選択することが可能です。


線分化アルゴリズム

単調性変化(Monotonically Change)

時系列ウィンドウ(Sliding Windows)

トップダウン(Top Down)

ボタンアップ(Bottom Up)
評価基準

分散(Var: Variance)
267
分割した線分内の時系列点の分散を計算し、全体の和を最小化する

残差(R2: Residual Error)
時系列点と推定した線分間の距離の和を最小化する

最長距離(DF: Distance between line and furthest away point)
線分から一番離れた時系列点との距離の和を最小化する

線分タイプ

線形補間(LI: Linear Interpolation)

線形回帰(LR: Linear Regression)
VMStudio には時系列分析として、ts2plr という時系列線分化関数、および、線分化後の
グラフ表示用関数 ts_plr_plot があります。時系列処理の線分表現アイコンを用いても線分
化できます。
アイコンやスクリプトで加工され線分化された時系列データは、次のような形でテーブ
ルに並べられます。1 つの行が1つの線分に対応しており、線分化されたサンプルの開始位
置、線分の長さや開始値、傾きなどが記録されます。
図 6-5
線分化された時系列データ
■時系列データのパターン化の方法
時系列を複数線分で長く繋ぐ方法のほかに、線分のパターン数を固定して、時系列の開
始点から、一点ずつ後ろにずらしながら、線分パターンを抽出することも可能です。以下
は、線分数が4の場合の例です。
268
図 6-6
時系列データからのパターンの切り出し
図 6-7
パターン化された時系列データ
VMStudio には、時系列データをパターン化する線分表現アイコンと、ts2pattern という
時系列パターン化関数があります。アイコンやスクリプトで時系列データがパターン化さ
れた結果のテーブルには、各行ごとにパターン化したサンプルの位置、各線分の開始値や
傾き、線分長などが記録されます。
■パターン間の距離計算
VMStudio では、ユーザが次の距離計算を選択することができます。
1.
パターンに含まれる線分に対応する全ての点の間のEuclidまたは、Manhattan距離
2.
パターンに含まれる線分の端点間の Euclid または、Manhattan距離
3.
Time Warping距離
VMStudio に は 、 ts_plr_dist と い う 線 分 化 さ れ た 時 系 列 パ タ ー ン 間 の 距 離 関 数 と
ts_pattern_dist というパターン化された時系列のパターン間の関数があります。時系列処理
の距離計算アイコンにも同様の機能があります。
■使用できる機能とスクリプト・アイコンの対応
269
VMStudio では、時系列分析に用いる、以下のスクリプト関数があります。
関数名
機能
ts2_matrix
時系列の推移列を作成する関数
ts2plr
時系列の線分化関数
ts_plr_plot
グラフ表示するための関数
ts2pattern
時系列のパターン化関数
ts_plr_dist
線分化された時系列間の距離関数
ts_pattern_dist
パターン化された時系列間の距離関数
ts_pattern_adjust
パターン化された時系列の標準化をする関数
時系列処理のアイコンとスクリプト関数の対応関係は以下のようになります。
アイコン名
該当する関数
基本操作
ts2_matrix
線分表現
ts2_plr、ts2_pattern、ts_plr_plot、
距離計算
ts_plr_dist、ts_pattern_dist
次項より時系列処理に関連するアイコンについて紹介します。
6.2.2. 時系列処理 基本操作
時系列処理の基本操作アイコンでは、時系列データに対して以下の処理を行うことがで
きます。

推移列の表示
推移列とはある時点の前後のデータを同じ行に表示させたものです。例えば、株
価の前日と当日の終値の差などを計算する際に利用できます。

推移列に対する移動平均に代表される基本的な計算の結果表示
例えば、株価の 25 日平均のような列を作成することができます。
■ 結果イメージ
左の表のような入力データを、右の 2 つの表のような形式に変換することができます。
270
表:入力データ
表:出力(推移列)の例
表:出力(移動平均)の例
日付
値
1月1日
500
1月2日
400
1月3日
600
1月4日
300
1月5日
500
1月6日
600
1月7日
600
1月8日
700
1月9日
600
1月10日
400
1月11日
400
日付
当日 1日前 2日前
1月3日 600 400 500
1月4日 300 600 400
1月5日 500 300 600
1月6日 600 500 300
1月7日 600 600 500
1月8日 700 600 600
1月9日 600 700 600
1月10日 400 600 700
1月11日 400 400 600
日付
移動平均
1月3日
500.00
1月4日
433.33
1月5日
466.67
1月6日
466.67
1月7日
566.67
1月8日
633.33
1月9日
633.33
1月10日
566.67
1月11日
466.67
■ 画面
図 6-8
時系列操作基本操作 GUI 画面
271
設定項目

対象時系列
計算対象となる時系列データの含まれる列を指定します。
 対象期間

長さ
推移列や移動情報で表示や計算の対象となる行数を指定します。

先方・後方
時系列テーブルの先方(時間的に前、テーブルでは下)か後方(時間的に後、テー
ブルでは上)の方向にある行を取得します。
 処理選択

推移列
時系列データのある点の先方(テーブルでは下)もしくは後方(テーブルでは上)
にあるデータを指定した数だけ取得し、横に展開してテーブルにしたものを推移
列と呼びます。ここでは、それを表示するかどうかを選択します。

移動情報
推移列に関する統計量を計算します。
 結果

対象期間未満のものを除外
時系列データの先頭もしくは最後尾には、対象期間がデータ中にない行が登場す
るので、それらを除外するかどうかを指定します。

元データを含む
出力結果に入力のテーブルを含むかどうかを指定します。
■ 出力結果
左から、推移列、移動情報の順に指定したものについて出力します。以下の図では、推
移列に Open、対象期間は 2 と後方を指定しています。そのため、Open.1 には 1 つ上
のデータが、Open.2 には 2 つ上のデータが入ります。処理選択では推移列と移動情報
の平均、分散、移動平均からの乖離率を指定しています。元データは出力しないものと
し、対象期間未満のものは除外していません。上の 2 行のデータにはそれ以前のデータ
がないため、欠けている Open.1,Open.2 の値は 0 が入ります。対象期間未満のものを
除外する場合、以前のデータが揃わない上の 2 行は出力に含まれなくなります。
272
図 6-9
出力結果の例
6.2.3. 時系列処理 線分表現
時系列データを複数の線分で表現(区分線形化)します。線分化という時系列の大まか
な表現をすることによって、時系列データの増減に関する傾向を抽出します。このアイコ
ンで作成したデータは、時系列処理の距離計算アイコンで、比較したい時系列パターンと
の距離が計算できます。
273
■ 結果イメージ
線分表現アイコンでは時系列の複雑な動きから、大まかな動きを抽出します。
■ 画面
274
図 6-10
出力選択に線分データを指定した時
275
図 6-11
出力選択に線分パターンを指定した時
■設定画面

時系列選択
計算対象となる時系列の列を指定します。

時間軸
指定した列をキーにソートします。

アルゴリズム
276
時 系 列デ ータ を線 分化す る 手法 を指 定し ます。 詳 細に つい ては 技術資 料 また は
VMStudio ヘルプを参照ください。

線分種類
線分の範囲が決まった後に、線分の端と端の間の点の補間方法を指定します。両端の
間にある点については、均等な時間間隔で並んでいるものと仮定しています。

線形補間(LI)
2 つの端点を直線で結んだものを線分にします。

線形回帰(LR)
二乗誤差が最小となるように回帰した線分にします。
図 6-12

線形補間と線形回帰の違い
線分評価方法
線分に対し、どの程度実データに合っているかを評価します。

線分仕様
線分が満たすべき制約を指定します。

出力選択

キー列指定
キー列のキー毎に線分化を行います。
線分データの場合

プロットデータ
時系列選択で指定したデータと線分化したデータをまとめたテーブルを出力しま
す。折れ線グラフを書くときに用います。

マトリックス
ある点を含む線分と、点の周辺にある線分の情報を出力します。
277

左辺・右辺取得線分数
ある点が属する線分の左右にある線分を、それぞれいくつ出力するか指定し
ます。

結果項目選択
線分に関する情報のうち、何を出力するかを指定します。
線分パターンの場合

パターンサイズ
パターンとする線分の数を指定します。

対象区間長さ
線分化したい時系列区間を指定します。線分化した結果、指定した長さよりも長
いパターンは出力に含まれなくなります。チェックしない場合には、区間の限定
は行われません。

スキップ指定
作成した時系列パターンの一番右にある線分の長さの何倍スキップして、次のパ
ターンを出力するかを指定します。チェックしない場合にはスキップせず、すぐ
左の点を時系列パターンの一番右の点とします。パターンは一番右から左へ向か
って作成します。

結果項目選択
パターンの各線分に関する情報のうち、何を出力するかを指定します。
278
■出力

出力選択で線分データを指定した場合
時系列データを線分化した結果を出力します。オプションでマトリックスを指定しな
い場合は、1 行で 1 つの線分を表した結果を出力します。オプションでマトリックスを
指定した場合は、注目する点が属する線分と、その前後の線分の情報を結果として出
力します。プロットデータを指定すると、時系列データと線分化された各点における
値を、別テーブル PlotData として出力します。PlotData をデータ&グラフビューアイ
コンにつなげ、折れ線グラフなどを描画すると、線分化前のデータと線分化されたデ
ータをグラフ上で比較することができます。
図 6-13
線分データの 1 行のデータ中にある列名の意味
279
図 6-14
線分データの出力例(マトリックス非指定時)
マトリックスを出力に指定した場合、注目する点が属する線分の前後にある、線分の情
報を表す列名には、それぞれの線分を区別するため、下図の文字列が先頭につけられます。
図 6-15
注目する点 TS と Prev、Post の関係
280
マトリックスを出力に指定した結果にある列 TSLine1、TSLine2 は、線分化された
時系列データを表します。TSLine1 と TSLine2 は線形回帰で補間したとき、線分の端
点で複数の値をとりうるため、下図のように端点のみで値が変わります。
図 6-16 TSLine1、2 の端点での違い
図 6-17
線分データの出力例(マトリックス指定時)
281
図 6-18

プロットデータ出力例
出力選択で線分パターンを指定した場合
線分の右端のインデックスとそこから左にある線分の情報を、指定されたパターンサ
イ ズ だけ 並べ て出 力しま す 。例 えば 、下 のテー ブ ルの 一番 上の 行では 、 最後 が
6(TsRowNo)番目の点で、長さ 2(Length.1)と長さ 5(Length.2)の 2 つの線分から、パタ
ーンが構成されているという意味になります。
282
図 6-19
線分パターンの出力例
図 6-20
一番上の行のパターン
283
6.2.4. 時系列処理 距離計算
パターンの線分と、サンプルの線分の距離評価をします。サンプルと比較するパターン
の中で、良く似たサンプルの部分を探します。線分表現アイコンやスクリプトから作成さ
れた、パターンとサンプル(入力マッチング変更では patData、SampleData となっていま
す)が入力となります。両方とも線分データもしくは線分パターンであることを想定してい
ます。
■ 計算イメージ
パターンを移動させながらサンプルの部分と比較し、距離を算出します。
■ 画面
284
図 6-21
線分データ指定時
285
図 6-22
線分パターン指定時
■設定画面

計算方法
パターンとサンプル間の距離の計算方法を指定します。

距離関数
線分の距離の定義を指定します。

重み、起点合わせ

起点合わせ
距離計算の際に、サンプルとパターンの開始点の差をサンプル全体から引き算し
て、起点を合わせてから、距離を計算するかどうかを指定します。
286
図 6-23

起点合わせ
サンプル・比較データ重み
サンプル・比較データの各点に対し重みを設定します。利用する場合には、入力
となるテーブルの各線分の一番右に、重みを表す列(Weight.1,2,…)が必要です。

対象データ
対象となる入力データは、線分表現アイコンで作成された線分データと線分パターン
の 2 種類があり、どちらが入力になっているかを指定します。入力にはサンプルとパ
ターンの 2 つのテーブルを用意する必要があり、どちらもここで指定するものに一致
している必要があります。

結果指定(線分パターン指定時のみ)

パターンサイズ
入力の線分パターンのサイズが表示されます。

件数

もっとも近い(遠い)
サンプルに最も近い(遠い)線分パターンを指定した件数だけ出力します。

全件
全線分パターンと全サンプルを比較して、その距離を出力します。

プロットデータ作成(線分データ指定時のみ)
パターンと、サンプルの最後の点をパターンの各線分の最後の点に合わせ、次々とず
らしたものを出力するかどうかを指定します。
■ 出力
2 つの入力データが線分データか線分パターンであるかで、出力の内容が変わります。
287
線分データ
パターンをずらしながらサンプルの対応する部分との距離を計
算していきます。具体的には、パターンの端点とサンプルの頂
点を合わせて対応する部分で距離を計算します。距離とサンプ
ルの頂点が出力されます。プロットデータ作成をチェックした
場合、パターンとサンプルをプロットするためのテーブルが出
力されます。
線分パターン
サンプルとパターンで得られる線分パターンの組み合わせにつ
いて距離を計算します。サンプルとパターンのそれぞれの行番
号と距離が出力されます。

入力が線分データの場合
出力 result は、パターンと比較しているサンプルの一部の距離を表す Dist と、パター
ンと比較しているサンプルの最後のインデックス EndSegPos からなります。出力
PlotData(プロットデータ作成指定時のみ)は、パターンと、サンプルの最後の点をパ
ターンの各線分の最後の点に合わせ、次々とずらして出力したものです。
288
図 6-24
線分データの出力例
289
図 6-25

線分データ PlotData の出力例
線分パターン指定時の出力例
各パターンテーブルの行に対し、「結果指定」で指定した形式で、各サンプルテーブル
の行との距離を出力します。
290
図 6-26
6.2.5.
線分パターン指定時の出力例
欠損補填
データ中の欠損を補填します。データは複数個の独立多変量正規分布に従うものとし、
K-Means-EM アルゴリズムを用いて欠損を補填します。
入力データが 1 つの場合には、入力データは欠損補填対象として扱われます。
291
図 6-27
1 つの入力データ
欠損補填アイコンへの入力データが 2 つの場合には、一番目に入力したテーブルは欠損
補填対象で、二番目に入力したテーブルは欠損場所指定テーブルとなります。この場合、
欠損補填対象となるセルは、欠損パターン(後述)に該当するセルと、欠損場所指定テー
ブルで指定された位置にあるセルになります。
図 6-28
2 つの入力データ
■ 画面
図 6-29
欠損補填パラメータ設定画面
292
設定画面

学習回数
EM アルゴリズムを適用する回数です。1 以上の整数値を指定します。

クラスタ数
データ中に存在するクラスタ数です。2 以上の整数値を指定します。

距離関数
データ間の距離を計算する関数を指定します。"Euclid"(ユークリッド距離)もしくは
"Manhattan"(マンハッタン距離)が指定可能です。

乱数のシード
乱数のシードを指定します。チェックを入れない場合、ランダムにシード値を設定し
ます。チェックを入れると、乱数のシード値が整数値で指定できるようになります。

結果指定
どのような欠損補填の結果を出力するか指定します。"学習最終回"もしくは"最小誤差"
が指定できます。"学習最終回"では、EM アルゴリズムを適用して最後に得られた結果
を出力します。"最小誤差"では、EM アルゴリズムで学習中に設定されたクラスタの中
心値と、補填されたデータの距離の総和が最小になったときの補填結果が出力されま
す。

最後方データ行をクラスタの初期中心値とする
データの下から「クラスタ数」で指定した数だけ行を取り出し、その内容をクラスタ
の初期中心値とします。チェックを入れない場合、初期中心値はランダムに選ばれま
す。

距離の重み
距離計算時の各列の重みを実数で指定します。

欠損パターン
列毎に欠損とみなすパターンを指定します。
■ 結果
欠損補填後のデータとデータが属するクラスタの ID を出力します。
293
図 6-30
図 6-31
欠損データ
欠損場所指定テーブル
図 6-32
条件指定画面
294
図 6-33
6.2.6.
出力結果
SQL 作成
Tree & Random Forest(ただし、Random Forest を除く)、Decision Tree、クラスアソ
シエーション、アソシエーション分析の結果から SQL 文を作成します。
データベース上に存在する予測対象のテーブルに対して、本アイコンが生成する SQL 文を
発行することで、予測を行うことができます。
例えば、データベース上の去年のデータを VAP に取り込んでモデルを作成し、SQL 作成ア
イコンにより作成された SQL を今年のデータベース上のデータに適用することで、VAP に
データを取り込むことなく予測処理を行うことができます。
295
図 6-34 SQL 作成アイコンの使い方の概略図
■ 画面
296
図 6-35 SQL 作成アイコンパラメータ設定画面
□設定項目

対象 DBTable 名
データベースにある予測対象のテーブル名を指定します。ここで指定したテーブ
ル名に対して予測を行う SQL (SELECT 文の FROM 句の対象テーブル) が生成さ
れます。

結果 DBTable 名
本アイコンで作成する SQL 文を発行する時に、結果を保存するデータベースのテ
ーブル名 (SELECT 文の INTO 句等の対象テーブル) を指定します。
※注)既にテーブルが存在していた場合は SQL 実行時に削除されます。

SQL 文スタイル
MS SQL Server や Oracle など、どのデータベースに適した SQL を作成するかを
指定します。

結論列
アソシエーション分析結果からルールテーブルへの変換用パラメータ、アソシエ
ーション分析の分析対象列名のうちどの列に対して予測を行うかを指定します。
297

欠損補填値
欠損データの処理方法を指定します。

SQL 文をファイルへ出力
SQL 文の出力場所を指定します。
□入力
下記アイコンの出力結果を入力値に指定します。
・Tree & Random Forest (ただし、Random Forest を除く)
・Decision Tree
・クラスアソシエーション
・アソシエーション分析
□出力
SQL 文ファイル
298
6.2.7.
ランダム次元圧縮
ランダム次元圧縮とは、数値行列の行列積による次元圧縮の方法です。数値行列に対し、
圧縮するための行列を右側からかけることにより元の数値行列の特定の性質を残しつつ、
列方向に圧縮した数値行列へと変換します。具体的には、オリジナルの数値データのサイ
ズが L✕N であるとき、特定の乱数により生成されたサイズ N✕M (通常、M << N )の行列
にて右から行列積を行い、オリジナルの数値列から圧縮されたサイズ L✕M の数値行列を
得ます。
ランダム次元圧縮により保存される性質は、主に任意の行同士のユークリッド距離です。
■ 画面
299
図 6-34
パラメータ設定画面(入力データ形式=マトリックス)
図 6-35
パラメータ設定画面(入力データ形式=リスト)
設定画面

圧縮後の次元
圧縮後のデータの列数を指定します。

圧縮方式
300

正規乱数
平均 0 分散 1 の正規乱数からなる数値行列を用いて次元圧縮を行います。

一様乱数
0 から1の区間の一様乱数からなる数値行列を用いて次元圧縮を行います。

ユーザ指定
ユーザが指定する離散型の乱数生成方法を指定します。値が乱数の実現値、重み
がその実現値を生成する確率に対応します。なお、重みは指定値の和が 1 となら
ない場合は内部で和が 1 となるよう正規化されます。
例えば、D. Achiloptas の考案した以下の離散確率

 3


 0

 3


with probabilit y
with probabilit y
with probabilit y
1
6
4
6
1
6
によるランダム次元圧縮を行う場合は、次の表のように設定します。
値
重み
1.732051
1
0
4
-1.732051
1
301

入力データ形式
入力データの形式がリスト形式とマトリクス形式のどちらデータ形式か選択します。
なお、リスト形式とマトリックス形式との関係は以下の通りです。
表A ある商品の売上個数
表B ある商品の売上個数
(マトリックス形式)
(リスト形式)
店
1月
2月
3月
行名
列名
値
A
1
0
2
A
1月
1
B
0
0
1
A
3月
2
C
1
3
2
B
3月
1
D
0
0
0
C
1月
1
C
2月
3
C
3月
2
注意すべき点として、ランダム次元圧縮に与えるリスト型のデータには内容が 0 とな
るセルの箇所は省略して良いということです。

マトリックス
次元圧縮を行う列を選択します。

リスト
リスト形式の場合の行名、列名、値を設定します。

乱数のシード
乱数のシードを指定します。チェックを入れない場合、ランダムにシード値を設定し
ます。チェックを入れると、乱数のシード値が整数値で指定できるようになります。

結果に圧縮対象列以外の列も含む
「入力データ形式」が「マトリックス形式」であるときに指定を行います。チェック
を入れた場合、圧縮対象として選択した列を圧縮してできた数値データに、圧縮対象
として選択していない元のデータの列を加えて結果として出力する。
■ 結果
次元圧縮したテーブルが出力される。
302
図 6-36
出力結果
303
6.3. 統計量
6.3.1. Aggregate
■ 内容
データの集計を行います。
集計項目は、件数、合計、平均、分散、最小、最大、二乗和、積が選択できます。キー付
きおよび重み付きの集計を行うことも可能です。
集計は欠損値「-INF」を除外して行われます。
■ 画面
■ 設定項目
304
□集計項目
集計項目を指定する。出力したい集計対象列と集計項目の交わる
チェックボックスにチェックを付ける。複数選択可。
集計対象列に選択できるのは、実数列と整数列のみ。
いずれの集計項目でも、欠損値が存在する場合は、欠損値を除外
して計算する。
件数
データの件数をカウントする。
合計
データの合計を計算する。
平均
データの平均を計算する。
分散
データの分散を計算する。分散の式は以下の通り
最小
データの最小値を計算する。
最大
データの最大値を計算する。
二乗和
データの各要素の二乗値の合計を計算する。
積
データの積を計算する。
□キー列
集計キー列を指定する。複数選択可。
集計キー列を指定した場合、集計キーが一致する行ごとに集計を
行う。集計キーを 1 つも指定しない場合、全体集計を行う。
集計キーとして選択可能な列は、整数列と文字列のみ。
□重み列
重み列を指定する。
重み列指定した場合、行毎に重み列の値に対応した重みづけが行
われる。ただし、件数の計算は重みの影響を受けない。
□キー列のカ
チェックを付けた場合、キー列のみを指定してカウントを行う。
ウント
チェックがない場合、集計項目で指定した対象に対する集計を行
う。チェックを付けると集計項目のチェックがすべて解除される。
■ 出力
□出力テーブル
選択した集計対象列、集計項目の集計結果が出力されます。
305
6.3.2. 相関
データの列と列の間の相関、および関連性についての指標を求めます。計算は、相関を
取る列を指定することで行います。下図の場合、がく長、花びら長を縦軸、がく幅、花び
ら幅を横軸とする相関係数の行列を作ります。
図 6-36
相関アイコンパラメータ設定
設定項目

計算
関連性の計算方法を指定します。
計算方法によって指定できる列の種類が異なるので注意してください。

相関係数(相関分析)


独立係数(クラメルの連関係数)


変数 1 = カテゴリ変数、 変数 2 = カテゴリ変数
相関比(分散分析)


変数 1 = 数値変数、 変数 2 = 数値変数
変数 1 = カテゴリ変数、 変数 2 = 数値変数
χ2 値(χ2 乗検定)

変数 1 = カテゴリ変数、 変数 2 = カテゴリ変数
306

F 値(F 検定)


変数 1 = カテゴリ変数、 変数 2 = 数値変数
出力形式

マトリックス形式
変数1× 変数2のマトリックス形式テーブルで出力します。

リスト形式
変数1、変数2の各変数の組合せ形式テーブルが出力されます。
307

相関比の計算設定例
図 6-37
相関比パラメータ設定例
6.3.3. Feature Selection
分類分析において、目的変数に対して有効な説明変数を探します。目的変数のクラスと
説明変数のクラス間に連動性があれば有効な説明変数であるとみなします。関連性は情報
量基準を比較し、情報量基準の値がより小さいモデルがよりよいモデルであると判断しま
す。情報量としては AIC、BIC、Allen の CV 規準を用います。情報量は、目的変数と説明
変数の分割表を作成し、説明変数には複数の変数の組み合わせを考慮して計算されます。
数値変数については離散化を行い、カテゴリ化してから情報量を計算します。離散化方法
は「等間隔」
、
「等数」
、
「χ2乗」
、
「Gini 係数」
、「誤判別数」の中から選択します。等間隔
308
ではデータを等間隔にカテゴリ化していきます。等数ではデータを等数でカテゴリ化しま
す。χ2値では、隣り合うデータ間の χ2 値を計算し、指定した離散化数になるまでマー
ジするという操作を繰り返し、離散化を行います。Gini 係数ではデータをソートし、隣り
合うデータ間の Gini 係数を計算し、マージ前とマージ後の Gini 係数を比較し、Gain の
小さいものからマージしていきます。誤判別数では、データをソートし、隣り合うデータ
をマージしたときの誤判別数が増加しないようにマージを繰り返します。組み合わせ方法
は 「Forward」
「Backward」
「全件」 から選択します。 Forward では 1 列から組み合
せ最大列数まで、Backward では全列から組み合せ最小列数まで組み合わせます。
図 6-38 Feature Selection パラメータ設定画面
309
□設定項目
目的変数
判別分析等の目的変数です。統計量を計算する列を選択します。
選択
その変数を計算するかどうかを選択します。
離散化数
離散化の値を設定します。
必須変数
必ず計算する変数を設定します。
離散化方法
数値変数を離散化する方法を指定します。
情報量基準
有意差を考える際の基準となる統計量を指定します。
組み合わせ方法
変数を組み合わせる際の方法を選択します。
組み合わせ最大/
変 数 の組 み合 わ せの 最大 /最 小 数を 設定 し ます。 組 合せ 方法
最小列数
(Forward/Backword)を切り替えると表示が変わります。
□結果
Feature Selection の結果は以下の通りです。
情報量基準は、選択した情報量基準(AIC、BIC、Allen の CV 規準)をもとに算出した値
です。独立モデルとの差は、変数を一切含まないモデルと情報量基準列との差を計算した
ものです。
6.3.4. 群間比較
データを複数のグループ(群)
、例えば、性別=男性、女性、に分かれた場合は、男性と
女性を比較した場合の特徴を自動的に抽出します。例えば、職業によっては、男性従業員
310
の給料が女性従業員より著しく高いという特徴があるとした場合は、群間比較は次のよう
な事実を抽出します。
(職業=A or 職業=B) and (給料=高)→ 男性の割合が女性の割合より著しく高い
各群の差の評価には、選択した対象列についての適合度のカイ 2 乗検定(χ2 – test of
goodness of fit)のχ2 値を用います。これにより、観測度数と期待度数の差が大きくなる
ような条件が抽出されます。抽出される条件は or 関係(論理和)で階層化することによっ
て、条件を満たすデータが極端に少ない条件が抽出されることを避けています。クラスタ
リングの分析結果の特徴の発見や、カテゴリ変数の各ラベルに属するクラスタの性質の発
見に有用です。
設定項目

計算オプション
計算方法を指定します。

解の最大個数
311
抽出される条件の最大数を指定します。

最大組合せ長さ
一つの条件中に表れる対象変数の組み合わせの数を指定します。

最低サポート(%)
条件が表す事象の最低サポート値を指定します。

数値列の最大分割数
数値列をカテゴリ化する際の最大分割数を指定します。

実行進捗情報表示
メッセージウィンドウに実行の進捗状況を表示するかを指定します。

クラス検索方向
割合が多い/少ない(Plus/Minus)ようなルールを抽出するようにします。空
白(指定なし)の場合、両方向のルールを抽出します。

重点対象
ルールの最初の条件項目として調べるかどうかを指定します。
#重点対象に A 列を指定、B 列を指定しない場合、<A の条件> and <B の条件>
は調査するが、<B の条件> and <A の条件>は調査しない。

出力形式

条件
ルールの ID 番号。番号が同じ条件のセット(And 条件)が 1 つのルール。

変数名
対象となる列の名前。

数値 From(≦)
数値属性の値の範囲の下側を表します。

数値 To(>)
数値属性の値の範囲の上側を表します。

カテゴリ値
ルールに含まれるカテゴリ変数の条件。同一変数の値が登場する場合は、その
和集合(or 条件)が 1 つのルール。

カイ 2 乗値
カイ 2 乗検定に用いる検定統計量。

確率
帰無仮説(クラスタ毎の比較対象列のカテゴリ値分布がデータ全体の比較対象
列のカテゴリ値分布に一致する)の下での、検定統計量の実現値がとりうる確
率。
312

Support(%)
ルールの条件に合うレコード数と全体件数の比。
条件1の見方:
2 ≦ 利用時間 < 11 かつ
年齢 ∈ {35-44、 NA、 65 以上、 45-54、 55-64}
結果:B 社=268、A 社=157
6.3.5. RFM 分析
R、F、M とはそれぞれ Recency(最新の購買日)
、Frequency(購入頻度)
、Monetary(購
入総額)の略で、R、F、M の値を基に優良顧客を見つけるための分析を行うためのアイコン
です。
RFM 分析では、データの選択、データのスコア化(各指標での評価)
、データの集計(総
合点評価)を行います。日付指定によってデータを選択します。指標ごとに指標を基準に
グループ分けをして、そのグループごとにスコアが割り振られます。最後に、指標ごとの
スコアを集計し顧客 1 人に対し 1 つのスコア(総合点評価)を作成します。
RFM 分析によって、顧客をランク付けした上でグループ化して、それぞれのグループへ
異なった宣伝を行うといった作戦を立てることができます。例えば F、M のランクが高く
ても R のランクが低いグループの顧客は、再度購入してくれる可能性が低く、R が同じグ
313
ループ間でも F が高い方がリピータのグループになっているといえます。購買意欲の高い
顧客を見つけることで、売上の増加や経費の削減に役立てることができます。
図 6-39 RFM 分析パラメータ設定画面
314
設定項目

対象列指定

顧客 ID
顧客 ID を表す列を指定します。

購買額
顧客の購買した額を表す列を指定します。

購買日
顧客が購買した日付を表す列を指定します。

日付形式
購買日の日付の形式を指定します。

対象データ範囲
集計の対象となるデータの範囲を日付で指定します。

終了日

指定しない
RFM 分析を行うデータの終了日は分析をしている日となります。

固定
RFM 分析を行うデータの終了日を固定します。

開始日

指定しない
RFM 分析を行う開始日に制限を設けません。

固定
RFM 分析を行う開始日を指定します。

終了日より
RFM 分析を行う開始日を、終了日を基準に設定します。

R(最新購買日)
、F(累計回数)、M(累計額)タブ

グループ分け

グループ数
顧客のランクを付ける際のグループ数を指定します。

取得件数(R(最新購買日)のみ)
顧客の最新の購買日を指定した件数だけ表示します。

等間隔分割
グループの境界値を最大値と最小値の間で等間隔に区切ります。

等数分割
グループをグループの要素数が等しくなるように区切ります。
315

固定分割点
グループの境界値をユーザが固定します。初期設定では、等間隔分割と同じ
です。

既存データからの再計算(等数分割)
固定分割点を指定した状態で実行すると、等数分割されたときのグループの
境界値が分割点となります。

ブロック
固定分割点を指定した場合に、1 からグループ数で指定した数まで表示されます。
ブロックの数値がスコアとなります。

下限、上限
固定分割点を指定したときに、グループの境界値が表示されます。下限については
ユーザが設定することができます。

スコア計算用重み
顧客をランク付けするにあたり、R、F、M のそれぞれに対して掛ける重みを設定しま
す。

結果列名の接尾辞
出力テーブルの列名の後に指定した接尾辞(文字列)がつきます。

出力結果

rValue
最後に購入したのは終了日から何日前かを表しています。取得件数に 2 以上を指定
した場合は、最新の購入日から順に取得件数分を出力します。

fValue
対象期間中の購入回数(行数)です。

mValue
対象期間中の購入総額です。

rScore、fScore、mScore
グループ分けされた結果のスコアになります。

Score
rScore、fScore、mScore に重みをかけて和をとった、顧客の優良さを示す指標にな
ります。
316
図 6-40 RFM 分析の出力テーブル例
6.3.6. ビジュアル集計
■ 内容
ビジュアル集計は入力データを適宜加工し、集計、クロス集計、散布図などのグラフを
簡単に作成できます。
新規のビジュアル集計アイコンにデータをつないで実行すると、適当な項目でグラフを作成し
ます。X 軸、Y 軸の項目選択や各種グラフ作成用のボタンを押し、グラフを切り替えることがで
きます。ウィンドウを閉じると閉じた時点で作成されていた集計データ(result)とその元データ
(data)を生成します。
317
① 画面構成
ビジュアル集計を起動すると以下のような画面が表示されます。
図 6-41
ビジュアル集計画面
グラフコントロール、入力データなどの各部分はビジュアル集計本体のウィンドウから
着脱できます。
318
画面の各部位について簡単にまとめます。
① 入力データ
ビジュアル集計に設定した入力データを確認します。
② XY 設定
X 軸、Y 軸それぞれに対し、固定領域(上部のリストボックス)と選択領域(下部のリストボ
ックス)の 2 つを用意しています。リストボックス上の項目のクリック、移動ボタンで操作
を行います。
319
③ グラフコントロール
グラフを操作します。
④ グラフツールバー
グラフの種類を選択します。
左端のチェックボックスのチェックを外すと、グラフの作成を停止します。XY 設定など
を最初に設定してからグラフを作成したい場合などに使用します。また、グラフの作成に
時間がかかる場合、右端の「グラフの作成を中断する」ボタンでグラフの作成を中断する
320
ことができます。
⑤ グラフ調整ツールバー
グラフの表示に関して調整を行います。
⑥ X 軸表記ツールバー
X 軸に表示された項目値の向きを設定します。
⑦ 配色ボタン、コンボボックス
グラフの色を設定します。
⑧ 配置ツールバー
グラフ表示の項目値の並びを設定します。
⑨ 補間ツールバー
項目値抜け(集計値が 0 件)がある場合の表示について設定を行います。
⑩ Top10 フィルター
項目値が多く、グラフへ表示した結果が見にくい場合などに表示する項目値を調整しま
す。Top10 以外にも、指定件数以上、項目値の文字列パターン、グラフの並びからのインデ
ックス指定なども行えます。
321
⑪ 右配置項目値
グラフを集計結果の多い順に並べたときでも例外的に右に配置したい項目値を設定しま
す。
⑫ 配置と補間の設定
配置と補間の設定を行います。
⑬ 集計データ(result)
集計結果を表示します。
322
⑭ XY データ(data)
集計結果の元となったデータを表示します。数値列を集計した場合は、ヒストグラム
化され、入力データとは異なる値になります。
⑮ グラフ
グラフを表示します。
⑯ メニュー
1) ファイル … グラフの保存、ビジュアル集計の終了などを行います。
2) オプション … ツールチップ(簡易ヘルプ)の表示を設定します。
3) パースペクティブ … 画面のレイアウトの設定を行います。
4) ウィンドウ … ウィンドウの表示、非表示の設定を行います。
323
■ ビジュアル集計の主な機能
ビジュアル集計ではグラフを見やすくするために、入力データの項目の加工を行う場合
があります。ツールバーの機能以外にも以下の特徴があります。
項目の加工
(ア) Index (行番号)項目の作成
(イ) 数値データのヒストグラム表示
(ウ) 数値と文字列から構成されるデータの数値化
(エ) 日付(時刻)データの分解
集計、グラフ作成
(オ) 単純集計
(カ) 組み合わせ集計
(キ) クロス集計
(ク) 散布図
(ケ) Index 分布 (散布図で X 軸に Index を設定したもの)
■ ビジュアル集計の起動と終了
入力データをアイコンにつなぎ、ビジュアル集計を実行します。起動後、入力データの
解析を行い、各項目の型を判定した後、適当なグラフを作成してユーザーの操作待ちとな
ります。入力データの解析中はビジュアル集計ウィンドウ下のステータスバーに解析の経
過が表示されます。最初に表示されるグラフは、全項目の中からある程度項目値の数が少
なく、表示しやすそうな項目を選択します。
ビジュアル集計の終了はウィンドウを閉じるか、
「ファイル」メニューの「終了」を選択
します。終了すると、その時点で作成されていた集計データ(result)とその元データ(data)を
生成します。
324
ビジュアル集計を再度実行したとき、入力データが前回と同じものであれば、入力デー
タの解析をスキップします。また、前回終了したときの画面構成で起動します。
■ ビジュアル集計内部でのデータ型
■ 入力データ
ビジュアル集計では入力データとは別に「Index」という項目を作成します。1 から始まり、
行数分の数値がセットされています。また、入力データの文字列型項目において、値が入
っていない場合(項目値が空文字のとき)、「空欄」という値がセットされます。
■ データ型
XY 設定の項目選択リストボックスで選択した項目については 「型」欄にデータ型が表示
されます。
図 6-42
データ型の表示
ビジュアル集計は起動時に入力データを解析し、各項目のデータ型を決定します。デー
タ型には以下の種類があります。
インデックス型
数値データで同じ数値が現れることがなく、単調に増加もしくは減少しているデータは
インデックス型になります。
文字列型
文字列データです。システムに予め設定されている項目値であれば、配置や補間の設定
が可能になります。システムに予め設定されていなくてもユーザーが配置や補間の設定を
325
行うこともできます。
日付型
「2000 年 1 月 1 日」や「2000/1/1 12:34:56」などのように日付や時刻データと判断できた
項目は日付型になります。日付型と判断されるとその年、月、日、など日付の部位毎に項
目が作成されます。年、月、日以外にも四半期、半期、曜日、休日などの項目も追加され
ます。
数値文字列型
「第 1 回」や「10 個」などのように数値の前後に文字が付き、すべてのデータで前後に
付いた文字が同じ場合、数値文字列型と認識されます。数値的に連続データと判断するた
め「第 5 回」だけ集計結果が 0 の場合でも自動的に「第 5 回」をグラフに表示することが
できます。また、グラフ上でも数値順に並びます。
数値型
小数を含む数値です。浮動小数として扱います。
整数型
整数値です。
ID 型
整数値ですが、データの桁がすべて揃っている場合に ID と表示します。
■ 日付データ
「2000 年 1 月 1 日」や「2000/1/1 12:34:56」などのように日付や時刻データと判断できた
項目は日付型になります。数値だけのデータでも特に以下の要件を滿たすと日付型と解釈
します。
(入力データ作成時に文字列型として設定しておく必要があります)
1. 文字列がすべて数値 4 桁で前半 2 桁が 01 から 12 まで、後半 2 桁が 01 から 31 ま
でとなっていて月、日が判断できる場合。... 0401 → 4 月 1 日
2. 文字列がすべて数値 6 桁で年、月、日が判断できる場合。 ... 090401 → 2009 年 4 月
1 日
3. 文字列がすべて数値 8 桁で年、月、日が判断できる場合。 ... 20090401 → 2009 年 4
月1日
326
4. 文字列がすべて数値 10 桁で年、月、日、時、分が判断できる場合。... 0904011234 →
2009 年 4 月 1 日 12 時 34 分
5. 文字列がすべて数値 12 桁で年、月、日、時、分が判断できる場合... 200904011234 →
2009 年 4 月 1 日 12 時 34 分
6. 文字列がすべて数値 14 桁で年、月、日、時、分、秒が判断できる場合。 ...
20090401123456 → 2009 年 4 月 1 日 12 時 34 分 56 秒
項目が日付型である場合、{項目名}.年や{項目名}.月のような項目名で、その年や月などの
項目を自動的に作成します。追加される項目は以下のようになります。ただし、日付デー
タから時分秒などに対応する箇所がないと判断した場合は{項目名}.時などが作成されませ
ん。
図 6-43 追加される項目
日付.数値
時刻データを OLE 時刻(浮動小数)にした値です。0 は集計した結果の最小値の日となり
ます。1 日が 1 です。時系列で散布図などを表示する際に使用できます。
日付.年
年の部分です。
327
日付.月
月の部分です。
日付.日
日の部分です。
日付.時
時の部分です。
日付.分
分の部分です。
日付.秒
秒の部分です。
日付.午前午後
午前、午後が項目値になります。
日付.曜日
曜日です。月、火、水、木、金、土、日。
日付.年通算週
第 01 週から第 53 週までの数値文字列型になります。
日付.月通算週
第 01 週から第 05 週までの数値文字列型になります。
日付.年通算日
1 日から 366 日までの数値文字列型になります。
日付.休日
平日か休日かになります。土日と日本の祝日は休日になります。
日付.休日名
祝日の場合は祝日名をセットします。
328
日付.月 10 日締め
10 日締めの場合の月をセットします。
日付.月 20 日締め
20 日締めの場合の月をセットします。
日付.初中下旬
初旬、中旬、下旬に分けます。
日付.四半期 1
1 月を開始月とする四半期に分けます。
日付.四半期 4
4 月を開始月とする四半期に分けます。
日付.年度 4
4 月を開始月とする年度をセットします。
日付.半期 1
1 月を開始月とする半期に分けます。
日付.半期 4
4 月を開始月とする半期に分けます。
(1) 単純集計
ここでは項目 1 つを指定した場合のグラフについて説明します。以降の説明では X 軸選
択リストボックス、X 軸固定リストボックスという呼び方を使用します。
XY 設定ウィンドウの X 軸選択リストボックス上で項目名をクリックすることで、その項
目名の集計を行うことができます。
グラフツールバーで棒グラフ、折れ線グラフ、円グラフ、Index 分布を選択することがで
きます。Index 分布は正確には集計ではありませんが、入力データの行の並びに何らかの意
味がある場合は簡単に分布を確認することができます。
棒グラフの場合はグラフ調整の「棒グラフを横にする」で横向きの棒グラフを作成する
こともできます。
329
項目が数値データもしくは数値文字列型の場合で項目数が多い(32 以上)の場合は自動的
に 5 分割程度のヒストグラム化を行い、グラフを作成します。
ヒストグラム化を行った場合、{項目名}.hist という名の項目名になります。
図 6-44
ヒストグラム化
ヒストグラム化を解除するにはグラフ調整の「数値データのヒストグラム化(X 軸)」ボタ
ンを押して解除します。X 軸選択リストボックスで選択した項目のみヒストグラム化の解
除を行うことができます。
■ 組み合わせ集計
例えば、日付.年と日付.月を組み合わせて「2008 年-10 月」などの項目を作成し、その集
計を取ることができます。
330
日付.年と日付.月から「日付.年-日付.月」というデータを作成するには以下のように操作
します。まず、X 軸選択リストボックス上で日付.年をクリックします。次に X 軸固定リス
トボックス横のチェックボックスがチェックされていることを確認し、X 軸選択リストボッ
クスのすぐ上にある上矢印ボタンを押します。この操作で日付.年を X 軸固定リストボック
スに移動することができます。
その後、X 軸選択リストボックスで日付.月をクリックします。これで「日付.年-日付.月」
の集計を行います。
図 6-45
上移動ボタンと組み合わせ集計
同様に「日付.年-日付.月-日付.日」などを作成する場合は再度上矢印ボタンを押して日付.
月を X 軸固定リストボックスに移動し、X 軸選択リストボックスで日付.日をクリックしま
す。
X 軸固定リストボックスに移動した項目を元に戻すには、X 軸固定リストボックスで元
に戻したい項目をクリックし、下矢印ボタンを押します。また、上下矢印ボタンを使って
項目を入れ替えることもできます。
X 軸固定リストボックスに入れた項目を X 軸選択リストボックスでチェックしている場
合は、X 軸固定リストボックスに入っていないものとして並びを設定します。
■ まとめ方の設定
331
例えば、項目 A と項目 B で「項目 A-項目 B」の集計を行ったとすると、グラフの X 軸の
並びは項目 A についてまとまりを形成します。これを項目 B についてまとまるように表示
を変えるには X 軸選択リストボックス上にある上下矢印ボタンを押す方法以外に、グラフ
調整の「選択項目でまとめる(X 軸)」ボタンを解除します。
■ クロス集計
Y 軸固定リストボックスの上にある「クロス集計」チェックボックスをチェックし、Y
軸選択リストボックスで項目を選択すると、クロス集計を行うことができます。バブルチ
ャートや散布図もグラフに出力できるようになります。
X 軸選択リストボックスと Y 軸選択リストボックスで同じ項目を選択しているときは単
純集計となります。
図 6-46
クロス集計
XY 設定ウィンドウ上の「XY 交換」ボタンを押すことで X 軸と Y 軸の項目を入れ替える
ことができます。(X 軸、Y 軸で選択された項目の型によっては同じグラフが表示されない
場合もあります)
332
■ クロス集計時の棒グラフ
クロス集計時の棒グラフは積層化された状態とそうでない状態を選択することができま
す。グラフ調整の「グラフの積層化(クロス)」を押し、ボタンを押した状態にするか解除し
た状態にします。また、積層化された割合表示にしたい場合は「グラフの積層化(割合)(クロ
ス)」ボタンを押した状態にします。
グラフを横棒グラフにするにはグラフ調整の「棒グラフを横にする」ボタンを押した状
態にします。
■ クロス集計時の組み合せ集計
クロス集計時も X 軸、Y 軸とも組み合せ集計を行うことができます。ただし、項目数が
多くなりすぎると、グラフを表示するのに時間がかかる場合があります。そのような場合
は Top 10 フィルターを作用させてグラフを見やすくすることができます。
■ バブルチャート
333
X 軸、Y 軸両方で選択された項目がある場合、グラフの「バブルチャート」を選択するこ
とでバブルチャートを作成することができます。
バブルチャートのバブルの半径はバブルのラベルに表示された集計数を反映したものに
なります。バブルのみを表示したい場合は、グラフ調整の「個数表示(棒グラフ、バブル
チャート)ボタンを解除すると集計数を表示しなくなります。
■ 散布図
X 軸、Y 軸両方で選択された項目があり、X 軸側が数値もしくは数値文字列型の項目の場
合、散布図を作成することができます。数値文字列型の項目値はグラフ上では数値部分し
か表示されません。
■ グラフ
以下のグラフを作成することができます。
① 棒グラフ
334
②
③
④
⑤
⑥
折れ線グラフ
円グラフ
バブルチャート
散布図
Index 分布
■ グラフ調整
単純集計やクロス集計でグラフ調整の操作方法について述べましたが、ここでまとめて
おきます。
 数値データのヒストグラム化(X 軸)
X 軸選択リストボックスで選択した項目が数値データの場合、ヒストグラム化の設定もし
くは解除を行います。X 軸選択リストボックス以外でグラフ表示するよう指定した項目につ
いては 32 個以上の項目値がある場合は必ずヒストグラム化されます。
Y 軸側に数値データを指定した場合は散布図などを除きヒストグラム化されます。
 グラフの積層化(クロス)
クロス集計で棒グラフか折れ線グラフを選択している場合、積層化の設定もしくは解除
を行います。
 グラフの積層化(割合)(クロス)
クロス集計で棒グラフか折れ線グラフを選択している場合、割合で積層化の設定もしく
は解除を行います。
 棒グラフを横にする
棒グラフを横にします。
 選択項目でまとめる(X 軸)
棒グラフ、折れ線グラフ、バブルチャートにおいて、X 軸側で複数項目を選択している場
335
合、項目値の並びを変更します。
 個数表示(棒グラフ、バブルチャート)
棒グラフ、バブルチャートにおいて、ラベル表示の設定もしくは解除を行います。
■ 表記(X 軸)
棒グラフ(横棒グラフを除く)、折れ線グラフ、バブルチャートにおいて X 軸の項目値表
記を設定します。ビジュアル集計は項目数、項目値の文字列の長さなどから必要に応じて X
軸表記を調整することがあります。
1) 横 ... 表記を横にします。
2) 縦 ... 表記を縦にします。
3) 斜め 45 度 ... 表記を斜め(尻上がり)にします。
4) 逆斜め 45 度 ... 表記を斜め(尻下がり)にします。
5) 斜め 30 度 ... 表記を斜め(尻上がり)にします。
6) 逆斜め 30 度 ... 表記を斜め(尻下がり)にします。
■ グラフの配色
グラフの色を設定します。単純集計の場合は左のボタン、円グラフやクロス集計など複
数の色を使う場合は右側のコンボボックスで設定します。
■ 配置
ビジュアル集計では「男性、女性」などの項目値を持つ項目の集計を行った場合、
「男性、
女性」の順に並んでいます。また、日付型の「曜日」の単純集計を行った場合も、月、火、
水、木、金、土、日と並んでいます。数値文字列型項目でも 1、2、3... と並びます。
これらの項目値は型が文字列の場合は、ビジュアル集計に予め設定されている配置の設
定とマッチしたため、うまく配置されるようになっています。また、項目が数値文字列型
336
の場合も数値と判断しているため、自然に数値の大小順に配置されます。
配置はユーザーが指定することもできますが、その方法は後述します。
配置ツールバーの各ボタンについて以下で説明します。
1) 自動整列
項目値がビジュアル集計に設定されているかユーザーが指定した配置情報とマッチした
場合にこのボタンが有効になります。自動整列を指定することで、設定された並びで表示
されます。数値データなど有効にならないものもあります。
2) 自動整列(逆)
自動整列を逆順で並べます。
3) 文字列(数値)順
文字列データの場合は文字列順、数値データの場合は数値順に並びます。
4) 文字列(数値)順(逆)
文字列(数値)順の逆順にします。
5) 多い順
集計値の多い順に並べます。
6) 少ない順
集計値の少ない順に並べます。
■ 組み合わせ項目の配置
組み合せ項目の配置は自動整列が有効な項目が組み合わせの中に存在する場合は自動整
列が有効になります。
■ 補間
337
件数が 0 件でも項目値を表示させたい場合に使用します。
例えば、ビジュアル集計内部では A B C などのアルファベット文字の前後に決まったパ
ターンの文字が付くデータしかない場合は、出現範囲内の存在しない項目値についても出
力するように設定されています。
こちらも後述の「配置と補間の設定」でユーザーが独自に設定することができます。
補間ツールバーの各ボタンについて以下で説明します。
1) なし
補間は行わず、入力データに存在するデータのみ表示します。
2) 出現項目内
338
出現項目内の抜けを補間してグラフを表示します。
3) 設定範囲
予め設定した項目値をすべて表示します。
4) 左埋め
予め設定した項目値の左側を埋めます。例えば、店舗 B、店舗 D、店舗 E というデータし
かない場合、左埋めを選択していれば 店舗 A も項目値に追加されます。
5) 右埋め
左埋めの逆です。
■ 組み合わせ項目の補間
組み合わせ項目の補間は「なし」になりますが、選択している各項目で設定されている
補間状態で組み合わせを作成します。
■ 配置と補間の設定
文字列型、数値文字列型の項目に対して配置と補間の設定を行うことができます。
図 6-47
配置と補間の設定
「配置と補間の設定」ボタンを押すと X 軸選択リストボックスで設定していた項目が選
択された状態で設定ダイアログが表示されます。
339
図 6-48
配置と補間の設定ダイアログ
■ 文字列の配置と補間の設定
例として Samples フォルダあるマーケットデータの「収入」という項目を表示してみます。
配置と補間の設定ダイアログにあるリストボックスで「収入」をクリックします。
項目が文字列型の場合、配置の設定を行うにはまず「配置の設定を行う」というチェッ
クボックスをチェックします。
(項目値が多いデータの場合はチェックが外れています)
例えば「7.5-15」という項目値を 2 番目に表示させたい場合、項目の並びを設定するテキ
ストボックスにコンマ区切りで、
「<7.5,7.5-15,...」と修正します。
直接編集する方法の他に、項目値をドラッグ&ドロップ方法もあります。
「7.5-15」と書か
れている場所へマウスを移動し、上か下にマウスをドラッグすると「7.5-15」を移動するこ
とができます。
340
図 6-49
項目値のドラッグ&ドロップ
さらに、移動させたい項目値を複数個領域選択してからドラッグすることにより、複数
の項目値を一度に移動することもできます。
並び替えボタンで適宜並び替えることもできます。ボタンの動作は以下のようになりま
す。テキストボックスで領域を選択していれば、その領域内で入れ換えを行います。
1) ソート ... 文字列とみて単純にソートします。
2) ソート(長さ順) ... 文字列とみてその長さでソートします。
3) ソート(多い順) ... 集計結果が多い順にソートします。
4) 反転 ... 順番を反転させます。
「補間の初期状態」で補間方法を設定します。
図 6-50
補間の初期状態
いずれかの設定項目を編集するとリストボックスの項目が赤く変わり、「更新」ボタンが
有効になります。設定内容で問題なければ「更新」ボタンを押します。
「更新」ボタンを押すと、自動整列指定欄に「ユーザー設定」と記載され、設定時刻が
セットされます。
違うデータを解析する際も設定した項目値を持つ場合は同じ設定で配置されるようにな
ります。
■ 数値文字列の配置と補間の設定
例として Samples フォルダにある「顧客データ」というデータの「年齢」という項目を
341
表示してみます。
「配置と補間の設定」ダイアログにあるリストボックスで「年齢」をクリ
ックします。
図 6-51 数値文字列型の補間
項目が数値文字列型の場合、数値の最大値、最小値を設定します。設定する最大値、最
小値の範囲は実在するデータの最大値、最小値の範囲をカバーする必要があります。
刻み幅欄は空欄にしておくと自動で判別します。
「補間の初期状態」で補間方法を設定します。
いずれかの設定項目を編集するとリストボックスの項目が赤く変わり、「更新」ボタンが
有効になります。設定内容で問題なければ「更新」ボタンを押します。
「更新」ボタンを押すと、自動整列指定欄に「ユーザー設定」と記載され、設定時刻が
セットされます。
違うデータを解析する際も設定した項目値を持つ場合は同じ設定で配置されるようにな
ります。
342
■ Top10 集計
項目数が多い場合は特にクロス集計でグラフに出力しても文字が重なるなどの原因で見
づらい場合や、グラフを出力するまでに非常に時間がかかる場合があります。Top10 集計機
能を使い表示する項目値を制限することができます(Index 分布、散布図以外)
。コンボボッ
クスの選択項目以外にも手入力でも入力できます。カンマ付きで設定した場合、該当しな
い項目値を「その他」としてまとめます。すでに「その他」という項目がある場合は元か
らあった「その他」とマージされます。
図 6-52 Top10 フィルター
例として Samples フォルダーの「顧客データ」を見てみます。X 軸として「学歴」と「年
齢」を選択し、Top10 フィルターで「Top10,」を選択します。上位 10 件とそれ以外を「そ
の他」としてまとめます。
343
■ 右配置項目値
集計結果が多い場合でも、意味をなさない項目値について右端に表示したい場合があり
ます。そのような項目値をコンマ区切りで記述することで右端に配置することができます。
組み合わせ項目においてもその項目の中で右端に配置されるようになります。
また、Top10 集計でも右配置項目値で設定した項目値を右端に配置した後で Top??で指定
した件数分の表示を行います。
344
6.4. モデリング
※VMStudio8.1 より、分類分析からモデリングに名称が変更されました。
分類分析とは、まず性質(クラスと表現する)が既知のデータから、クラスへの分類規
則(モデル)を抽出しておき、その次に、クラスが未知のデータに対してその規則を適用
して、クラスを識別する分析手法です。このとき、クラスを識別するために必要な変数(=
列)を説明変数といい、これに対してクラスが記述されている変数(=列)のことを目的
変数といいます。
目的変数が数値の場合、回帰分析と呼ばれ、独立変数(分類分析の場合の説明変数)から従
属変数(分類分析の場合の目的変数)を計算する式を算出し、その次に、未知のデータに対し
て式を適用し、独立変数の数値を算出する分析手法です。モデリングに含まれる多くのア
イコンでは分類分析と回帰分析の両方を扱うことができます。
モデリングは、大きく 2 つのステップで行います。
(1) 既知データの学習
クラスまたは数値が既にわかっている(教師値とも言う)データを用いてクラスへの
分類規則または独立変数への回帰式を把握し、モデルを作成します。モデルの作成はモ
デル作成アイコンにデータを入力することによって作成することが可能です。モデル作
成アイコンは、以下のものがあります。

HSMM(連続値)・HSMM(カテゴリ)

HSMM 予測(連続値)・HSMM 予測(カテゴリ)

HSMM シミュレーション(連続値)・HSMM シミュレーション(カテゴリ)

対話型モデル 学習・対話型モデル 予測・対話型モデル 教師値設定

Decision Tree

Tree & Random Forest

K-NN 分析

Neural Network

Radial Basis Function Network

Support Vector Machine

モデル統合

Naive Bayes

nuSVM

Support Ball Machine
345

Boosting

Bagging
作成したモデルは、保存することが可能です(「3.7 モデル」の項を参照してください)
。
(2) 未知データの予測
(1)で作成したモデルを用いて、クラスが未知のデータに対してクラスまたは数値を予
測します。詳しくは「6.4.8 予測」の項を参照してください。
(3) モデルの検証
モデルを構築する際の推定誤差を検証します。詳しくは「6.4.12 交差検証」の項を参照
してください。統計量フォルダには、この他にモデル作成の補助となる Feature
Selection アイコンがあります。
6.4.1. Decision Tree
多分岐決定木を作成します。与えられたデータに対して、ある基準のもとで最良の分割
変数と分割値をもとめ、木構造を作成します。説明変数と目的変数がカテゴリ値と連続値
の両方適用でき、欠損値にも対応します。分岐には次の基本アルゴリズムを採用していま
す。
1. 説明変数=カテゴリの場合(分類モデル)、
「1クラスを1分岐」の状
態から出発、分岐間合併後のケースを調べます。
2. 説明変数=連続値の場合(回帰モデル)、2分割から出発して、分割
数を増やして調べます。
目的変数が複数ある決定木を多目的変数決定木と呼びます。多目的変数決定木は、複数
の数値列を目的変数に指定することができ、指定した目的変数を同時予測する際に用いま
す。
また、分類モデルの場合は、各カテゴリの値を「クラス」と呼びます。必要なパラメー
タを入力した後、自動的に一括生成方法とユーザとの対話をしながら、木を成長させる方
法があります。パラメータ画面は、パラメータ設定画面、オプション設定画面、その他の
設定画面、木編集画面で構成されます。
■ パラメータ設定画面
346
図 6-53
Decision Tree パラメータ設定画面
347
図 6-54
・
カテゴリ変数を順序付きと指定
生成方法

対話画面での生成
木の編集画面で、ステップバイステップでツリーを成長させます。

一括自動生成
木の編集画面を経由しないで、自動的に一括生成します。
・
分岐方法
目的変数がカテゴリの場合(分類モデル)のみ有効。目的変数が連続変数の場合(回
帰モデル)は、目的変数の分散を使用します。

分岐停止条件
閾値を入力します。以下の 4 条件のうち 1 条件が満たされれば、分岐を停止しま
す。

節点最小データ数
節点に含まれるレコード数が全体の数の最小件数(整数値を指定)を指定します。
348
指定した件数未満のノードは作りません。また、節点に含まれるレコード数が全
体の数の最小割合で指定することも可能です(後ろに%を付けて指定)
。

最大分岐数(共通)
ノードの最大の分岐数を指定します。

節点の不純度
節点にクラス以外のレコード数が全体に占める割合。目的変数が連続値の場合、
分散を利用。分類モデルの場合、[0~1]の連続値を指定します。

高さ制限
木の最大の高さ(深さ)を指定します。
・ 欠損値パターン
欠損値と見なすパターン(値)を入力します。
・ 目的変数
列名リストから1つを選択します。
・ 説明変数
列名&タイプのシートから選択(「X」マーク)。カテゴリ変数は「順序付き」変数
に指定することができます。その「順序」は、文字列の辞書順となっています。
・ 最大分岐数
説明変数毎に最大分岐数を選択します。最大分岐数(共通)を利用することも可
能で、カテゴリ変数は「無制限」を選択することもできます。
■ オプション設定画面
349
図 6-55
Decision Tree オプション指定画面
・ 交差検証
作成された木モデルの誤判定率を計算します。「誤り削減剪定」にチェックを入れた場
合、テストブロック数と繰り返し回数の値を指定します。

テストブロック数(N)
学習データをランダムに N 個に分割します。分割されたブロックの N-1 個のデー
タを学習用データとし、1 個のブロックをテスト用データとして使用します。

繰り返し回数(R)
ブロック分け回数を指定することもできます。例えば、テストブロック数=3、
繰り返す回数=5 と指定した場合は、3*5=15 個の Tree が生成され、誤判別率が一
番小さいものが選ばれます。

誤り削減剪定
作成されたモデルに対して枝刈りを行うことによって誤判別率が減少するならば、
350
枝刈りされた木を採用します。この処理を分割されたブロックすべてに対して行
い、誤判別率が一番低いものを結果のモデルとします。
・ 剪定基準
複雑度係数
自動枝刈りを利用する場合、下記分岐メリット 本来の分岐基準+複雑度係数*木の葉
の数で木の分岐を再計算します。 分岐しない方のメリットが大きければ、枝刈りを行
います。
・ 重み付け
分類モデルの場合、クラス毎、または、学習データの行毎に、重みをつけます。あるク
ラスの重みを上げることによって生成されたモデルは、そのクラスに対する予測精度を
上げることができます(その代わりに、他のクラスに対する予測精度が低くなる可能性
があります)
。
351
■ その他画面
図 6-56
Decision Tree
その他指定画面(1 目的変数)
・ 分岐方法(その他)

分岐変数の繰り返し利用
一度分岐に使用された変数を、より深い節点での分岐に利用するかどうかを指定
します(注:S-PLUS の Tree と同じ条件です)。

全数値領域分岐
数値変数の分岐条件を、学習データに出てくる範囲(最小値から最
大値)までではなく、全領域(マイナス無限大からプラス無限大)
まで拡張するかどうかを指定します。
・ 回帰予測値選択
決定木の各ノードにおける目的変数の予測値を出力します。
352
 平均値
平均値を予測値として出力します
 分位点
データの値が小さいほうからどの位置にある値を、ノードの予測値にするかを指
定します。分位点は(0,1)の範囲で指定し、最小値が 0、中央値が 0.5、最大値が 1
となります。
・ 分岐点探索

分岐点候補数
変数を分岐させる候補となる値の数を指定します。0 を指定した場合には、自動的
に候補数が決定されます。
図 6-57
Decision Tree
その他指定画面(多目的変数)
353
多目的変数
図 6-57 のように目的変数を複数設定することもできます。目的変数を多目的変数指定に
した場合には、多目的変数に数値型の変数を 2 つ以上選ぶ必要があります。
・ 多目的回帰モデル距離計算
複数の目的変数があるため、各ノードにおけるデータのまとまりの評価には、回帰予測
値との各ノードに属するデータとの距離を計算する式の設定が必要になります。回帰予測
値は多目的変数決定木では平均値になります。予測値とデータとの距離の計算には Euclid、
Manhattan、Cosine と、ユーザが定義した外部 DLL を用いることができます。外部 DLL
を利用する場合には、以下の 2 つを指定します。
DLL 関数名

距離を定義した関数の名前を指定します。
DLL パス名

DLL のパスを指定します。
木編集画面
木編集画面は、
「Tree Image」
、
「Parameters」
、
「Message」と「Tree の表示画面」4つ
の部分で構成されます。
 Tree の表示画面 インタラクティブ的に木モデルを操作することが可能。
画面のスペースに制限があるので、木の全節点を表示する代わりに、現在「注目」し
ている節点から木のルートまでの全節点、注目節点の直接兄弟節点および直属子供節
点のみが表示されます。節点の上に、ダブルクリックすると、その節点が「注目」節
点となります。木に対する操作は、節点の右クリックメニューと節点以外のところの
右クリックメニューに現れる操作で選択可能です。分類モデルの場合、節点のクラス
により、異なった色で表示されます。
 Tree Image 木の全貌が表示されます。
・ 節点をクリックすると、節点の情報が下の「Message」ウィンドウに表示されま
す。
・ 節点をダブルクリックすると、右側の「Tree の表示画面」の「注目」節点となり
ます。
・
節点の右クリックメニューは、
「Tree の表示画面」の節点の右クリックメニュー
と同様です。
 Parameters 木を成長するために指定したパラメータが表示されます。
右クリックメニューを利用することによって、パラメータファイルの内容をコピー、
名前付け保存することが可能です。
354
 Message 木の成長過程、節点の情報、モデル情報などの表示場所
右クリックメニューを利用することによって、Message に対する操作が可能。木編集
画面の節点上で右クリックした場合と、節点の外で右クリックした場合で異なる命令
を与えることができます。
「Tree の表示画面」の節点上の右クリックメニュー
節点に対する操作はこちらから選択できます。
節点での右クリ
ックメニュー
355
節点以外での右ク
リックメニュー
図 6-58 Tree 画面での右クリックメニュー
 一段成長
ノードを分岐して、木を1レベル成長させます。
 全成長
分岐できなくなる(停止条件を満たす)まで、すべての葉ノードを分岐します。
 強制分岐
ユーザが分岐変数を選択します。詳しくは後述。
 剪定
中間ノードを葉ノードに変えます。
 高さ剪定
356
中間ノードと同一レベルにある全てノードを葉ノードに変えます。
 自動剪定
オプション画面で指定された木の複雑係数を利用して、木の再評価を行います。
 含まれるデータ表示
節点に含まれる学習データを表示します。
 分岐表示
節点を「注目」節点にし、その子供が存在すれば、表示します。
 オプション画面へ
オプションを入力する画面へ移動します。
■ 強制分岐
Tree を構成する際の分岐変数は、通常、情報量規準で評価して最も良い変数が選択さ
れますが、それ以外の変数を指定して分岐させることも可能です。
図 6-59
強制分岐変数選択画面
357
分岐変数選択画面で変数名をダブルクリックすると、選択された変数の分岐範囲が分
岐詳細指定画面に表示されます。ここに表示された条件はユーザが自由に書き換える
ことができるため、モデルの編集機能として利用することが可能です。分岐条件の記
述は、
「分岐変数、分岐数、分岐点、…、分岐点」という形式で、カンマ区切りで記述
します。カテゴリ変数の分岐条件は、2 重カンマ「,,」で指定します。

指定例

「X」
X という変数で強制分岐。分岐点はシステムに任せます。

「X,3」
X という変数で強制分岐。その最大分岐数は 3 とします。

「X,3,A, B,,C,D,,E」
X という変数で強制分岐。分岐は{A,B},{C,D},{E}となります。
(カテゴリ変数)

「Y,3,-inf,5.6,15.9,inf」
Y という変数で強制分岐。分岐は(-inf、5.6]、(5.6、15.9]、(15.9、inf)となり
ます。
(数値変数)
カテゴリ変数の分岐条件については、学習データに現れない値を指定することもできま
すが、その値が指定されている群に少なくとも1件以上の値が学習データに含まれてい
なければなりません。
「詳細情報(ノード)
」をクリックすると、分岐詳細指定画面に表
示されている分岐範囲が、現在のノードにおける選択変数の範囲になります。
・スクリプトによる強制分岐の指定
強制分岐は、スクリプトで Decision Tree を実行する場合にも実行できます。具体的に
は、プロセスアイコンのパラメータ指定の項目に「強制分岐(ノード ID)=*****」を
追加します。分岐条件の指定方法は GUI 上の方法と同じです。ただし、<決定木全生長
>という条件を指定すると、いままでできた Tree を全葉ノードに、
「全成長」をかける
ことが可能です。
358
--スクリプト例-sys_proc(1、table、?model、 ?result); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
ルールファイル=Yes
強制分岐 1=がく長、3、-inf、10.0、22.3、inf
強制分岐 2=分岐変数名、分岐数
##強制分岐 3=<決定木全生長>
....
-「Tree の表示画面」の節点以外のところからの右クリックメニュー
木全体に対する操作はこちらから選択できます。
 モデル表示
下図のような全て木の節点の情報が行毎に表示されます。
359
 集計情報
下記のように、
「Message」画面に、木モデルの情報およびクラス別の判定正解率
が表示されます。
 クラス構成
クラス構成を表示する・表示しないの選択(チェック)を行います。
 カラー設定
下図のような節点のカラーを選択するテーブルが表示されます。
■ Excel ファイルへ出力
下図のように、木のイメージを Microsoft の Excel シートに出力します。
360

印刷
Tree イメージを印刷します。

オプション項目へ
設定を変更します。

保存&閉じる
保存して終了します。
Tree の表示画面」の節点の表示情報の見方
【分類モデルの節点情報】
361
色でクラスの
割合を表示
節点の内容表
行
タイトル
内容
1
クラス
節点の判定クラスの名称
2~
目的変数の各 節点に含まれるそのクラスの割合.この内容を
クラス名
表示しないことも可能(右クリックメニュー→
クラス構成チェック)
下から4行
数(重み)
節点に含まれるレコード数.欠損値が存在する
場合、小数点以下の数値も有り得る
下から3行
Info
指定された分岐方法に対応する評価値
<……>
分岐に使用される分岐変数
分岐数
分岐される数
Leaf
終端ノード(それ以上分岐されない)
(Leaf 以外)
下から2行
(Leaf 以外)
下から1行
(Leaf 以外)
下から1行
(Leaf)
362
【回帰モデルの節点情報】
(1 目的変数)
行
タイトル
内容
1
クラス
節点に含まれるレコードの平均値
2
分散
節点に含まれるレコードの分散値
3
数(重み)
節点に含まれるレコード数.欠損値が存在する
場合、小数点以下の数値も有り得る
下から3行
Info
指定された分岐方法に対応する評価値
<……>
分岐に使用される分岐変数
分岐数
分岐される数
Leaf
終端ノード(それ以上分岐されない)
(Leaf 以外)
下から2行
(Leaf 以外)
下から1行
(Leaf 以外)
下から1行
(Leaf)
363
【回帰モデルの節点情報】
(多目的変数)
行
タイトル
内容
1
回帰値
節点に含まれるレコードの各目的変数の平均値
2
分散
節点に含まれるレコードの分散値
3
数(重み)
節点に含まれるレコード数.欠損値が存在する
場合、小数点以下の数値も有り得る
下から2行
<……>
分岐に使用される分岐変数
分岐数
分岐される数
Leaf
終端ノード(それ以上分岐されない)
(Leaf 以外)
下から1行
(Leaf 以外)
下から1行
(Leaf)
根ノード以外のノードの上にある()内の数値、カテゴリは、親ノードから分岐させる
際に用いる分岐変数の値の範囲、カテゴリ値を表しています。
364
決定木の結果
プロジェクトの処理フロー上、
「Decision Tree」のアイコンの結果は、次のようなテーブル
になります(列数が多いため 2 段で表示しています)。
テーブルの各列の意味は次のようになります。
列順
列名
内容
1
No.
ユニークな通し番号(ノードと1対1対応)
2
Level
Tree 階層(ルートから、このノードまでのノー
ド数)
3
Path
トップのルートからこのノードまで経由ノード
4
親 No.
直接親ノードの No.
5
GUI 番号
GUI 画面上表示されるノードの番号
6
クラス
目的変数=カテゴリの場合は、判定のクラス名
目的変数=連続値の場合は、判定数値
7
確率
目的変数=カテゴリの場合は、判定クラスの確率
目的変数=連続値の場合は、判定数値からの分
散
8
重み
ノードに含まれるレコード数。欠損値の場合は、
各ノードに按分するので、小数となることもあ
る
9
分岐基準値
分岐方法(3 種)で選択した分岐基準の値
10
条件
末端ノードの分岐条件
365
11
分岐変数・Leaf
末端ノードの場合は、"Leaf"と表示、そうでな
ければ、その分岐変数名を表示
12
分岐数
分岐されるノードの数
13
各クラスの確率
目的変数=カテゴリの場合のみ、表示される
最右列
TreeNode.Cond.
親から末端ノードまでの全分岐条件
Frm.Root.N
(N は整数)
注意:欠損の取り扱いについて
欠損パターンで指定した値を含む列が分岐変数として選ばれた場合、まず、その変数が
欠損でないデータのみで決定木は分岐します。欠損に該当するデータは、分岐したノー
ドの数(重み)に比例して重みを配分するようにして次の分岐に進みます。
決定木のモデルの出力
Decision Tree のモデルをモデルファイルとして出力することが可能です。プロジェクト
ボードを右クリック → 結果の保存 → 判別モデル(or 判別モデルアイコン) と選択する
と、「判別モデル」を選択した場合は外部に、「判別モデルアイコン作成」を選択した場合
はモデルアイコンとして出力することが可能です。出力したモデルファイルは、出力した
Decision Tree のアイコンとは切り離して管理することが可能となり、モデルアイコンから
「予測」アイコンに矢印をつなぐことで予測に利用することができます。
366
決定木のルールの出力
処理フロー上の「Decision Tree」を右クリックメニューで、決定木のルールを出力する
ことができます。出力に、VAP 上で扱うデータ形式(リスト形式)と、対応するプログラ
ム言語(C++)のソースの形式が可能です。C++のソースで出力された.rul ファイルは、C++
の *.h ファイルと *.cpp に分割することで、
ユーザプログラムに取り込むことができます。
具 体 的 な 作 成 方 法 は 、 VAP ル ー ト フ ォ ル ダ ¥Samples¥Visual Mining
Studio¥RulesFromTree¥32(または 64)の下にある readme.txt ファイルを参照して下さい。
367
スクリプトによるルールテーブルの取得
Decision Tree をスクリプトから実行する場合、パラメータオプションの「ルールファイ
ル=No」を Yes に変更すると、sys_proc() 関数の第 3 の出力としてルールテーブルを得る
ことができます。次のスクリプトでは、table を学習データとし、出力として model(モ
デル)
、result(決定木の結果)、rule(ルールテーブル) が得られます。
-sys_proc(1, table, ?model, ?result, ?rule); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
ルールファイル=Yes
....
--
分岐候補の出力
Tree 分岐の候補となる変数を出力することができます。スクリプトから Decision Tree
の機能を呼び出すとき、次の図のように「分岐候補出力ファイル」というパラメータを追
加します。指定する値にはファイルパスを指定します。
368
結果ファイルには、ノードごとの分岐候補が出力されます。
スクリプトによる 説明変数の重要度 の取得
Decision Tree をスクリプトから実行する場合、パラメータオプションの「変数重要度フ
ァイル=No」を Yes に変更すると、sys_proc() 関数の第 3 の出力として説明変数の重要度
を得ることができます。
重要度の使用方法の一つとして、変数選択が挙げられます。学習データから復元抽出で N
369
個のデータを生成し、各データから生成された Decision Tree モデルの重要度の平均値を
比較します。
重要度の算出方法は、目的変数がカテゴリの場合(分類モデル)と、連続変数の場合(回
帰モデル)で次のように異なります。
1.
分類モデル
各変数の重要度 f (v) 及び 各目的変数のクラスへの「貢献度 f (v, c) 」 を算出します。
D
v
学習データ
Node
決定木の全非 Leaf ノード集合
n  Node
class (n)
決定木の非 Leaf ノード
c
sp(n, v)
gain(n, v)
目的変数のクラス
説明変数
ノード n が分類されるクラス
ノード n が変数 v で分岐した子ノードの集合
分岐前と分岐後の情報量改善度合
f (v)   f (v, c)
c
f (v, c) 
2.
1
D


  m I (class (m)  c) gain (n, v) 


nNode msp ( n ,v )


回帰モデル
各変数の重要度 f (v) を算出します。
D
v
学習データ
Node
決定木の全非 Leaf ノード集合
n  Node
gain(n, v)
決定木の非 Leaf ノード
f (v ) 
説明変数
1
D
分岐前と分岐後の情報量改善度合(分散の差)
 n gain(n, v)
nNode
次のスクリプトでは、table を学習データとし、出力として model(モデル)
、result(決
定木の結果)、rivTable(変数重要度) が得られます。
-sys_proc(1, table, ?model, ?result, ?rivTable); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
370
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
変数重要度ファイル=Yes
....
--
上記結果は分類モデルの出力例で、説明変数(VariableName)に対する各変数の重要度
(Importance)と各目的変数のクラスへの貢献度(Importance.カテゴリ名) が出力されてい
ます。
決定木の印刷
決定木の印刷時には次の設定が可能です。

印刷親ノードを指定

線の太さ

文字の大きさ

ノードの印刷方法(1 行印刷、2 行印刷)
371
図 6-60
印刷設定画面を表示したところ
印刷親ノード設定:
ノードをクリックすることで親ノードを指定することができます。親ノードを指定する
と印刷時に親ノード以下の木構造を印刷することになります。親ノードを指定しない場合
は全木構造を印刷します。選択されたノードは水色に変化します。
線の太さ設定:
印刷時の線の太さを設定することができます。決定木の目的変数がカテゴリの場合は着
目する要素を指定することで、子ノードの線の太さを、子ノードの着目要素が含まれる割
合の大きさによって太くすることができます。目的変数が数値の場合には線の太さは一様
に変化します。
文字の大きさ:
文字の大きさを指定することで印刷時の文字の大きさを変えることができます。最大 15
まで大きくすることができます。
372
ノードの印刷方法(1 行印刷、2 行印刷):
ノードを印刷する際の印刷方法を指定します。

シングルライン

各ノードの情報が 1 行で印刷されます。

“枠を書く”にチェックを入れることで印刷時に四角の枠を書きます。
図 6-61

シングルライン印刷(左:枠なし
右:枠あり)
ダブルライン

各ノードの情報が 2 行で印刷されます。
図 6-62
ダブルライン印刷
セレクト画面:
セレクト画面ボタンを押すことで、木構造が全画面表示にされ、ノードを選択すること
ができます。
プレビュー画面:
プレビュー画面ボタンを押すことで、印刷プレビュー画面が表示されます。
6.4.2. k-NN 分析
k-近傍法を用いて回帰分析、判別分析を行い、予測の為のモデルを作成します。回帰分析
373
ではデータの周りの k 個のデータを調べ、平均化を行います。判別分析では、データの周
りの k 個のクラスを調べ、その中で数が最大となるクラスへ分類します。
図 6-63
k-NN 分析パラメータ設定画面
□設定項目
◇説明変数
k-NN 分析の対象となる列名を指定します。
◇目的変数
教師データとなる列を指定します。
◇距離関数
データ同士の距離を計算する方法を以下の中から指定します。
Manhattan、Euclid
◇k 値
探索する近傍にあるデータの個数を指定します。
◇重み付け
重みを付ける方法を以下の中から選択します。
デフォルト:重みを付けない。
列指定:レコード毎に重みを付ける列を指定する。
クラス指定:クラス毎に重みを付ける。
□結果
k-NN 分析の結果は以下の通りです。
374
図 6-64
k-NN 分析結果ファイル
種類は教師値、Versicolor、Virginica、Setosa は近傍データのそれぞれのクラスの割合、
種類.予測は出力結果から識別されるクラス、種類.判定結果は教師値と識別したクラスとの
評価結果です。
6.4.3. Neural Network
Neural Network では、階層型の Neural Network を用いて教師付きの学習を行い、回帰
分析、分類分析を行い、予測の為のモデルを作成します。教師値が数値の場合は回帰分析
を、教師値が数値以外の場合には分類分析を行います。
375
図 6-65 Neural Network パラメータ設定画面
376
□設定項目
◇ 説明変数
Network の入力列を指定します。
◇ 目的変数
教師データとなる列を指定します。
◇ 目的関数
出力層の activation function と目的関数の形を以下の中から選択します。
・ Linear-Sum of Square
・ Sigmoid-Sum of Square
・ Sigmoid-Binomial
・ Softmax-Binomial
・ Softmax-Multinomial
◇ 隠れ層のユニット数
隠れ層のユニット数を指定します。0 にすると二層の Neural Network になります。
◇ Weight Decay
最小化する目的関数に結合荷重の 2 乗の項を追加するパラメータです。
◇ 繰り返し最大数
Network の学習の繰り返し最大数を指定します。
◇ 乱数の初期値
乱数の初期値を以下から選択します。
・ 自動 : 乱数の初期値を自動で設定します。
・ 手動 : 乱数の初期値を手動で設定します。
◇ 重み付け
重みを付ける方法を以下の中から選択します。
・ デフォルト:重みを付けない。
・ 列指定:レコード毎に重みを付ける列を指定する。
・ クラス指定:クラス毎に重みを付ける。
377
□結果
カテゴリ列を出力列にしたときの結果ファイルの内容は以下の通りです。
図 6-66 Neural Network 結果ファイル(目的変数がカテゴリ列の場合)
種類は教師値、Versicolor、Virginica、Setosa はそれぞれのクラスへの Network の出力
値、種類.予測は出力結果から識別されるクラス、種類.判定結果は教師値と識別したクラス
との評価結果です。
数値列を目的変数列に設定したときは、その列と予測結果の 2 列からなるテーブルが出
力されます。
378
図 6-67 Neural Network 結果ファイル(目的変数が数値列の場合)
□モデル出力
実行後のアイコンを右クリックし、メニューから「結果の保存」-「判別モデル」を選択して
保存すると、vModel(VAP にドラッグ&ドロップで取り込み可能なモデルファイル)の他に txt
ファイルが出力されます。この txt ファイルで Neural Network モデルのパラメータを確認す
ることができます。
●txt ファイルの読み方
Network が実行時の設定を表し、Node X が作成された Neural Network の各ノードの情報
を表します。ノード情報は入力層、中間層、出力層の順に表現される(つまり、入力 Unit 数の次
の番号からが中間層のノードです)。
中間層、出力層のノード情報の「結合加重 X」が「Node X」に対する係数です。
「バイアス」は
定数項を表します。
6.4.4. Radial Basis Function Network
Radial Basis Function Network を用いて、回帰分析、分類分析を行い、予測の為のモデ
379
ルを作成します。Radial Basis Function Network は入力層、隠れ層、出力層の 3 層からな
る階層型の Neural Network で、隠れ層の activation function が radial function になって
いるものです。ここでは、radial function として、ガウス関数を使用しています。
380
図 6-68 Radial Basis Function Network
パラメータ設定画面
□設定項目
◇ 説明変数
Network の入力列を指定します。数値列のみ可能です。
◇ 目的変数
教師データとなる列を指定します。
◇ 目的関数
出力層の activation function と目的関数の形を、以下の中から選択します
・Linear-Sum of Square
・Sigmoid-Sum of Square
・Sigmoid-Binomial
・Softmax-Binomial
・Softmax-Multinomial
◇ Weight Decay
最小化する目的関数に結合荷重の2乗の項を追加するパラメータです
◇ 係数
クラスタリングを行う時のクラスタの大きさをコントロールします。
◇ 繰り返し最大数
381
Network の学習の繰り返しの最大数を指定します。
◇ 乱数の初期値
乱数の初期値を以下から選択します。
・自動 : 乱数の初期値を自動で設定します。
・手動 : 乱数の初期値を手動で設定します。
◇ 重み付け
重みを付ける方法を以下の中から選択します。
・ デフォルト:重みを付けない。
・ 列指定:レコード毎に重みを付ける列を指定する。
・ クラス指定:クラス毎に重みを付ける。
382
□結果
カテゴリ列を目的変数列にした時の結果ファイルの内容は以下の通りです。
図 6-69 Radial Basis Function Network 結果ファイル(目的変数がカテゴリ列の場合)
種類は教師値、Versicolor、Virginica、Setosa はそれぞれのクラスへの Network の出力
値、種類.予測は出力結果から識別されるクラス、種類.判定結果は教師値と識別したクラス
との評価結果です。
数値列を目的変数列に設定したときは、その列と予測結果の 2 列からなるテーブルが出
力されます。
383
図 6-70 Radial Basis Function Network 結果ファイル(目的変数が数値列の場合)
6.4.5. Support Vector Machine
Support Vector Machine を用いて教師付きの学習を行い、目的変数がカテゴリの場合は
判別分析を、数値の場合は回帰分析を行います。判別分析では、多群判別も可能です。
Support Vector Machine ではデータを多次元空間内の点とみなし、判別分析ではその中で
データ集合を2分割する超平面を、回帰分析ではある幅の中にデータが含まれるような超
平面を求めます。複雑な分離を行う場合は、別の特徴空間(Feature Space)へ非線型な写
像をし、その空間で超平面による分離を行います。
384
図 6-71
Support Vector Machine のパラメータ設定画面
385
□設定項目
◇ 入力列
Support Vector Machine の説明変数を指定します。
◇ 目的変数
教師値となるデータ列を指定します。この列は 2 値のカテゴリ列もしくは数値のみ
選択可能です。
◇ カーネル関数
多次元 Feature Space での Kernel 関数を指定します。Kernel 関数は以下の中から
指定します。
・
Linear
・
Gaussian
・
Polynomial
・
Sigmoid
◇ カーネル関数のパラメータ
カーネル関数のパラメータを指定します。
・
Linear の場合は、指定なし
・
Gaussian の場合は、分散σ2
・
Polynomial の場合は、多項式の次数 d
・
Sigmoid の場合は、Threshold θ
◇ Slack 変数の係数
判別が分離可能でない場合の制約条件をゆるめる度合いを指定します。
◇ 回帰分析の精度
回帰分析を行う時に、その幅の中にデータが入って欲しい値を指定します。
□結果
結果ファイルは以下の通りです。
386
図 6-72
Support Vector Machine 結果ファイル
クラスは教師値、クラス.予測は Support Vector Machine が予測したクラス、クラス.判
定結果は教師値と予測値の評価結果、SVM 出力は Support Vector Machine の出力です(多
群判別の場合は、組み合わせた複数の SVM の結果を出力します)。
6.4.6. nuSVM
Support Vector Machine を用いて分類分析を行います。目的変数がカテゴリ変数の場合
には判別分析を、数値変数の場合には回帰分析を行います。判別分析では、データを多次
元空間内の点とみなしたときに、データ集合を二つに分ける超平面を求めます。回帰分析
では、データを多次元空間内の点とみなした時に、データの分布が偏差εに入るような超
平面を求めます。この超平面は Support Vector と呼ばれるデータ点により構成されます。
これらの分析では、超平面との距離が最小になるデータ点との距離(マージンと呼ぶ)を最大
化するようにパラメータを最適化します。超平面(線形モデル)による分析が適切ではない場
合、非線型写像により別の空間(Feature Space)へ写像し、その空間内での超平面による分
析を行います。これは元の空間での超曲面(非線型モデル)による分析になっています。超平
面や超曲面によりデータの分離が可能ではない場合(データ集合のマージンが正にならない
場合)、Slack 変数を導入し制約条件をゆるめて解きます。判別問題を解く場合、nuSVM で
は Slack の係数ではなくパラメータνを指定する点が通常の Support Vector Machine と異
なる点です。また、回帰分析を行う場合、nuSVM (nuSVR)ではεではなくパラメータνを
指定します。Support Vector Machine での判別分析は、そのアルゴリズム上、2 群判別を
387
行うものですが、多群判別も行えるように拡張してあります。
図 6-73
nuSVM のパラメータ設定画面
388
□設定項目
項目
内容
目的変数
教師値
説明変数
モデル作成の変数
カーネル関数
Feature Space での内積の定義。以下の中から選択。
linear
gaussian
polynomial
sigmoid
カーネル関数のパラメータ
カーネル関数のパラメータ
linear
なし
gaussian
分散σ2
polynomial 多項式の次数 d
sigmoid
閾値θ
ν値
パラメータ
Slack 変数の係数
Slack 変数の係数
重み付け
学習時のデータの重み付け方法を指定
デフォルト 重みをつけない
列指定
重み列を指定
クラス指定 クラス毎の重みを指定
389
□結果
結果ファイルは以下の通りです。
図 6-74 nuSVM 結果ファイル(目的変数がカテゴリ値の場合)
クラスは教師値、クラス.予測は nuSVM が予測したクラス、クラス.判定結果は教師
値と予測値の評価結果(True or False)、SVM 出力は nuSVM の出力です(多群判別の場
合は、組み合わせた複数の nuSVM の結果を出力します)
目的変数が数値列の場合には、指定した列と予測結果の 2 列が出力されます。
6.4.7. Support Ball Machine
クラスタリングによるデータ圧縮と Support Vector Machine を用いて大規模データに対
して分類分析を行います。判別分析のみを行ない、回帰分析には対応していません。通常
の Support Vector Machine では、データを多次元空間内の点とみなし、データ集合を二つ
に分ける超平面を求めます。その際、超平面との距離が最小になるデータ点との距離(マー
ジンと呼ぶ)を最大化するようにパラメータを最適化します。クラスタリングによりまとめ
られたデータは位置と大きさという情報を持ちます。そのため Support Ball Machine では、
位置のみならずサイズの情報も用いて解きます。
390
図 6-75
Support Ball Machine のパラメータ設定画面
391
□設定項目
項目
内容
目的変数
教師値
説明変数
モデル作成の変数
圧縮オプション
データの圧縮率
距離計算方法
クラスタリングの際の距離の計算方法を以下の中から
選択します。
Manhattan
Euclid
Intra Cluster
Inter Cluster
Valiance Increase
規格化
クラスタリングの際に規格化を行なうかどうか
カーネル関数
Feature Space での内積の定義。以下の中から選択しま
す。
linear
gaussian
カーネル関数のパラメータ
カーネル関数のパラメータです。利用するカーネル関数
によって、以下のように意味が変わります。
Slack 変数の係数
linear
なし
gaussian
σ2
Slack 変数の係数
392
□結果
結果ファイルは以下の通りです。
図 6-76
Support Ball Machine 結果ファイル result
図 6-77
Support Ball Machine 結果ファイル squash
393
Support Ball Machine の出力は result と squash の 2 つです。result は圧縮後のデータ
を用いて SVM で学習、予測した結果です。pick は目的変数を表し、pick.予測はモデルが
予測したクラス、pick.判定結果は判定結果を表します。SVM.出力は SVM の出力を表しま
す。squash は圧縮後のデータです。pick は目的変数。N はそのクラスのデータ数、
income.<7.5,…は説明変数を表します。
6.4.8. 予測
モデル作成アイコン(Neural Network、Radial Basis Function Network、Decision Tree、
k-NN 分析、Support Vector Machine、nuSVM、Support Ball Machine、Naive Bayes、
モデル統合)で作成したモデルを用いて、予測・検証・評価を行います。
図 6-78
予測パラメータ入力画面
予測アイコンには、次の 2 つのデータを入力します。

モデル

予測(検証)用データ
モデルは、モデル作成アイコンの出力の1つです。下図のようにモデル作成アイコン(図
では Decision Tree)から予測アイコンに矢印線をつなぐと、自動的にモデルが入力として
394
選択されます。ここでは予測(検証)用データとして、モデル作成に用いたものと同じデ
ータを使用しています。
図 6-79
予測使用例
「モデル」の表示内容


学習方法
入力したモデルの種類(学習アルゴリズム名)が表示されます。
タイプ
入力したモデルが判別分析モデルか、回帰分析モデルかが表示されます。

目的変数
目的変数となる列名が表示されます。
設定項目

処理選択
予測を行うか、検証を行うか選択します。 予測アイコンは、予測(検証)用データに
対して、モデル作成のときに用いたデータと同一の名前を持つ列を、同じ列として取
り扱います。並び順は関係ありません。

予測
入力データの説明変数から目的変数を予測し、結果のみを出力します。

検証
「予測」の出力に加えて、入力データから予測される結果を、実際の値と比較し
た検証結果、精度データ(recall、precision)を出力します。主に、モデルの予測
性能を評価するときに使います。

評価
「検証」に加えて評価図(Cumulative 図、Lift 図、ROC 図)用のデータを作成しま
す。但し、回帰分析、及び、Support Vector Machine、nuSVM、Support Ball
Machine では評価図を出力することはできません。
395

対象データも出力
チェックを入れると、予測対象データの内容も同時に出力します。
モデルが Decision Tree の場合
Decision Tree では予測するデータに対応するノードがない場合に、どのような予測結果
を出力するかを次のうちから1つ選択し、Tree の欠損対処方法の欄から選びます。

判定不能
Tree.NodeNo は-1 となり、予測値は、判別分析の場合空白に、回帰分析の場合 0 にな
ります。

中間ノードでの予測
木のルートから順に辿り、予測不能になった時点でのノードの値を予測値とします。

子ノードによる予測
木のルートから順に辿り、予測不能になった時点でのノード以下にあるデータにマッ
チするすべてのリーフを探索し、リーフの値(判別の場合は確率、回帰の場合はリー
フの平均値)の重み付き平均値を予測値とします。
計算例
サンプルデータとして「菖蒲」を用います。
396
このデータに対して、Decision Tree でモデルを作成して、そのモデルを用いて予測ア
イコンで目的変数を予測することを考えます。
まず、Decision Tree でモデルを作成します。目的変数を「種類」とします。つまり、菖
蒲の数値的データから、菖蒲の種類を判別するモデルを作成します。
モデルを作成したのと同じデータで「種類」を予測してみます。予測アイコンを実行し
てパラメータを設定します。まず処理選択で予測を選択し、対象データも出力のチェック
397
をはずして実行します。
予測アイコンの出力は図のようになります。
(Decision Tree の場合)
各種分類モデルによって出力されるパラメータが異なります。
#Decision Tree の場合、次の 3 列が追加されます。

Tree.NodeNo:Decision Tree の分岐 Node の ID 番号

Node.重み:予測の Tree ノードの重み(欠損処理後、重み指定後、レコード件数
398
など)

Node.全体占める割合:そのノードの重みが全体に占める割合
処理選択で検証を選んだ場合は、予測結果、および正解判定が出力されます。
集計アイコンを用いて判定結果をカウントすれば、モデルの判定結果の概要を知ること
ができます。
評価の出力
評価を出力するには、予測アイコンの後ろにデータ&グラフビューアイコンをつなげ、予
測アイコンの処理を評価として実行します。
399
この後、データ&グラフビューアイコンで、折れ線グラフなどを用いて評価結果 cumulative
をプロットします。
ファイル分割を用いたモデル検証
予測アイコンの計算例では、学習用と検証用のデータは同じものを用いましたが、モデ
ルの汎化性能を正しく検証するためには、学習に用いたデータとは別に、検証に用いるデ
ータを用意する必要があります。データ分割を行えば、1 つのデータから学習用データと検
証用データを作成でき、それぞれのデータが重複しないように学習・検証を行うことが可
能です。
400
このような検証は、ファイル分割アイコンを用いて行うことができます。まず、下図の
ように入力データをファイル分割アイコンに入れ、その出力をモデル作成アイコン(図で
は Decision Tree)と、予測アイコンにそれぞれ与えます。
ファイル分割アイコンは、出力が 2 つあるので、決定木アイコンへの入力が定まりませ
ん。また、予測アイコンへ入力可能なデータは 1 つだけですので、予測アイコンへの入力
も定まりません。入力マッチング変更(アイコンの右クリックメニューから行う)で次の
ように指定してモデル作成、検証を行ってください。
 「学習用データ」をモデル作成アイコンに入力
 「検証用データ」と Decision Tree の出力(モデル)を予測アイコンに入力
6.4.9. ルールベース予測
ルールベース予測は、ルールテーブルを用いて予測・検証・評価を行います。ルールテー
ブルはユーザが自由に編集できるため、モデル構築アルゴリズムとは無関係に、ユーザの
主観などを予測に取り入れることができます。また、Decision Tree と同様にモデルの可視
性も高いという特徴があります。
ルールベース予測アイコンには、次の 2 つのデータを入力します。

ルールテーブル
401

予測(検証)用データ
入力ルールテーブルの形式は以下のようなものを用います。

Rule No:ルール番号

列名:列の名前

パターン:カテゴリ属性の場合のパターン

数値.From:数値属性の場合の範囲

数値.To:数値属性の場合の範囲

結論:結論の値

各種指標(アソシエーションルールの場合はサポート・信頼度など)
このようなテーブルを生成するには、Decision Tree やアソシエーション分析の結果に対し、
transform_assoc_rule( ) や transform_tree_rule( ) といったスクリプト関数を用い
ます。これらの関数の詳細はスクリプトの関数のヘルプを参照してください。
402
図 6-80
ルールベース予測 パラメータ設定画面
設定項目

処理選択
予測・検証・評価のうち、どれを行うかを選択します。

予測
入力データの説明変数から目的変数を予測し、結果のみを出力します。

検証
「予測」の出力に加えて、入力データから予測される結果を、実際の値と比較し
た検証結果、精度データ(recall、precision)を出力します。主に、モデルの予測
性能を評価するときに使います。

評価
「検証」に加えて評価図(Cumulative、Lift、ROC)用のデータを作成します。

対象データも出力
予測対象データの内容も同時に出力します。

判別関数
予測値を判別する方法を指定します。最大値を選択した場合は信頼度の値が最も高い
ルール、信頼度が同じ場合にはサポートの値の大きいルール、信頼度、サポート共に
403
同じ場合はルールの長さの短いルールを採用し、その信頼度を予測値とします。平均
ではサポートの重みを考慮して予測を行います。
予測結果の出力は次のようになります。
図 6-81
ルールベース予測実行結果
6.4.10. モデル統合
モデル統合アイコンは図のように、複数の単純学習モデル(weak-learner)を「投票」
により、一つのモデルに統合することによりモデルの汎化能力の高いモデルを作成する手
法です。
図 6-82
モデル統合の概念
各モデルの投票重み(図のα1、 α2、…、αn)をモデル統合アイコンで決定し、N 個の
モデルを統合したモデルを作成することができます。
404
使用例
図 6-83
モデル統合の利用例
モデル統合アイコンを使用するには、複数個のモデルと、それらのモデルの重みを決定
するための学習データを入力します。学習データは、モデル作成に用いたデータと同じデ
ータを使用しても構いません。
設定項目
判別モデルの場合
405

LP 最適化
線形計画法を用いて、最適なモデルの組み合わせ方を高速に探索します。択一、
手動で行う統合よりも汎化性能に優れています。(線形計画法によるモデル重み決
定法の詳細については、技術資料を参照してください)

Slack 係数
過剰学習を防ぐため、学習データへの一致条件を緩和させる係数です。
初期値は 0 です。この場合、緩和を行いません。

予測精度係数
学習データの重みを指定します。行ごと、または目的変数のクラスごとに指
定可能です。
3. デフォルト
全クラス、全行に対して重要性を均等に割り付けます。
406
4. 列指定
各行の重みを持つ数値列を指定します。「下限側」により、学習
データに含まれる数値列を選択することができます。
5. クラス指定
目的変数のクラスごとに、重みを指定します。例えば、
「Setosa」
の重みを他のクラスの重みより高く設定することにより、クラス
「Setosa」に対する予測精度を上げることができます。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。

択一
複数モデルから予測精度が最良のものを1つだけ選択します。

予測精度係数
「LP 最適化」の場合と同じ意味を持ちます。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。

手動
各モデルの重みを直接入力します。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。
回帰モデルの場合
407

LP 最適化
線形計画法を用いて、各モデルの重みを決定します。(線形計画法によるモデル重み
決定方法については、技術資料を参照して下さい)

Slack 係数
過剰学習を防ぐため、学習データへの一致条件を緩和させる係数です。
初期値は 0 です。この場合、緩和を行いません。

予測精度係数
学習データの各行の重みをもった数値列を指定します。

デフォルト
各行の重みを均等に割り付けます。

列指定
各行の重みを持つ数値列を指定します。
「下限側」
「上限側」は、それぞれ次の意味を持ちます。
408
下限側

予測値 > 教師値の場合のペナルティを表すデータの数値列名
上限側

予測値 < 教師値の場合のペナルティを表すデータの数値列名

クラス指定
目的変数のクラスごとに、重みを指定します。例えば、「Setosa」の重みを他のク
ラスの重みより高く設定することにより、クラス「Setosa」に対する予測精度を上
げることができます。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。

択一
複数モデルから予測精度が最良のものを選択します。

選択基準
モデルの選択方法を選びます。

差の二乗和
データの各行の予測値と教師値の差の 2 乗和が、最小となるモデルを選択し
ます。

差の絶対値
データの各行の予測値と教師値の差の絶対値の最大値が、最小となるような
モデルを選択します。

予測精度係数
学習データの各行の重みをもった数値列を指定します。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。

手動
各モデルの重みを直接入力します。

各モデルの予測結果を出力
各モデルの重みと同時に、モデルの予測結果を出力します。

モジュールのループを用いたモデル統合
同一の学習アルゴリズムに対して、違うデータをリサンプリングして多数のモデル作成
し、統合するには、モジュールを利用すると便利です。モジュールのループ処理では、各
ループ処理それぞれの出力を累積して出力することが可能ですが(4.5 モジュール 参照)、
学習モデルをループの出力にすると、モデルを累積させて出力することができ、それらの
409
モデルを統合することが可能です。
使用例
次のようなデータ「菖蒲」に対して、モジュールを用いたモデル統合を行います。目的
変数は「種類」として、残り4列(がく長、がく幅、花びら長、花びら幅)を説明変数と
する判別モデルを Neural Network で作成し、このモデルを 10 個結合します。
図 6-84
学習するデータ「菖蒲」
作成するプロジェクトを概観すると、次のようになります。メインのプロジェクト(プ
ロジェクトの左側)は「モデル作成」というモジュールを内部に持っています。モデル作
成の内部(プロジェクトの右側)では、外部からの入力を受け、Neural Network で学習を
行います2。ループ変数は、モデルを多数作成するためのもので、図のように 1、2、…、
10 が入っている変数であるとします。
2
モジュールの詳細な作成方法に関しては、「4.5 モジュール」を参照してください。ここ
ではモジュールに関しての詳しい説明は省略します。
410
図 6-85
図 6-86
モデル統合を行うプロジェクト
モデル統合に用いるループ変数
モジュール「モデル作成」は下図のようになっており、入力を2つ持っています。

table … 学習用のデータ。ここでは菖蒲。

Iter … ループ変数。ここでは、1~10 までの値が入るが、直接的には使わない。
411
図 6-87 「モデル作成」モジュール
ここでは便宜上、毎回同じデータを学習に用いていますが、データのリサンプリングを
行いたい場合は、
「外部からの入力」と「Neural Network」の間に適当なアイコン(サン
プリングやスクリプトアイコン)を挿入します。また出力は、Neural Network(1).result
となっていますが、この中身は、Neural Network アイコンで作成したモデルそのものです。
つまりモジュールの出力は、モデルになります。
メインのプロジェクトは、モデル作成モジュールに学習データ「菖蒲」と、ループ変数
となるデータを渡し、出力として得られるモデルをモデル統合アイコンに渡すことにより、
多数のモデルを統合して新たなモデルを作成します。
412
図 6-88
メインのプロジェクト
モジュールのプロパティは、図 6-89 のように設定します。
「ループ毎の結果を累積出力」
とすると、モジュール内部で作成した 10 個のモデルすべてをモデル統合アイコンに出力す
ることになります。
図 6-89
モデル作成モジュールのプロパティ
実際にモデル統合を行うには、メインのプロジェクトのモデル統合アイコンを実行しま
す。モジュールのループ第 1 回目が実行され、Neural Network のパラメータを要求されま
す。
413
図 6-90
ループ 1 回目実行時のパラメータ設定
2 回目以降は、1 回目に入力したパラメータを用いて Neural Network モデルが作成され
ます。作成した 10 個のモデルは最後にモデル統合アイコンに流れ、統合が行われます。
414
図 6-91
モデル統合のパラメータ要求(モデル数 10)
6.4.11. Naive Bayes
Naive Bayes を用いて判別分析を行います。Naive Bayes は一般的に説明変数間に完全
な独立性を仮定した Bayesian Network モデルですが、このモジュールでは説明変数間に
木構造を許します。木構造の構築では、指定した情報量基準を用いますが、指定した閾値
以下の値をとった場合は無視します。目的変数と説明変数の関係は条件付確率テーブルで
与えます。説明変数間の関連性は目的変数を指定したときの条件付独立性から判断し、全
体としてより大きな確率分布が得られるような木構造を構築します。条件付独立性の判定
基準は、AIC、BIC、MIC の中から選択します。数値変数に対しては離散化を行い、条件
付確率テーブルを計算します。離散化の方法には等間隔、等数、χ2乗、Gini 係数、誤判
別数があり、χ2乗、Gini 係数、誤判別数では、目的変数に関してその値が最も良くなる
ように数値変数を分割します。重み付けでは、クラス指定、列指定を行えます。クラス指
415
定では、クラス毎に誤判別に対する誤差が定義され、列指定では、行毎の重みを指定した
列を指定し、行毎に誤判別に対する誤差を定義出来ます。Naive Bayes では計算によりモ
デルを構築することも、編集画面により編集を行うことも可能です。
図 6-92 Naive Bayes パラメータ設定画面
416
□ 設定項目
◇ 目的変数
目的変数を指定します。
◇ 説明変数
説明変数を指定します。
◇ 離散化数
離散化の値を指定します。
◇ 情報量基準
有意差を考える際の基準となる統計量を指定します。

AIC

BIC

MIC
◇ 閾値
変数間の従属性の閾値を指定します。
◇ 離散化方法
数値変数を離散化する方法を指定します。

等間隔:等間隔にカテゴリ化します

等数:等数でカテゴリ化します

χ2乗:χ2乗値でカテゴリ化します

Gini 係数:Gini 係数でカテゴリ化します

誤判別数:誤判別数でカテゴリ化します
◇重み付け
重みを付ける方法を以下の中から選択します。

デフォルト:重みを付けない

列指定:レコード毎に重みを付ける列を指定する

クラス指定:クラス毎に重みを付ける
また、Edit ボタンを押すと Network を編集することが可能です。
417
図 6-93 Naive Bayes 編集画面
ノード同士のリンクは、プロジェクトボード上のアイコンのフロー編集と同様に、線を繋
ぐことや(ノードの上で中央ボタンドラッグ操作)
、線を削除する(線の上で右クリック→
削除)ことによって編集します.また、編集画面上で右クリック→CPT 計算を選択すると、
編集した Network に対するモデルのパラメータを計算することができます.
□結果
結果ファイルは以下の二つ(result、ic)です。
418
図 6-94 Naive Bayes 出力結果 result
図 6-95 Naive Bayes 出力結果 ic
result は Naive Bayes で作成したモデルで予測した結果です。種類.目的変数は目的変数
名を表し、種類.予測は Naive Bayes が予測したクラス、種類.判定結果は教師データと予測
値の評価結果(True or False)を表し、Setosa、Versicolor、Virginica はそれぞれのクラスの
確率を表します。 ic は変数間の条件付独立性の計算結果で、ノードのリンク情報を表しま
す。
6.4.12. 交差検証
モデルを構築する際の推定誤差を検証します。この手法はデータ数が少ない場合に有効で
す。交差検証は、元のデータを n 個のブロックに分割し、n-1 個のブロックで学習を行い、
学習に使用していない 1 ブロックでモデルの精度を算出します。これを全ての組み合わせ
に対して行い、モデルの推定精度とします。交差検証方法でテストブロック数の分割方法
を指定します。ブロック数指定の場合は、指定したグループの数だけ、ランダムにデータ
を振り分けてブロックを作成します。さらにテストブロック数を指定します。Leave One
Out ではすべてのブロックのデータが 1 つからなります。
419
学習するモデルはアルゴリズムで指定します。学習タブで、個々の学習アルゴリズムのパ
ラメータを指定します。
図 6-96
交差検証 パラメータ設定画面
□設定項目
◇ アルゴリズム
モデルを構築するアルゴリズムを指定します。
◇ 交差検証方法
データを分割する方法を以下の中から指定します。

Leave one out

ブロック数指定
◇ テストブロック数(ブロック数指定時のみ)
データを指定された個数のブロックに分割します。
◇ 学習
各アルゴリズム固有のパラメータを設定します。
◇ 重み付け
重みの付け方を指定します。
420
6.4.13. Boosting
■Boosting とは
Boosting とは複数の学習モデルを用いることで、より精度の高いモデルを作成するアル
ゴリズムのことです。
■ 内容
多数の分類分析モデル(弱学習モデル、WeakLearner、WL)を Boosting の手法により
統合し、より精度の高い判別モデルを作成します。Boosting の手法は、1 つのモデルでは
学習できないような複雑な問題に対しても、個々のモデルが学習を分担することにより高
い性能を発揮します。また、学習したデータから何らかの特徴を見つけ出し、未学習のデ
ータに対して正しい結果を出力する能力(汎化能力)に優れています。
この Boosting では、スクリプトによってユーザがアルゴリズムを自由に定義することがで
きるので、様々なアルゴリズムを試すことが可能です。アルゴリズムを定義しなくても、
標準で多群判別ができるアルゴリズムが搭載されているため、簡単に利用することができ
ます。
Boosting による学習・予測について説明します。
421
□Boosting による学習
図 6-97 Boosting による学習のイメージ図
Boosting による学習では、すべての学習データには重みがつけられます(1 行が 1 学習デ
ータ)。重みの大きいデータはより重点的に学習されます。学習開始時には、初期重みが重
みとして用いられます。
重み付き学習によりモデルを作成し、そのモデルの正解/不正解に応じてデータごとに
重みを更新します。更新された重みは、次のモデルを作成する際に使用されます。
このとき、正解したデータについては、重みが小さくなるように、不正解のデータにつ
いては重みが大きくなるようにします。つまり、次のモデル作成時には、前のモデルが不
正解したデータについて、より重点的に学習するようになります。以上を繰返し、必要な
数だけモデルを作成します。
422
□Boosting による予測
図 6-98 Boosting による予測のイメージ図
Boosting による予測では、まず、学習時に作成されたすべてのモデルに対してテストデ
ータを渡し、予測させます。予測結果などの情報から、WLOutput を計算します。これは
すべてのテストデータに対して、クラスの数だけ値が存在します(上の図では、クラスが”
開催”,”中止”の 2 つあるので、データごとに 2 つの値があります)。すべてのモデルにわた
る WLOutput の総和を計算し、総和の最も大きいクラスを、予測クラスとします。
Boosting による予測は、すべてのモデルの予測についての重み付き多数決とみなすこと
ができます。このとき WLOutput の値は、モデルの重み付き投票値です。WLOutput の値
423
が大きいほど、
「データがそのクラスに属する可能性が高い」とモデルが予測していること
になります。
■ 画面説明
■Boosting
図 6-99 Boosting パラメータ設定画面
□説明
Boosting タブでは、Boosting のパラメータを指定します。用いる分類分析の手法はアル
ゴリズムで指定し、モデル数で統合するモデルの数を指定します。
サマリ出力にチェックを入れると、学習過程におけるサマリがテーブルとして出力されま
す。
このテーブルには、全体の精度、クラス別の精度(Precision)・リコール(Recall)・判定率
が含まれます。それぞれの定義は、次式で与えられます。
正解したデータ件数
全体の精度  すべてのデータ件数
424
クラスAに属すると予測されたもののうち、正解したデータ件数
クラス別の精度  クラスAに属すると予測されたデータ件数
クラスAに属すると予測されたもののうち、正解したデータ件数
クラス別のリコール  クラスAに属するデータ件数
クラスAに属すると予測されたデータ件数
クラス別の判定率  すべてのデータ件数
途中経過出力にチェックをいれると、サマリ出力と同様の情報がメッセージウィンドウに
表示されます。ただしクラス数が 3 つより多い場合には、全体の精度のみが出力されます。
□設定項目

アルゴリズム
弱学習モデルを構築するアルゴリズムを以下から指定します。

Neural Network

Decision Tree

Radial Basis Function Network

k-NN 分析

Support Vector Machine

Naive Bayes

モデル数
統合するモデルの数を指定します。

サマリ出力
学習結果のサマリテーブルを出力します。

途中結果出力 メッセージウィンドウにサマリを出力します。

説明変数
必要な説明変数をチェックします。
左クリック選択後移動して、shift+左クリックでクリックした間の説明変
数に対し、同時にすべてチェックできます。

最大分岐数
Decision Tree でのみの設定項目です。
Tree の最大分岐数を指定します。

離散化数
Naive Bayes でのみの設定項目です。離散化する数を指定します。
425
■継続学習
図 6-100 継続学習
□説明
継続学習ボタンを押すことで、直前の学習から継続して学習を行うことができます。通
常、継続学習ボタンは押せないようになっていますが、一度学習が終了して、次に起動し
たときにモデル数を増加させることで継続学習が可能な状態となり、ボタンを押せるよう
になります。アルゴリズムと初期重み以外であれば、パラメータを変化させて継続学習を
行うことができます。
426
図 6-101 継続学習のやり方
427
■学習パラメータ
図 6-102 弱学習モデルのパラメータ設定画面
□説明
学習タブでは、個々の学習アルゴリズムのパラメータを指定します。
428
■初期重み
図 6-103 初期重みの設定画面
□説明
初期重みタブでは、重みの初期値を設定します。デフォルト・列指定・クラス指定があ
ります。デフォルトでは、すべてのデータに対して均等に重みがつけられます。列指定で
は行ごとに重みを指定し、クラス指定ではクラスごとに重みを指定します。重みが大きい
データほど、弱学習モデルに重点的に学習されます。値としては、0 より大きい値を指定し
ます。
1
設定項目
■
初期重み
初期重みの付け方を指定します。0 より大きい実数を指定します。
1.1 デフォルト
すべてのデータに対して均等に重みをつけます。
1.2 列指定
行ごとに重みを指定します。
1.3 クラス指定
クラスごとに重みを指定します。
429
■重み更新
図 6-104 重み更新の設定画面
□説明
重み更新タブでは、重み更新方法の詳細を指定します。更新された重みは、次の弱学習
モデルの学習の際に使用されます。重み更新方法には大きく分けて 3 通りあり、デフォル
ト・重み更新係数指定(列指定、クラス別指定)・スクリプト指定です。デフォルトでは、シ
ステムが提供する手法を用います。重み更新係数指定では、データによって重み更新の大
きさを調整することができます。値としては-1 から 1 の間の値を指定します。
重み更新係数を大きくすると、正解/不正解のときに重みの変化が激しくなり、小さく
すると、重みの変化が穏やかになります。つまり、係数を大きくすればそのデータの学習
結果に敏感に重みが更新され、小さくすれば、鈍感になります。-1 に近い値を設定すると、
正解/不正解のときにほとんど重みが変化しなくなります。
スクリプト指定では、重みを更新する処理を、スクリプトによってユーザーが指定でき
ます。スクリプト編集ボタンを押すと、編集画面が開きます。スクリプトでは、以下のテ
430
ーブルに示すテーブルを使用できます。また、任意のスクリプト関数を使用することがで
きます。これらを用いて B.weight という変数にデータごとの重みを格納します。
表 6-1
変数名
重み更新のスクリプトで使用できるテーブル
内容
入/出
入力
□ B.obj
□ B.pred
目的変数列
弱学習モデル学習で得られ
入力
た予測クラス。
弱学習モデル学習で得られ 入力
た予測の信頼度。一部のモ
□ B.pred.value
デル(Decision Tree, k-NN
分析, Naive Bayes)を用い
た場合のみ利用できる。
□ B.class
□ B.idx
□ B.num.model
入力
クラス名の一覧
モデル番号。1 からモデル数 入力
まで。
入力
モデル数。
入力
□ B.train.data
学習データ。
サマリ出力オプションによ 入力
って出力されるテーブルと
同じデータ。学習の進行に
□ B.summary
応じてサマリが追加されて
いくので、最初の学習時に
はこのテーブルは使用でき
ない。
直前の弱学習モデルまでの 入力
□ B.sum.result
弱学習モデルの出力の総
和。
431
データイメージ
B.sum.result から決定され
□ B.all.pred
入力
た予測クラス。
ユーザーが自由に使用でき 入・出
る変数。初期値として 0 が
□ B.alpha1~3
入っている。WL 出力のス
クリプトでも同じ変数を参
照することができる。
入・出
□ B.weight
データに対する重み。
B.alpha1~3 は、重み更新のスクリプトと WL 出力のスクリプトの両方で利用すること
ができるので、2つのスクリプト間で情報をやりとりするために使用することができます。
□設定項目

重み更新
重み更新の方法を指定します。
1.3.1
デフォルト
システムが提供する手法を用います。
1.3.2
列指定
行データごとの学習の緩急をコントロールする係数を表す列を指定します。
-1 より大きく、1 より小さい値を指定します。
1.3.3
クラス指定
データごとの学習の緩急をコントロールする係数をクラスごとに指定します。
-1 より大きく、1 より小さい値を指定します。
1.3.4
スクリプト
重み更新の処理をスクリプトにより指定します。
432
■WL 出力
図 6-105 弱学習モデル出力(WL 出力)の設定画面
□説明
WL 出力タブでは、弱学習モデルの出力の計算方法を指定します。この値は、すべての弱
学習モデルを重み付き多数決により統合する際に、それぞれのモデルの投票値として使用
されます。
デフォルトまたはスクリプト指定による方法を選ぶことができます。デフォルトでは、
システムが提供する手法を用います。スクリプト指定では、重み更新と同様に、ユーザが
スクリプトにより WL 出力の計算方法を指定できます。
WL 出力のスクリプトでは、以下の表に示すテーブルが使用できます。これらを用いて
B.result という変数に出力を格納します。
433
表 6-2
変数名
WL 出力のスクリプトで使用できるテーブル
内容
□ B.pred
入/出
弱学習モデル予測で得られ
データイメージ
入力
た予測クラス。
弱学習モデル予測で得られ 入力
た予測の信頼度。一部のモ
□ B.pred.value
デル(Decision Tree, k-NN
分析, Naive Bayes)を用い
た場合のみ利用できる。
□ B.class
入力
クラス名の一覧
モデル番号。1 からモデル数 入力
□ B.idx
まで。
□ B.num.model
入力
モデル数。
入力
□ B.test.data
テストデータ。
直前の弱学習モデルまでの 入力
□ B.sum.result
弱学習モデルの出力の総
和。
□ B.all.pred
□ B.alpha1~3
B.sum.result から決定され
入力
た予測クラス。
ユーザが自由に使用できる 入・出
変数。
出力
□ B.result
弱学習モデルの出力。
□設定項目

弱学習モデル出力
弱学習モデルの出力の計算方法を指定します。
1.4 デフォルト
システムが提供する手法を用います。
1.5 スクリプト
スクリプトにより計算方法を指定します。
434
■スクリプト編集画面
図 6-106 スクリプト編集画面
□説明
重み更新、WL 出力のスクリプトを編集します。右側に定義済み変数一覧があり、変数名を
ダブルクリックすると、スクリプトに変数名を挿入できます。「入力」はスクリプトへの入
力変数、
「出力」はスクリプトからの出力変数、「入・出」は入力および出力変数であるこ
とを示します。
435
図 6-107 ダブルクリックによる変数名入力
図 6-108 定義済み変数一覧
■ Boosting アルゴリズムサンプル(AdaBoost)
例として、2 クラス判別用の AdaBoost アルゴリズム(Y.Freund and R.E. Schapire.)を実
現するためのスクリプトを示します。Boosting を使用する際には、これと同様のスクリプ
436
トが初めからテンプレートとして用意されているので、修正して使用することができます。
□重み更新 スクリプト
//AdaBoost script
//誤り率、モデルの信頼度を計算
tf=sel(B.pred!=B.obj, 1, 0);
err=sum(tf*B.weight);
alpha=0.5*log((1.0-err)/err);
//重みを更新
tf=sel(B.pred==B.obj, -1, 1);
B.weight=B.weight * exp(alpha*tf);
//信頼度を保存
if(B.idx==1){
B.alpha1 = alpha;
}else{
B.alpha1 = row_append(B.alpha1, alpha);
}
□ WL 出力 スクリプト
//AdaBoost script
//モデルの信頼度を取得
alpha=cell(B.alpha1, 1, B.idx);
//弱学習モデル(WL)の出力を計算
B.result={};
for(k in B.class){
val(k)=sel(B.pred==k, alpha, -alpha);
B.result=cbind(B.result, val);
}
■ 結果
Boosting の結果ファイルは以下の通りです。
437
図 6-109 Boosting 出力結果 result
クラス.目的変数は教師値、クラス.予測は出力結果から識別されるクラス、クラス.判定結
果は教師値と識別したクラスとの評価結果、開催、中止 はそれぞれのクラスへの
WLOutput の総和です。
図 6-110 Boosting 出力結果 boosting
回数は統合したモデルの数、全体.precision は全体の精度、開催.precision、開催.recall、
開催.判定率などは、クラスごとの精度、リコール、判定率です。このテーブルは Boosting
オプションの「サマリ出力」にチェックを入れた場合にのみ出力されます。
6.4.14. Bagging
■ Bagging とは
Bagging とは与えられた学習データから、同じデータが重複するのを許してサンプリン
グを行い(復元抽出法)
、モデルの学習を行います。最終的な結果は、このようにして学習
した複数のモデルの多数決により得ます。
438
■ 内容
多数の分類分析モデルを Bagging の手法により統合し、未知の入力データに対して安定
した予測を行う判別モデルを作成します。Bagging の手法では、多数のモデルによる多数
決を行うため、過学習を起こしにくく、安定した予測を行うことができます。しかし、そ
れほど予測の精度を上げることはできません。
Bagging による学習・予測について説明します。
□Bagging による学習
図 6-111 Bagging による学習のイメージ図
Bagging による学習では、
まず学習データから復元抽出によりサンプリングを行います。
そのデータを用いて学習を行い、モデルを作成します。これを繰返し、必要な数だけモデ
ルを作成します。
□Bagging による予測
図 6-112 Bagging による予測のイメージ図
439
Bagging による予測では、学習時に作成されたすべてのモデルに対してテストデータを
渡し、予測させます。そして、その結果から多数決を行い、それぞれのデータに対して最
も多かった予測クラスを、そのデータの予測クラスとします。
■ 画面説明
■Bagging
図 6-113 Bagging パラメータ設定画面
□説明
Bagging タブでは、Bagging のパラメータを指定します。用いる分類分析の手法はアル
ゴリズムで指定し、モデル数で統合するモデルの数を指定します。サマリ出力にチェック
を入れると、学習途中でのサマリがテーブルとして出力されます。このテーブルには、全
体の精度、クラス別の精度(Precision)・リコール(Recall)・判定率が含まれます。それぞれ
の定義は、以下の式で与えられます。
440
正解したデータ件数
全体の精度  すべてのデータ件数
クラスAに属すると予測されたもののうち、正解したデータ件数
クラス別の精度  クラスAに属すると予測されたデータ件数
クラスAに属すると予測されたもののうち、正解したデータ件数
クラス別のリコール  クラスAに属するデータ件数
クラスAに属すると予測されたデータ件数
クラス別の判定率  すべてのデータ件数
途中経過出力にチェックをいれると、サマリ出力と同様の情報がメッセージウィンドウ
に表示されます。ただしクラス数が 3 つより多い場合には、全体の精度のみが出力されま
す。
□ 設定項目

アルゴリズム
モデルを構築するアルゴリズムを以下から指定します。


Neural Network

Decision Tree

Radial Basis Function Network

k-NN 分析

Support Vector Machine

Naive Bayes
モデル数
統合するモデルの数を指定します。

サマリ出力
学習結果のサマリを出力します。

途中結果出力
メッセージウィンドウにサマリを出力します。
441
■継続学習
図 6-114
継続学習
□説明
継続学習ボタンを押すことで、直前の学習から継続して学習を行うことができます。通
常は継続可能ボタンを押せないようになっていますが、一度学習が終了して、次に起動し
たときにモデル数を増加させることで継続学習が可能な状態となり、ボタンを押せるよう
になります。アルゴリズム以外であれば、パラメータを変化させて継続学習を行うことが
できます。
442
図 6-115
継続学習のやり方
443
■学習
図 6-116
学習アルゴリズムのパラメータ設定画面
□説明
学習タブで、個々の学習アルゴリズムのパラメータを指定します。
444
■重み
図 6-117
重みの設定画面
□説明
重みタブで、データごとの重みを設定します。デフォルト・列指定・クラス指定があり
ます。デフォルトでは、すべてのデータに対して均等に重みがつけられます。列指定では
行ごとに重みを指定し、クラス指定ではクラスごとに重みを指定します。重みが大きいデ
ータほど、復元抽出法によるサンプリング時にサンプリングされる確率が高くなります。
値としては、0 以上の実数を指定します。
□設定項目

重み
重みの付け方を指定します。0 以上の実数を指定します。

デフォルト
すべてのデータに対して均等に重みをつけます。

列指定
行ごとの重みを表す列を指定します。

クラス指定
クラスごとに重みを指定します。
445
■ 結果
Bagging の結果ファイルは以下の通りです。
図 6-118 Bagging 出力結果 result
クラス.目的変数は教師値、クラス.予測は出力結果から識別されるクラス、クラス.判定結
果は教師値と識別したクラスとの評価結果、開催、中止 はそれぞれのクラスを予測したモ
デルの数です。
図 6-119 Bagging 出力結果 bagging
Bagging タブでサマリ出力にチェックを入れると、
上のようなテーブルが出力されます。
回数は統合したモデルの数、全体.precision は全体の精度、開催.precision、開催.recall、開
催.判定率などは、クラスごとの精度、リコール、判定率です。
446
6.4.15. HSMM モデルの説明
隠れセミマルコフモデルとは、ある観測値の時系列を、観測できない状態の変化によっ
て説明するモデルです。
1 つの前の時刻の状態によって次の状態が決まるようなモデルを、マルコフモデルと呼び
ます。さらに、状態が観測できない場合に、隠れマルコフモデルと呼びます。隠れマルコ
フモデルでは、ある状態から他の状態へは、一定の遷移確率で、毎時刻遷移が行われます。
隠れセミマルコフモデルでは、各状態への滞在時間分布を考慮することができます。ある
状態から次の状態への間の時間間隔は、各状態特有の滞在時間分布に従っていると仮定さ
れます。
Visual Mining Studio に搭載されている隠れセミマルコフモデルでは 4 つのモデルから
選択することができます。数値列に対しては、平均値モデル、多次元平均値モデル、回帰
モデル、カテゴリ変数に対しては、カテゴリモデルを扱うことができます。共通のモデル
パラメータとして、状態遷移確率、状態別の滞在時間分布、状態の初期配置と、モデル特
有のパラメータとして、状態を特徴づけるパラメータが必要となります。以下では、順に
モデルとそのモデル特有のパラメータについて紹介します。
□平均値モデル
平均値モデルでは、各状態によって、平均値が異なるモデルを考えます。状態(平均値)
が変化し、各状態では、特定の平均値と分散で特徴づけられた正規分布に従い値が生成さ
れているとします。つまり、各状態 の平均値を
測値
と標準偏差
としたとき、時刻 の観
は、時刻 の状態 で以下のように与えられます。
ここで、
は平均
標準偏差 に従う正規分布を表します。
447
図 6-120 平均値モデル
□多次元平均値モデル
多次元平均値モデルでは、観測値の次元が 2 つ以上の平均値モデルを扱います。観測値
は特定の平均値と分散で特徴づけられた多次元正規分布に従い値が生成されていると考え
ます。現状では、観測値は互いに独立として扱い、相関は考慮しません。
□回帰モデル
回帰モデルでは、各状態によって、傾きが異なるモデルを考えます。状態(傾き)が変化
し、各状態では、特定の傾きと分散で特徴づけられた正規分布に従い値が生成されている
と考えます。つまり、各状態 i の傾きを a(i ) と標準偏差 sd (i) としたとき、時刻の観測値 y (t )
は、時刻 t の状態 s t で以下のように与えられます。
y(t )  y(t 0 )  a( st )(t  t 0 )  e(t )
e(t )  Norm(0, sd ( st ))
448
上図の赤線は状態の水準を表します(傾きの値ではありません)。上図のモデルでは 3 つの内
部状態があり、赤線が一番低い状態は傾き 1、真ん中の状態は傾き-1、一番高い状態は傾き
-2 です。
□カテゴリモデル
カテゴリモデルでは、観測値としてカテゴリ値を扱うことができます。状態が変わると
観測されるカテゴリ値の分布が変化するモデルを扱います。カテゴリモデルでは、観測さ
れたカテゴリ値ごとに状態の出現確率をパラメータとして与える、または、学習する必要
があります。
図 6-121 カテゴリモデル
449
6.4.16. HSMM(カテゴリ)
隠れセミマルコフモデルの学習を行いモデルパラメータの推定を行う。カテゴリ変数に
対しては、カテゴリモデルを扱うことができます。
図 6-122
HSMM(カテゴリ)パラメータ設定画面
□設定項目
◇ 観測値列
観測値の列。文字列を指定します。
◇ 繰り返し数
繰り返し数を表し、1 以上の整数を指定します。
◇ 収束の判定-閾値
収束判定の閾値を指定します。1 回のループ前後の対数尤度の差が指定した値(
「閾
値」
)以下の値となる場合に収束したと判定し学習をやめます。正の実数で指定し
ます。なお、このオプションを指定しない場合は、必ず繰り返し数で指定した数
だけループ計算を行って学習します。
□入力テーブル
◇ obsValue
観測値テーブル。
◇ stateInfo
状態記述テーブル
2 列のテーブルで行数が状態数とます。また、行番号が状態の番号に対応します。
1 列目はモデルのタイプを表す数値として 「3」を指定します。2列目には状態ご
450
との初期配置の割合を記入します。なお、列名の指定は必要ありません。
◇ durationInfo
滞在時間経験分布テーブル.
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定は必要ありません。
◇ transInfo
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表します。対格成
分(i=j となる成分)は 0 とする必要があります。
◇ catInfo
状態毎のカテゴリ分布
各状態でのカテゴリ変数の観測割合を指定します。1 列目は観測値のカテゴリ変数
の値、2 列目以降は、観測値が与えられたときの各状態の取りうる確率を表します。
2 列目が 1 番目の状態、以降 n 列目が n-1 番目の状態をとる確率 P(状態|観測値)
を表します。行方向に正規化されます。観測値に空欄を設定すると、表に現れて
いない観測値をまとめて「その他」として扱うことができます。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>、<状態
毎のカテゴリ分布>は、モデルパラメータの初期値を指定します。詳しいパラメータの書式
はスクリプト関数の hsmm_eval のヘルプを参照してください。
□ 出力
◇ 対数尤度(logLikelihood)
モデルの対数尤度が出力されます。
◇ 状態記述テーブル(stateInfo)
入力項目を参照。
◇ 滞在時間経験分布テーブル(durationInfo)
入力項目を参照
◇ 状態遷移確率テーブル(transInfo)
入力項目を参照
◇ 状態毎のカテゴリ分布(catState)
入力項目を参照
451
6.4.17. HSMM 予測(カテゴリ)
HSMM(連続値)アイコンの解析結果をもとに新しいデータに対して、Decode、Infer、
Predict、Eval を行います。詳細は、設定項目の機能選択を参照してください。
図 6-123
HSMM 予測(カテゴリ)パラメータ設定画面
□ 設定項目
◇ 観測値列
観測値の列。文字列を指定します。
◇ 機能選択
計算機能を選択します。
・Decode :
隠れセミマルコフモデルを用いて、観測値に状態の割り当てを
行います。
・Infer : 隠れセミマルコフモデルを用いて、平滑化(Smoothing)
、フィルタ
(ろ波、Filtering)
、予測(Prediction)を行います。
・Predict : 隠れセミマルコフモデルを用いて次の時刻の状態を推定します。
・Eval
:
隠れセミマルコフモデルの対数尤度(モデルの当てはまりの良さ)
を算出します。
◇ 対象行(FromTo)
452
解析対象行を設定します。正の整数で指定します。この箇所を指定しない場合は、
全ての行に対して予測します。
□入力テーブル
◇ obsValue
観測値テーブル。
◇ stateInfo
状態記述テーブル
2 列のテーブルで行数が状態数となります。また、行番号が状態の番号に対応しま
す。1 列目はモデルのタイプを表す数値として 「3」を指定します。2列目には状
態ごとの初期配置の割合を記入します。なお、列名の指定は必要ありません。
◇ durationInfo
滞在時間経験分布テーブル.
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定は必要はありません。
◇ transInfo
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表します。対角成
分(i=j となる成分)は 0 とする必要があります。
◇ catInfo
状態毎のカテゴリ分布
各状態でのカテゴリ変数の観測割合を指定します。1 列目は観測値のカテゴリ変数
の値、2 列目以降は、観測値が与えられたときの各状態の取りうる確率を表します。
2 列目が 1 番目の状態、以降 n 列目が n-1 番目の状態をとる確率 P(状態|観測値)
を表します。行方向に正規化されます。観測値に空欄を設定すると、表に現れて
いない観測値をまとめて「その他」として扱うことができます。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>、<状態毎
のカテゴリ分布>:モデルパラメータの初期値を指定します。パラメータの書式はスクリプ
ト関数の hsmm_eval のヘルプを参照してください。
□出力
◇ Decode

結果(rsultDecode)
453
・1 列目 : 時刻
・2 列目 : 割り当てられた状態
・3 列目 : 最大の事後確率
・4 列目以降 : 各状態の事後確率 P(状態|観測値)
◇
Infer

モデルの対数尤度(resultInfer)

MAP 推定量(最大事後確率推定量)(ansInferMap)
・1 列目 : 時刻
・2 列目 : Smoothing の MAP 推定量(最大の事後確率となる状態)
・3 列目 : Smoothing の MAP(最大の事後確率の値)
・4 列目 : Filtering の MAP 推定量(最大の事後確率となる状態)
・5 列目 : Filtering の MAP(最大の事後確率の値)
・6 列目 : Prediction の MAP 推定量(最大の事後確率となる状態)
・7 列目 : Prediction の MAP(最大の事後確率の値)

事後確率テーブル(ansInferDetail)
・1 列目 : 時刻
・2 列目 : 状態
・3 列目 : Smoothing の MAP(最大の事後確率の値)
・4 列目 : Filtering の MAP(最大の事後確率の値)
・5 列目 : Prediction の MAP(最大の事後確率の値)
◇ Predict

結果(rsultPredict)
・1 列目 : 時刻
・2 列目:割り当てられた状態
・3 列目:最大の事後確率
・4 列目以降:各状態の事後確率 P(状態|観測値)
◇ Eval

結果(rsultEval)
モデルの対数尤度
6.4.18. HSMM シミュレーション(カテゴリ)
隠れセミマルコフモデルから観測データを生成します。
454
図 6-124
HSMM シミュレーション(カテゴリ)パラメータ設定画面
□設定項目
◇ シミュレーションで生成するデータ行数
行数を設定する。正の整数で指定します。
◇ 乱数のシード
乱数のシード値を設定します。
◇ 観測値の初期値
シミュレーションに用いる観測値の初期値を設定します。
□入力テーブル
◇ stateInfo
状態記述テーブル
2 列のテーブルで行数が状態数となります。また、行番号が状態の番号に対応しま
す。1 列目はモデルのタイプを表す数値として 「3」を指定します。2列目は状態
ごとの初期配置の割合を記入します。なお、列名の指定は必要ありません。
◇ durationInfo
滞在時間経験分布テーブル.
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定は必要ありません。
◇ transInfo
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表します。対角成
分(i=j となる成分)は 0 とする必要があります。
◇ catInfo
455
状態毎のカテゴリ分布
各状態でのカテゴリ変数の観測割合を指定します。1 列目は観測値のカテゴリ変数
の値、2 列目以降は、観測値が与えられたときの各状態の取りうる確率を表します。
2 列目が 1 番目の状態、以降 n 列目が n-1 番目の状態をとる確率 P(状態|観測値)
を表します。行方向に正規化されます。観測値に空欄を設定すると、表に現れて
いない観測値をまとめて「その他」として扱うことができます。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>、<状態毎
のカテゴリ分布>:モデルパラメータの初期値を指定します。パラメータの書式はスクリプ
ト関数の hsmm_eval 関数のヘルプを参照してください。
□出力
◇ resultSimulate
生成された観測値(1 列目)と状態(2 列目)を表す 2 列のテーブル。
6.4.19. HSMM(連続値)
隠れセミマルコフモデルの学習を行いモデルパラメータの推定を行います。数値列に対
しては、平均値モデルを扱うことができます。
図 6-125
HSMM(連続値)パラメータ設定画面
456
□設定項目
◇ 観測値列
観測値の列。解析対象とする連続値列を指定します。
◇ 平均
各状態の平均値
◇ 偏差
各状態の標準偏差
◇ 繰り返し数
繰り返し数を表し、1 以上の整数を指定します。
◇ 収束判定閾値
収束判定の閾値を指定します。1 回のループ前後の対数尤度の差が指定した値(
「閾
値」
)以下の値となる場合に収束したと判定し学習をやめます。正の実数で指定し
ます。なお、このオプションを指定しない場合は、必ず繰り返し数で指定した数
だけループ計算を行って学習します。
□入力テーブル
◇ obsValue
観測値テーブル。
◇ stateInfo
状態記述テーブル
4 列のテーブル。行数が状態数となり、行番号が状態の番号に対応します。
1 列目には状態ごとにモデルのタイプを表す値である「2」を指定します。
2 列目には状態ごとの初期配置の割合を記入します。(2 列目の和が1となる必要
はありません。
)3 列目には各状態の平均値を指定します。4 列目には各状態の標
準偏差を指定します。
◇ durationInfo
滞在時間経験分布テーブル
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定の必要はありません。
◇ transInfo
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表す。対格成分(i=j
となる成分)は 0 とする必要があります。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>:モデルパ
457
ラメータの初期値を指定します。パラメータの書式はスクリプト関数の hsmm_eval のヘ
ルプを参照してください。
□出力
◇ 対数尤度(logLikelihood)
モデルの対数尤度が出力されます。
◇ 状態記述テーブル(stateInfo)
入力項目を参照。
◇ 滞在時間経験分布テーブル(durationInfo)
入力項目を参照
◇ 状態遷移確率テーブル(transInfo)
入力項目を参照
6.4.20. HSMM 予測(連続値)
HSMM(連続値)アイコンの解析結果をもとに新しいデータに対して、Decode、Infer、
Predict、Eval を行います。
458
図 6-126
HSMM 予測(連続値)パラメータ設定画面
□設定項目
◇ 観測値列
観測値の列。文字列を指定します。
◇ 機能選択
計算機能を選択します。
・Decode:隠れセミマルコフモデルを用いて、観測値に状態の割り当てを行い
ます。
・Infer:隠れセミマルコフモデルを用いて、平滑化(Smoothing)、フィルタ(ろ
波、Filtering)
、予測(Prediction)を行います。
・Predict:隠れセミマルコフモデルを用いて次の時刻の状態を推定します。
・Eval:隠れセミマルコフモデルの対数尤度(モデルの当てはまりの良さ)を
算出します。
・対象行(FromTo)
解析対象行を設定します。正の整数で指定します。
この箇所を指定しない場合は、全ての行に対して予測します。
459
□入力テーブル
◇ obsValue
観測値テーブル。
◇ stateInfo
状態記述テーブル
4 列のテーブルです。行数が状態数となり、行番号が状態の番号に対応します。
1 列目には状態ごとにモデルのタイプを表す値である「2」を指定します。
2 列目には状態ごとの初期配置の割合を記入します。(2 列目の和が1となる必要
はありません。
)3 列目には各状態の平均値を指定します。4 列目には各状態の標
準偏差を指定します。
◇ durationInfo
滞在時間経験分布テーブル
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定は必要ありません。
◇ transInfo
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表します。対角成分
(i=j となる成分)は 0 とする必要があります。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>:モ
デルパラメータの初期値を指定します。パラメータの書式はスクリプト関数の
hsmm_eval を参照してください。
□出力
◇ Decode
結果(rsultDecode)
・1 列目:時刻
・2 列目:割り当てられた状態
・3 列目:最大の事後確率
・4 列目以降:各状態の事後確率 P(状態|観測値)
◇ Infer

モデルの対数尤度(resultInfer)

MAP 推定量(最大事後確率推定量)(ansInferMap)
・1 列目:時刻
・2 列目:Smoothing の MAP 推定量(最大の事後確率となる状態)
460
・3 列目:Smoothing の MAP(最大の事後確率の値)
・4 列目:Filtering の MAP 推定量(最大の事後確率となる状態)
・5 列目:Filtering の MAP(最大の事後確率の値)
・6 列目:Prediction の MAP 推定量(最大の事後確率となる状態)
・7 列目:Prediction の MAP(最大の事後確率の値)

事後確率テーブル(ansInferDetail)
・1 列目:時刻
・2 列目:状態
・3 列目:Smoothing の MAP(最大の事後確率の値)
・4 列目:Filtering の MAP(最大の事後確率の値)
・5 列目:Prediction の MAP(最大の事後確率の値)
◇ □ Predict
結果(rsultPredict)
・1 列目:時刻
・2 列目:割り当てられた状態
・3 列目:最大の事後確率
・4 列目以降:各状態の事後確率 P(状態|観測値)
◇ Eval
結果(rsultEval)
モデルの対数尤度
6.4.21. HSMM シミュレーション(連続値)
隠れセミマルコフモデルから観測データを生成します。
461
図 6-127
HSMM シミュレーション(連続値)パラメータ設定画面
□設定項目
◇ シミュレーションで生成するデータ行数
行数を設定する。正の整数で指定します。
◇ 乱数のシード
乱数のシード値を指定します。
◇ 観測値の初期値
観測データを生成する際の初期値を指定します。
□入力テーブル
◇ stateInfo
状態記述テーブル
4 列のテーブル。行数が状態数となり、行番号が状態の番号に対応します。
1 列目には状態ごとにモデルのタイプを表す値である「2」を指定します。
2 列目には状態ごとの初期配置の割合を記入します。(2 列目の和が1となる必要
はありません。
)3 列目には各状態の平均値を指定します。4 列目には各状態の標
準偏差を指定します。
◇ durationInfo
滞在時間経験分布テーブル
行番号が滞在時間、列番号が状態の番号を表します。テーブルの要素が重みを表
します。1 列ごとに足して 1 になるように正規化された値が P(滞在時間|状態)
として用いられます。列名の指定は必要ありません。
◇ transInfo
462
状態遷移確率テーブル
状態遷移行列 i 行 j 列の成分が i 番目から j 番目の遷移確率を表す。対格成分(i=j
となる成分)は 0 とする必要があります。
<状態記述テーブル>、<滞在時間経験分布テーブル>、<状態遷移確率テーブル>、<状態毎
のカテゴリ分布>:モデルパラメータの初期値を指定します。パラメータの書式はスクリプ
ト関数の hsmm_eval のヘルプを参照してください。
□出力
◇ resultSimulate
生成された観測値(1 列目)と状態(2 列目)を表す 2 列のテーブルです。
463
6.4.22. Tree&Random Forest
多分岐の決定木(Decision Tree)を作成します。与えられたデータに対して、ある基準
のもとで最良の分割変数と分割値をもとめ、木構造を作成します。複数の決定木を組み合
わせて集団学習を行う Random Forest モデルを作成することもできます。
説明変数と目的変数にはカテゴリ値と連続値の両方を適用でき、欠損値にも対応します。
ノードの分岐には次の基本アルゴリズムを採用しています。
1. 説明変数=カテゴリの場合、「1クラス毎に1分岐」の状態から出発し、分岐間合
併後のケースを調べ、分岐の評価値が最も良い(=分割後に目的変数の値が最も偏
る)組み合わせで分割します。
2. 説明変数=連続値の場合、2分割から出発して分割数を増やし、分岐の評価値が最
も良い値で分割します。
目的変数がカテゴリ値の場合、分岐の評価値は Gini 係数、InfoGain、InfoGain Ratio
の中から選択できます。目的変数が連続値の場合、分岐の評価値はノードの分散となり
ます。
目的変数が複数ある決定木(多目的変数決定木)を作成することもできます。多目的変
数決定木は、複数の数値列を目的変数に指定することができ、指定した目的変数を同時予
測する際に用います。
必要なパラメータを入力した後、自動的に一括生成する方法と、ユーザとの対話をしな
がら、木を成長させる方法があります。画面は、パラメータ設定画面、オプション設定画
面、ランダムフォレスト設定画面、木編集画面、データ表画面で構成されます。
464
・ パラメータ設定画面
図 6-128
Decision Tree パラメータ設定画面
465
図 6-129
・
カテゴリ変数を順序付きと指定
生成方法

対話画面での生成
木編集画面で、ステップバイステップでツリーを成長させます。

一括自動生成
木編集画面を経由しないで、自動的に一括生成します。
・
分岐方法

分岐方法
分岐方法を、Gini 係数、InfoGain、InfoGain Ratio から選択します。

分岐変数の繰り返し利用
一度分岐に使用された変数を、より深い節点での分岐に利用するかどうかを指定
します(注:S-PLUS の Tree と同じ条件です)。

全数値領域分岐
数値変数の分岐条件を、学習データに出てくる範囲(最小値から最大値)までで
はなく、全領域(マイナス無限大からプラス無限大)まで拡張するかどうかを指
定します。
466
・
分岐停止条件
それぞれ閾値を入力します。以下の 4 条件のうち 1 条件が満たされれば、分岐を停止
します。
・ 節点最小データ数
節点に含まれるレコード数の最小件数(整数値を指定)を指定します(単位とし
て「件」を指定)
。指定した件数未満のノードは作りません。また、全データ数を
分母とした時の割合で指定することも可能です(単位として「%」を指定)
。

変数の最大分岐数
すべてのノードの最大の分岐数を指定します。

節点の不純度
節点にクラス以外のレコード数が全体に占める割合。目的変数が連続値の場合、
分散を利用。分類モデルの場合、[0~1]の連続値を指定します。

高さ制限
木の最大の高さ(深さ)を指定します。
・ 欠損値パターン
欠損値と見なすパターン(値)を入力します。
・ 目的変数
多目的変数でない場合は、変数を1つ選びます。多目的変数の場合は、「*** 多目
的変数 ***」を選びます。
・ 説明変数

列属性
カテゴリ変数は「順序付き」変数に指定することができます。その「順序」は、
文字列の辞書順となっています。

目的変数
チェックボックスを選択します。

説明変数
チェックボックスを選択します。左クリック選択後移動して、shift+左クリックで
クリックした間の説明変数に対し、同時にすべてチェックできます。

最大分岐数
説明変数毎に最大分岐数を選択します。最大分岐数(共通)を利用することも可
能で、カテゴリ変数は「無制限」を選択することもできます。
ある変数 A の最大分岐数を変更後移動して、shift+左クリックで他の変数の最大分
岐数をクリックすると、間にある全ての変数の最大分岐数を同時に変更すること
ができます。
467
 オプション設定画面
図 6-130
Decision Tree オプション指定画面
・ 選定基準

複雑度係数
自動枝刈りを利用する場合、下記分岐メリット本来の分岐基準+複雑度係数*木の
葉の数で木の分岐を再計算します。分岐しない方のメリットが大きければ、枝刈
りを行います。
・ 重み付け
分類モデルの場合、クラス毎、または、学習データの行毎に、重みをつけます。あるク
ラスの重みを上げることによって生成されたモデルは、そのクラスに対する予測精度を
上げることができます(その代わりに、他のクラスに対する予測精度が低くなる可能性
があります)
。
・ 回帰予測値選択
決定木の各ノードにおける目的変数の予測値を出力します。
468
 平均値
平均値を予測値として出力します
 分位点
データの値が小さいほうからどの位置にある値を、ノードの予測値にするかを指
定します。分位点は(0,1)の範囲で指定し、最小値が 0、中央値が 0.5、最大値が 1
となります。
・ 分岐境界値

候補点
点数決定
変数を分岐させる候補となる値の数を指定します。指定しない場合には、自動的
に候補数が決定されます。
図 6-131
Decision Tree
その他指定画面(多目的変数)
多目的変数
図 6-57 のように目的変数を複数設定することもできます。目的変数を多目的変数指定に
した場合には、多目的変数に数値型の変数を 2 つ以上選ぶ必要があります。
469
・ 多目的回帰モデル距離計算
複数の目的変数があるため、各ノードにおけるデータのまとまりの評価には、回帰予測
値との各ノードに属するデータとの距離を計算する式の設定が必要になります。回帰予測
値は多目的変数決定木では平均値になります。予測値とデータとの距離の計算には Euclid、
Manhattan、Cosine と、ユーザが定義した外部 DLL を用いることができます。外部 DLL
を利用する場合には、以下の 2 つを指定します。

DLL 関数名
距離を定義した関数の名前を指定します。

DLL パス名
DLL のパスを指定します。
 ランダムフォレスト設定画面
ランダムフォレストチェックボックスを選択すると表示されます。
470
実行すると、Decision Tree ダイアログが閉じ、ランダムフォレストモデルが生成されま
す。ランダムフォレストモデルでは、複数のランダムに作成された決定木モデルを統合し、
全体として予測を行います。それぞれの決定木は、前述までの決定木のパラメータ設定と、
ランダムフォレスト画面の設定にしたがってランダムに生成されます。

決定木の数
作成する決定木の数を指定します。

分岐変数候補数
各決定木でノード分割の際に、ランダムに選択する分岐変数の候補数を指定します。
単位として「個」を指定した場合、分岐変数の候補数をリストから選択します。デ
フォルトでは「√Nexp(説明変数選択個数の平方根)」が選択されており、説明変数
としてチェックを入れた数の平方根が自動で指定されます。
単位として「%」を指定した場合、説明変数の総数に対する割合を数値で入力しま
す。

サンプル数
各決定木を作成する際に、ランダムにサンプリングする学習データ数を指定します
(単位として「件」を指定)。またはデータの総数に対する割合を指定します(単
位として「%」を指定)
。

並列実行数
実行させる際の並列数を指定します。

追加オプション
「重み付き平均」
「Out of Bag」
「予測確率」の有無を指定します。ランダムフォレ
ストを実行すると、学習データを用いてランダムフォレストモデルを評価した結果
が出力されます。この際、追加オプションのチェックの有無によって、各決定木が
返す予測結果の集計方法が変わり、全体の予測結果が変わります。

予測確率
判別モデルの場合のみ選択することができます。チェックが入っていない場合
は各決定木の予測結果の多数決をとって集計しますが、チェックを入れた場合
は各カテゴリ値についての予測確率を集計し、確率が最大となるカテゴリ値を
全体の予測値とします。

重み付き平均
各決定木の予測値を集計する際に、サンプルが分類されるノードの重み(ノー
ドに含まれるデータ件数)に応じて、重み付き平均(または多数決)をとって
集計を行います。

Out of Bag
チェックが入っていない場合は、全ての決定木の予測結果を集計した値を出力
471
します。チェックを入れた場合は、各サンプルの予測結果は、そのサンプルを
学習に用いなかった決定木の予測結果を集計した値となります。

ランダムシード
乱数のシードを指定します。自動を選択すると、乱数のシードはランダムに設定さ
れ、実行毎に結果は変化します。手動を選択してテキストボックスに同じ値を入力
すると、同じ結果を得ることができます。
 木編集画面
※ランダムフォレスト実行時は表示されません
現在「注目」している節点から木のルートまでの全節点、注目節点の直接兄弟節点お
よび直属子供節点が表示されます。節点の上で、ダブルクリックすると、その節点が
「注目」節点となります。木に対する操作は、節点の右クリックで現れるメニューで
選択可能です。分類モデルの場合、節点のクラスにより、異なった色で表示されます。
「Tree の表示画面」の節点上の右クリックメニュー
節点に対する操作はこちらから選択できます。
節点での右クリ
ックメニュー
図 6-132 Tree 画面での右クリックメニュー
472
 全成長
分岐できなくなる(停止条件を満たす)まで、すべての葉ノードを分岐します。
 一段成長
ノードを分岐して、木を1レベル成長させます。
 強制分岐
ユーザが分岐変数を選択します。詳しくは後述。
 剪定
中間ノードを葉ノードに変えます。
 高さ剪定
中間ノードと同一レベルにある全てノードを葉ノードに変えます。
 自動剪定
オプション画面で指定された木の複雑係数を利用して、木の再評価を行います。
■ 強制分岐
Tree を構成する際の分岐変数は、通常、情報量規準で評価して最も良い変数が選択さ
れますが、それ以外の変数を指定して分岐させることも可能です。
図 6-133 強制分岐変数選択画面(数値変数)
473
図 6-134 強制分岐変数選択画面(カテゴリ変数)
分岐変数選択画面で変数名をクリックすると、選択された変数の分岐範囲が表示され
ます。ここに表示された条件はユーザが自由に変更することができるため、モデルの
編集機能として利用することが可能です。

カテゴリの場合
分岐数とグループごとの値を表示します。分岐数を変更することができます。
各値は、別のグループにドラッグ&ドロップして移動できます。

数値の場合
分岐点の数と分岐点を表示します。分岐数と分岐点を変更することができます。
カテゴリ変数の分岐条件については、学習データに現れない値を指定することもできま
すが、その値が指定されている群に少なくとも1件以上の値が学習データに含まれてい
なければなりません。
「詳細情報(ノード)
」をクリックすると、分岐詳細指定画面に表
示されている分岐範囲が、現在のノードにおける選択変数の範囲になります。
474
・スクリプトによる強制分岐の指定
強制分岐は、スクリプトで Decision Tree を実行する場合にも実行できます。具体的に
は、プロセスアイコンのパラメータ指定の項目に「強制分岐(ノード ID)=*****」を
追加します。分岐条件の指定方法は GUI 上の方法と同じです。ただし、<決定木全生長
>という条件を指定すると、いままでできた Tree を全葉ノードに、
「全成長」をかける
ことが可能です。
475
--スクリプト例-sys_proc(1、table、?model、 ?result); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
ルールファイル=Yes
強制分岐 1=がく長、3、-inf、10.0、22.3、inf
強制分岐 2=分岐変数名、分岐数
##強制分岐 3=<決定木全生長>
....
--
476
Tree の表示画面」の節点の表示情報の見方
【分類モデルの節点情報】
色でクラスの
割合を表示
【回帰モデルの節点情報】
(多目的変数)
477
ノード詳細チェックボックスが選択されている場合は、ノード上に詳細アイコンを表示
します。詳細アイコンには、目的変数が離散値の場合は円グラフ、連続値の場合はヒスト
グラフが表示されます。各グラフには、ノードの目的変数値を表示します。
分岐条件チェックボックスが選択されている場合は、各分岐について分岐条件を表示し
ます。
データ表示チェックボックスが選択されている場合は、データ表を表示します。
・ データ表画面
木編集画面上のノードを選択すると、そのノードに含まれるデータが表示されます。各
列のヘッダ行をクリックすると、次のメニューが表示されます。

昇順
表全体を並べかえます。各行の順序は、対象行の値に関して昇順になります。

降順
表全体を並べかえます。各行の順序は、対象行の値に関して降順になります。
478

カラム
表に表示する列を選択します。

Unlock
指定された行の Lock を解除します。

Lock
指定した列を左端に固定し、スクロール対象から外します。
479
決定木の結果
プロジェクトの処理フロー上のアイコンの結果は、次のようなテーブルになります(列数
が多いため 2 段で表示しています)
。
テーブルの各列の意味は次のようになります。
列順
列名
内容
1
No.
ユニークな通し番号(ノードと1対1対応)
2
Level
Tree 階層(ルートから、このノードまでのノー
ド数)
3
Path
トップのルートからこのノードまで経由ノード
4
親 No.
直接親ノードの No.
5
GUI 番号
GUI 画面上表示されるノードの番号
6
クラス
目的変数=カテゴリの場合は、判定のクラス名
目的変数=連続値の場合は、判定数値
7
確率
目的変数=カテゴリの場合は、判定クラスの確率
目的変数=連続値の場合は、判定数値からの分
散
8
重み
ノードに含まれるレコード数。欠損値の場合は、
各ノードに按分するので、小数となることもあ
る
9
分岐基準値
分岐方法(3 種)で選択した分岐基準の値
10
条件
末端ノードの分岐条件
480
11
分岐変数・Leaf
末端ノードの場合は、"Leaf"と表示、そうでな
ければ、その分岐変数名を表示
12
分岐数
分岐されるノードの数
13
各クラスの確率
目的変数=カテゴリの場合のみ、表示される
最右列
TreeNode.Cond.
親から末端ノードまでの全分岐条件
Frm.Root.N
(N は整数)
注意:欠損の取り扱いについて
欠損パターンで指定した値を含む列が分岐変数として選ばれた場合、まず、その変数が
欠損でないデータのみで決定木は分岐します。欠損に該当するデータは、分岐したノー
ドの数(重み)に比例して重みを配分するようにして次の分岐に進みます。
ランダムフォレストの結果
ランダムフォレストを実行すると、学習データを予測データとみなし、作成したランダム
フォレストモデルによって予測を行った結果が出力されます。アイコンの結果は次のよう
なテーブルになります。
(予測アイコンにランダムフォレストモデルをつなげて実行したと
きと同様の結果となります)
出力画面(判別モデル)
481
出力画面(回帰モデル)
決定木のモデルの出力
Decision Tree のモデルをモデルファイルとして出力することが可能です。プロジェクト
ボードを右クリック → 結果の保存 → 判別モデル(or 判別モデルアイコン) と選択する
482
と、「判別モデル」を選択した場合は外部に、「判別モデルアイコン作成」を選択した場合
はモデルアイコンとして出力することが可能です。出力したモデルファイルは、出力した
Decision Tree のアイコンとは切り離して管理することが可能となり、モデルアイコンから
「予測」アイコンに矢印をつなぐことで予測に利用することができます。
決定木のルールの出力
※ランダムフォレスト実行時は出力できません
処理フロー上の「Decision Tree」を右クリックメニューで、決定木のルールを出力する
ことができます。出力に、VAP 上で扱うデータ形式(リスト形式)と、対応するプログラ
483
ム言語(C++)のソースの形式が可能です。C++のソースで出力された.rul ファイルは、C++
の *.h ファイルと *.cpp に分割することで、
ユーザプログラムに取り込むことができます。
具 体 的 な 作 成 方 法 は 、 VAP ル ー ト フ ォ ル ダ ¥Samples¥Visual Mining
Studio¥RulesFromTree¥32(または 64)の下にある readme.txt ファイルを参照して下さい。
スクリプトによるルールテーブルの取得
Decision Tree をスクリプトから実行する場合、パラメータオプションの「ルールファイ
ル=No」を Yes に変更すると、sys_proc() 関数の第 3 の出力としてルールテーブルを得る
ことができます。次のスクリプトでは、table を学習データとし、出力として model(モ
デル)
、result(決定木の結果)、rule(ルールテーブル) が得られます。
-sys_proc(1, table, ?model, ?result, ?rule); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
ルールファイル=Yes
....
--
分岐候補の出力
※ランダムフォレスト実行時は出力できません
Tree 分岐の候補となる変数を出力することができます。スクリプトから Decision Tree
の機能を呼び出すとき、次の図のように「分岐候補出力ファイル」というパラメータを追
加します。指定する値にはファイルパスを指定します。
484
結果ファイルには、ノードごとの分岐候補が出力されます。
スクリプトによる 説明変数の重要度 の取得
Decision Tree をスクリプトから実行する場合、パラメータオプションの「変数重要度フ
ァイル=No」を Yes に変更すると、sys_proc() 関数の第 3 の出力として説明変数の重要度
を得ることができます。
重要度の使用方法の一つとして、変数選択が挙げられます。学習データから復元抽出で N
485
個のデータを生成し、各データから生成された Decision Tree モデルの重要度の平均値を
比較します。
重要度の算出方法は、目的変数がカテゴリの場合(分類モデル)と、連続変数の場合(回
帰モデル)で次のように異なります。
1.
分類モデル
各変数の重要度 f (v) 及び 各目的変数のクラスへの「貢献度 f (v, c) 」 を算出します。
D
v
学習データ
Node
決定木の全非 Leaf ノード集合
n  Node
class (n)
決定木の非 Leaf ノード
c
sp(n, v)
gain(n, v)
目的変数のクラス
説明変数
ノード n が分類されるクラス
ノード n が変数 v で分岐した子ノードの集合
分岐前と分岐後の情報量改善度合
f (v)   f (v, c)
c
f (v, c) 
2.
1
D


  m I (class (m)  c) gain (n, v) 


nNode msp ( n ,v )


回帰モデル
各変数の重要度 f (v) を算出します。
D
v
学習データ
Node
決定木の全非 Leaf ノード集合
n  Node
gain(n, v)
決定木の非 Leaf ノード
f (v ) 
説明変数
1
D
分岐前と分岐後の情報量改善度合(分散の差)
 n gain(n, v)
nNode
次のスクリプトでは、table を学習データとし、出力として model(モデル)
、result(決
定木の結果)、rivTable(変数重要度) が得られます。
-sys_proc(1, table, ?model, ?result, ?rivTable); //Decision Tree
##======== Parameter for Process Icon ========
## Decision Tree
486
function=Decision Tree
key=1
icon_name=Decision Tree
memo=Decision Tree
モデル=判別
......
変数重要度ファイル=Yes
....
--
上記結果は分類モデルの出力例で、説明変数(VariableName)に対する各変数の重要度
(Importance)と各目的変数のクラスへの貢献度(Importance.カテゴリ名) が出力されてい
ます。
なお、ランダムフォレストを実行した場合は、各変数の重要度は各決定木における変数
の重要度を合計した値となります。
決定木の印刷
※ランダムフォレスト実行時は印刷を行えません
決定木の印刷時には次の設定が可能です。

印刷親ノードを指定

線の太さ

文字の大きさ

ノードの印刷方法(1 行印刷、2 行印刷)
487
図 6-135 印刷設定画面を表示したところ
印刷親ノード設定:
ノードをクリックすることで親ノードを指定することができます。親ノードを指定する
と印刷時に親ノード以下の木構造を印刷することになります。親ノードを指定しない場合
は全木構造を印刷します。選択されたノードは水色に変化します。
線の太さ設定:
印刷時の線の太さを設定することができます。決定木の目的変数がカテゴリの場合は着
目する要素を指定することで、子ノードの線の太さを、子ノードの着目要素が含まれる割
合の大きさによって太くすることができます。目的変数が数値の場合には線の太さは一様
に変化します。
文字の大きさ:
文字の大きさを指定することで印刷時の文字の大きさを変えることができます。最大 15
まで大きくすることができます。
488
ノードの印刷方法(1 行印刷、2 行印刷):
ノードを印刷する際の印刷方法を指定します。

シングルライン

各ノードの情報が 1 行で印刷されます。

“枠を書く”にチェックを入れることで印刷時に四角の枠を書きます。
図 6-136

シングルライン印刷(左:枠なし
右:枠あり)
ダブルライン

各ノードの情報が 2 行で印刷されます。
図 6-137
ダブルライン印刷
セレクト画面:
セレクト画面ボタンを押すことで、木構造が全画面表示にされ、ノードを選択すること
ができます。
プレビュー画面:
プレビュー画面ボタンを押すことで、印刷プレビュー画面が表示されます。
6.4.23. 対話型モデル
予測モデル(分類器)を構築するためには、教師値(正解値)の付いた学習データが不
可欠です。しかし、大量の学習データに人手で教師値を付与する作業は、時に非常に煩雑
489
であり、人にとって大きな負担になります。対話型モデルでは、Active Learning 手法を用
いて、ユーザと対話を行いながら、少ない労力でより予測精度の高い分類器を構築します。
手元のデータ群に対して、一部のデータに対してのみ教師値が付与されており、残りの
データの教師値は不明(未分類)である、という状況を考えます。このとき、この残りの
データ全てに対して教師値の付与を人手で行い、それら全てのデータを用いて分類器を構
築することができれば、最も豊富なデータで学習が行えて理想的です。しかし、実際には
残りの未分類データ全てに人手で教師値を付与することは現実的ではない場合もあります。
ここで、Active Learning 手法の Uncertainly Sampling と呼ばれる考え方を用いて、次
のような手順で分類器の構築を行うことができます。
1.
まず、教師値が付与された一部のデータのみを用いて予測モデルを構築します。こ
れは、
『対話型モデル 学習』アイコンで行うことができます。
2.
作成された予測モデルを用いて残りの未分類データを予測し、それらの中で、どの
データの正解値が判明すればモデルの精度向上が見込めるかを見積もります。人手
でこの未分類データに教師値を付与するにしても、この「精度向上が見込める、そ
の見積もり度合い」が高いデータから順に教師値を与えてあげた方が、同程度の人
手作業を行うにしても効率的に予測モデルの精度向上が見込めます。
『対話型モデル 教師値付与』アイコンで、実際の教師値付与の作業を行い、新たに
設定した教師値を反映させて予測モデルを更新することができます。
また、上記 1. 及び 2. で構築した予測モデルを用いて、未知のデータに対して単に予測
を行う機能も『対話型モデル 予測』として利用できます。
学習データは、キー列によってデータの 1 件 1 件が特徴づけられる、リスト形式である
ことを前提とします。例えば「発言のキーワード群から、そのコメントが好評なのか不評
なのかを予測したい」といった場合、元々の発言の 1 件 1 件を示す ID がこの「キー列」
、
予測に用いるキーワードの情報が「説明変数列」
、予測対象のカテゴリである「好評か不評
か」が格納されている情報が「目的変数列」であると考えます。ここで、説明変数列と目
的変数列はキー列を介して別々のテーブルに存在しているような状態(図 6-138)でも、1
つのテーブルに結合されているような状態(図 6-139)でも、どちらでも問題ありません。
490
キー列 は 『発言 ID』
説明変数列 は 『キーワード』
この単位が 1 件のデータ
目的変数列 は 『評価』
対応
図 6-138 説明変数と目的変数が別々のテーブルに存在
この単位が 1 件のデータ
目的変数列 は 『評価』
キー列 は 『発言 ID』
説明変数列 は 『キーワード』
図 6-139 説明変数と目的変数が同じテーブルに存在
6.4.24. 対話型モデル 学習
「対話型モデル 学習」アイコンは、予測モデルの構築を行います。以下のデータを入力
として与えます。

説明変数 と 目的変数 が存在する、学習データ
 図 6-138 のように、説明変数 と 目的変数 が 2 つのテーブルに分かれている場
491
合はそれら両方のテーブルを入力します。図 6-139 のように 1 つのテーブルに
まとまっている場合は、そのテーブルを入力します。
図 6-138 のデータを入力する
図 6-139 のデータを入力す
例
る例
図 6-140 「対話型モデル 学習」アイコンへの入力例

「対話型モデル 学習」アイコン もしくは「対話型モデル 教師値設定」アイコン の
出力である モデルテーブル
 「対話型モデル 学習」アイコン 及び 「対話型モデル 教師値設定」アイコンは、
構築したモデルの内部情報を「モデルテーブル」として出力します。
このモデルテーブルを再度「対話型モデル 学習」アイコンの入力とすると、既
存のモデルに対して追加学習を行うことができます。
※次項「対話型モデル 学習」アイコンでの追加学習にて後述します。
□設定項目
図 6-141 対話型モデル 学習 パラメータ設定画面
◇ キー列
データの 1 件 1 件を特定するためのキー列がどの列であるかを指定します。
図 6-138 のように、
説明変数と目的変数の 2 つのテーブルを入力している場合は、
両方のテーブルに共通な列名のみがここに表示されます。
492
複数の列の組み合わせでキー列を表現することも可能です。
◇ 目的変数列
目的変数の情報が格納されている列を指定します。
図 6-138 のように、2 つのテーブルを入力している場合は、どちらのテーブルの
列を表しているのかが「Input○」の形式により○の数値で区別されます。
◇ 説明変数列
説明変数の情報が格納されている列を指定します。
図 6-138 のように、2 つのテーブルを入力している場合は、どちらのテーブルの
列を表しているのかが「Input○」の形式により○の数値で区別されます。
□出力
「対話型モデル 学習」アイコンは、モデルの情報を記述した「model」と、構築したモ
デルを用いて学習データそのものを予測した結果である「prediction」の 2 種類の情報を出
力します。
図 6-142 「対話型モデル 学習」アイコン出力テーブル
◇ モデルテーブル(テーブル名:model)
attr, word, freq の 3 列から構成される特別なテーブルで、構築されたモデルの情
報が記述されています。
このテーブルは、
「対話型モデル 学習」アイコンもしくは「対話型モデル 教師値
設定」アイコンの入力とすることで、構築したモデルに対しての追加学習、もし
くはモデルを用いた Active Learning による教師値付与を行うことができます。
また「対話型モデル 予測」アイコンで、未知のデータに対して予測を行うために
用いることができます。
※このテーブルは「対話型モデル 学習」
「対話型モデル 予測」
「対話型モデル 教
師値設定」の各アイコンで利用するためのみの情報で、Visual Mining Studio「モ
493
デリング」の他アイコンで利用することはできません。
◇ 予測結果(テーブル名:prediction)
構築したモデルを用いて、学習データ自体を予測した結果を表します。列は左か
ら、次のような構成になっています。

キー列

学習データの目的変数値(正解値)

モデルが予測した目的変数(予測値)
列名は「目的変数列名.予測」です。

目的変数のそれぞれのカテゴリに対する、予測確率
列名は「目的変数列名.カテゴリ名」です。
この予測確率が最も高いカテゴリが予測値になります。
「対話型モデル 学習」アイコンでの追加学習
対話型モデルでは、モデルの追加学習を行うことができます。追加学習とは、構築後の
モデルに対して、新規のデータの状況を反映させてモデルを修正することを指します。例
えば、昨月のデータでモデルを構築して予測に用いているが、当月分のデータが揃ったの
で当月分のデータもモデルに反映させたい‥‥といったような場合、昨月分データと当月
分データを全て揃えたデータを準備してモデル構築を一からやり直すのではなく、昨月分
データを利用して作成したモデルのみを準備して、それに当月分データの影響を追加で学
習させるというような利用方法が可能です。
また、既存のデータには出現しないような説明変数値・目的変数値が新規データで出現
するような場合にも、それらを正しく扱うことができます。昨月のデータで「発言のキー
ワード群から、そのコメントが好評なのか不評なのか」を予測した場合、昨月出現しなか
ったキーワードが当月出現していても問題ありません(既存のデータには出現しない説明
変数値が現れるような場合)
。また、昨月までは「好評と不評」だったものが、今月は「好
評と不評とどちらでもない、の 3 状態に分類する」というようになっていても大丈夫です
(既存のデータには出現しない目的変数値が現れるような場合)
。
494
初回の学習
モデル情報
追加学習
追加学習データ
図 6-143 追加学習を行う場合の配置例
この場合の配置例を図 6-143 に示します。まず先月のデータで学習を行い、そこで構築
されたモデルの情報と追加分である今月の学習データを「対話型モデル 学習」アイコンに
入力しています。
追加学習時のパラメータ設定画面を図 6-144 に示します。追加学習の際には設定項目の
各列の情報を変更することはできません。追加学習データには、初回のモデル構築時に用
いたキー列・目的変数列・説明変数列が全て揃っている必要があります。
図 6-144 対話型モデル 学習 追加学習時パラメータ設定画面
この場合も、出力は追加学習でない場合と同一の、以下の 2 つのテーブルです。
◇ モデルテーブル(テーブル名:model)
◇ 予測結果(テーブル名:prediction)
6.4.25. 対話型モデル 予測
「対話型モデル 予測」アイコンは、次の入力をもとに分類モデルによる予測を行います。

キー列に対して説明変数が存在する、予測対象データ
495

「対話型モデル 学習」アイコン もしくは「対話型モデル 教師値設定」アイコン の
出力である モデルテーブル
予測対象データには、モデル構築時と同じ列名のキー列及び説明変数列が存在している
必要があります。
「対話型モデル 学習」アイコンから得たモデル情報を用いて、検証データに対して予測
を行う場合のフローの一例を図 6-145 に示します。
モデル情報
検証データ
図 6-145 「対話型モデル 予測」アイコンへの入力例
□設定項目
図 6-146 対話型モデル 学習 パラメータ設定画面
次の情報が表示されますが、変更は不可能です。
◇ キー列
◇ 目的変数列
◇ 説明変数列
□出力
「対話型モデル 予測」アイコンは、予測した結果「prediction」を出力します。
496
図 6-147 「対話型モデル 予測」アイコン出力テーブル
◇ 予測結果(テーブル名:prediction)
構築したモデルを用いて、予測対象データの目的変数を予測した結果を表します。
列は左から、次のような構成になっています。

キー列

モデルが予測した目的変数(予測値)
列名は「目的変数列名.予測」です。

目的変数のそれぞれのカテゴリに対する、予測確率
列名は「目的変数列名.カテゴリ名」です。
この予測確率が最も高いカテゴリが予測値になります。
6.4.26. 対話型モデル 教師値設定
「対話型モデル 教師値設定」アイコンを用いて、未分類のデータに対して教師値を手動
で設定することができます。ここで、どういったデータに対して優先的に教師値を指定す
ることが望ましいかいう点を、既に構築されたモデルの情報を手掛かりに判断し、その評
価に基づいたお薦め度合いの順でこれを提示します。
「対話型モデル 教師値設定」アイコンは、次の入力テーブルを受け付けます。

キー列に対して説明変数が存在する、未分類のデータ

「対話型モデル 学習」アイコン もしくは「対話型モデル 教師値設定」アイコン の
出力である モデルテーブル
未分類データには、モデル構築時と同じ列名のキー列及び説明変数列が存在している必
要があります。「対話型モデル 学習」アイコンから得たモデル情報を用いて、検証データ
に対して教師値付与を行う場合のフローの一例を図 6-148 に示します。
497
モデル情報
未分類のデータ
図 6-148 「対話型モデル 教師値設定」アイコンへの入力例
□設定項目
目的変数の値の候補
ここから選んで設定可能
※判断に迷う場合は
[下] ボタンで飛ばしてよい
目的変数列
ここに、適切な教師値を
設定していく
図 6-149 対話型モデル 教師値設定 設定画面
上部には次の情報が表示されますが、変更は不可能です。
◇ キー列
◇ 目的変数列
◇ 説明変数列
498
◇ 教師値設定 表
次の列名を持つ表が表示されます。

キー列

説明変数列の内容

目的変数列の内容
目的変数列の内容は、最初の起動時は全て空白です。ここに、適切な正解となる
教師値を人手で判断して埋めていきます。画面右側の教師値候補リストから選択
することで決定しますが、候補リストに存在しない新たな選択肢を設けたい場合
は、直接表のセルに値を入力することができます。
この表は、入力データのキー列の並び順ではなく、Uncertainly Sampling と呼ば
れる考え方に基づき「教師値を指定してあげることによって、精度向上が見込め
る、その度合い」を評価したお薦め順に並びかえられています。この表の教師値
を全て埋める必要はなく、表の先頭から可能な範囲まで教師値を設定していくこ
とが効率的です。判断に迷う場合は、空欄のまま未設定という扱いで飛ばしてお
くことができます。空欄のデータは、学習に用いられません。
◇ 教師値の候補リスト
ここから、正解となる値を選択していくことで、教師値を指定していくことがで
きます。ここで選択を行うと、教師値設定表 の現在位置が順に移動していき新し
いセルが選択されます。[上] [下] ボタンで、この現在位置を操作することができ
ます。
◇ お薦め順位決定規準
教師値設定 表は「教師値を指定してあげることによって、精度向上が見込める、
その度合い」を評価したお薦め順に並びかえられていますが、このお薦め順位の
評価方法を次の 3 種類から選択します。初期設定は Margin Sampling です。

Least Confident

Margin Sampling

Entropy
◇ [< 前の 20 件] [次の 20 件 >] ボタン
教師値設定表 の 1 画面では、20 件分の未分類データを表示します。次の 20 件、
前の 20 件、をこのボタンで送ることができます。
□出力
「対話型モデル 教師値設定」アイコンは、モデルの情報を記述した「model」と、構築
したモデルを用いて学習データそのものを予測した結果である「prediction」の 2 種類の情
報を出力します。
499
図 6-150 「対話型モデル 学習」アイコン出力テーブル
◇ モデルテーブル(テーブル名:model)
構築されたモデルの情報が記述されています。入力としたモデルの情報に加えて、
手動で教師値の付与を行った結果が反映されています。
「対話型モデル 学習」アイコンで出力されるものと同種の情報です。「対話型モ
デル 学習」の項をご参照ください。
◇ 予測結果(テーブル名:prediction)
構築したモデルを用いて、未分類データに対して予測を行った結果を表します。
列は左から、次のような構成になっています。

キー列

学習データの目的変数値(人手で付与した正解値)

モデルが予測した目的変数(予測値)
列名は「目的変数列名.予測」です。

目的変数のそれぞれのカテゴリに対する、予測確率
列名は「目的変数列名.カテゴリ名」です。
この予測確率が最も高いカテゴリが予測値になります。
500
6.5. クラスタ分析
クラスタ分析とは、性質の違うデータの集まりから、似たような性質をもつものを集め、
それらをクラスタ(塊)として分類する方法です。
6.5.1. BIRCH
BIRCH と呼ばれるデータ圧縮法を用いてデータを圧縮し、圧縮されたデータに対してク
ラスタリングを行います。圧縮されたデータに対するクラスタリング法として K-Means 法
を使用しています。
図 6-151 BIRCH パラメータ設定画面
□設定項目
◇ 対象列名
クラスタを作成する時に対象となる列名を指定します。
501
◇ 距離計算方法
クラスタとデータとの距離を計算する方法を指定します。
◇ 閾値
データを圧縮する時の閾値を指定します。
◇ クラスタの個数
データを分割する個数を指定します。
◇ 規格化オプション
チェックすると、入力データを規格化します。規格化とは列ごとに値が 0 から 1 に
なるように線形変換することです。
□結果
BIRCH の結果ファイルは以下の通りです。
図 6-152 BIRCH 結果ファイル result
種類列から花びら幅列までは入力ファイルの内容です。ClusterID 列は分割されたクラス
タの識別番号です。
図 6-153 BIRCH 結果ファイル cluster info
cluster info テーブルは、各クラスタの情報についての内容です。id 列は clusterID に対
502
応します。size は各クラスタに属するデータの数、種類.Setosa 列から花びら幅列はクラス
タの中心値、radius は一定以上の濃度を持つクラスタの半径、residual は残差を表します。
6.5.2. K-means 法
K-Means 法を用いてデータをクラスタ化します。K-Means 法は Partitioning Method と
呼ばれるクラスタリング法で、データを k 個に分割します。
図 6-154
K-means 法パラメータ設定画面
□設定項目
◇ 対象列名
クラスタを作成する時に、対象となる列名を指定します。
◇ 距離計算関数
クラスタとの距離を計算する時に使用する距離関数を以下の中から指定します。
・ Manhattan
・ Euclid
・ Cosine
・ Dynamic :
DP(dynamic programming) を用いて非線形なアラインメントを
行い、距離を計算する
503
・ Cosine (spherical K-Means) : 半径1の超球面上にデータを正規化した上で
Cosine 距離を用いる。
・ Manhattan
(K-Median) : Manhattan 距離を用いる。また、Centroid の
計算として中央値(Median)を用いる。
◇ クラスタの個数
データを分割する個数を指定します。
◇ 繰り返し最大数
クラスタリングの学習の繰り返し最大数を指定します。
◇ 規格化オプション
チェックすると、入力データを規格化します。ここで規格化とは、列ごとに値が 0
から 1 になるように線形変換することを指します。
◇ 乱数の初期値
乱数の初期値を設定します。
□結果
K-Means 法の分析結果は以下の通りです。
図 6-155
K-Means 法 result
種類、がく長、がく幅、花びら長、花びら幅は入力ファイルの内容です。ClusterID は分
割されたクラスタの識別番号です。
504
図 6-156
K-Means 法 cluster info
id は result の Cluster ID、size はクラスタを構成する要素の数、がく長、がく幅、花び
ら長、花びら幅はクラスタの中心値、residual は中心値との残差の絶対値の総和を表して
います。
6.5.3. OPTICS
OPTICS と呼ばれる方法を用いてデータのクラスタリングを行います。OPTICS では、
データを多次元空間内のデータと見なし、密度の濃い領域をクラスタと見なします。その
為、K-Means 法等の Partitioning Method と違い、複雑な形状のクラスタを識別できます。
505
図 6-157
OPTICS パラメータ設定画面
□設定項目
◇ 対象列名
クラスタ分析の対象となる列名を指定します。
◇ 距離計算方法
データ間の距離を計算する方法を指定します。
◇ 近傍値
クラスタと見なす密度を測る距離を指定します。
◇ 最小データ数
クラスタと見なす最小密度を計算する為のデータ数を指定します。
◇ 閾値
密度の濃い領域を繋げて一つのクラスタとみなす時の、距離の閾値を指定します。
◇ 規格化オプション
チェックすると、入力データを規格化します。ここで規格化とは列ごとに値が 0 か
ら 1 になるように線形変換することです。
506
□結果
OPTICS の結果ファイルは以下の通りです。
図 6-158
OPTICS 結果ファイル cluster File
種類、がく長、がく幅、花びら長、花びら幅は入力ファイルの内容です。ClusterID はク
ラスタの識別番号です。
図 6-159
OPTICS 結果ファイル : orderd File
507
id は 入 力 デ ー タ の 識 別 子 で 、 0 か ら 始 ま り ま す 。 reachability は そ の デ ー タ の
reachability-distance、core distance はそのデータの core-distance、clusterID はクラスタ
の識別番号です。reachability を出力データの順に表示すると、以下のようになります。縦
軸は reachability、横軸は出力ファイルのデータ順です。この図から、データは 2 つのクラ
スタが存在している事がわかります。
図 6-160
reachability とクラスタの関係
6.5.4. 自己組織化マップ
出力層が 2 次元の配置をしている階層型の Neural Network を用いて競合学習を行い、
ベクトル量子化を行います。
508
図 6-161 自己組織化マップパラメータ設定画面
□設定項目
◇ 対象列名
分析の対象になる列名を指定します。
◇ マップサイズ
マップの大きさを指定します。
◇ Lattice タイプ
マップのタイプを Rectangular、Hexagonal から選択します。
◇ マップ初期化方法
マップの初期化方法を Random、Linear から選択します。
◇ 距離関数
距離の計算方法を Manhattan、Euclid から選択します。
◇ 近傍系
近傍系を Bubble、Gaussian の中から選択します。
◇ 近傍範囲
近傍範囲を指定します。
509
◇ 繰り返し最大数
繰り返しの最大数を指定します。
◇ 近傍関数のパラメータ
近傍系に Gaussian を選択したときのパラメータとして分散を指定します。
◇ 規格化を行う
データを規格化するかどうかを指定します。ここで言う規格化とは、列ごとに値が 0
から 1 になるように線形変換することです。
□結果
自己組織化マップの出力ファイルは以下の通りです。
図 6-162 自己組織化マップ : result
種類、がく長、がく幅、花びら長、花びら幅は入力ファイルの内容です。PositionX、
PositionY はマップ上の座標です。
510
図 6-163 自己組織化マップ : map
PositonX、PositionY はマップの座標を表します。データ数はそのマップ上の Lattice に
あるデータの数を表します。全データ.距離は全データでの周りの Lattice との平均距離を
表し、がく長.距離はがく長での周りの Lattice との平均距離を表します。がく長は Lattice
のベクトルのがく長成分を表します。
511
図 6-164 自己組織化マップ
表示軸では近傍の Vector との距離を計算する軸を選択します。マップのパターンが似て
いる軸は関連性のある軸であることがわかります。表示ラベルでは、Map 上の Vector を代
表する値をどの軸で表示するかを選択します。ラベルの色、マップの色で、ラベルやマッ
プの色を変えることができます。再計算では現在の状態を初期値にして再計算を行うこと
ができます。
512
図 6-165 表示軸にクラスタ指定
表示軸にクラスタを指定した場合には、似たものを同じ色で表現します。クラスタ数を変
えるには、マップ表示画面の上にあるスライダーを動かして調節します。
6.5.5. ネットワーク階層化
ネットワーク階層化は、要素間の関連性が類似度(たとえば、アソシエーション分析の
信頼度)という形で与えられたデータから、その要素を Node とし、その類似度を Link の
強さとする Network とみなし、Network をクラスタリングします.クラスタリングは階層
型クラスタリングを行います。
513
図 6-166 ネットワーク階層化
514
設定画面
□設定項目
◇ 処理方法
クラスタリングの手法を以下から指定します。
・ 最近隣法
・ 最遠隣法
・ 中心法
・ 平均法
・ メジアン法
・ Ward 法
・ 最小全域木
・ Modularity
◇ 閾値
Link の強さの最小値を設定します.
◇ クラス数
クラスの数を指定します.
◇ 対象列 1
Node となる列を指定します.
◇ 対象列 2
Node となる列を指定します.
◇ 類似度
ノード間の Link の強さを表す数値列を指定します.
出力データは Tree データと Partition データです。それぞれ以下のようになります。Tree
データはノード間のリンク情報をあらわし、Partition データはクラスタ情報をあらわしま
す。
515
図 6-167
Tree データ
図 6-168 Partition データ
516
出力画面は下図のようになります.
この画面上では入力された Network のリンクの様子と階層型クラスタリングの結果を木
構造で表した様子を表示することが可能です。また、階層型クラスタリングの結果を用い、
クラスタ数を変えたときの様子をノードの色の違いで見ることができます。
6.5.6. One Class SVM
Support Vector Machine(SVM)を用いて外れ値の検出を行います。この SVM は通常
の SVM と違い教師値はありません。この手法は多次元空間上でのデータの相互の距離関係
を把握した上で総合的に外れ値を判断します。SVM で使われているカーネルトリックとい
う手法を用いることで、データが複雑な形状の分布をしている場合であっても、外れ値を
検出することが可能です。
517
図 6-169
One Class SVM パラメータ設定画面
□設定項目
◇ カーネル関数
多次元 Feature Space での Kernel 関数を以下から指定します。
・ Linear
・ Gaussian
・ Polynomial
・ Sigmoid
◇ カーネル関数のパラメータ
カーネル関数のパラメータを以下から指定します。
・ Linear の場合は、指定できません。
・ Gaussian の場合は、分散 σ2
・ Polynomial の場合は、多項式の次数 d
・ Sigmoid の場合は、Threshold θ
◇ ν値
support vector の数をコントロールするパラメータを設定します。この値は、実際に外
れ値として検出されるデータ数の割合の上限となります。つまり 150 行のデータに対
してν= 0.1 と設定した場合、検出される外れ値の個数の上限は 15 行となります。
518
□ 結果
One Class SVM の実行結果は以下の通りです。
「外れ値」が False となっている行が外
れ値と判定された行です。このアイコンでは外れ値の除去は行いません。実際の除去はフ
ィルタリングアイコンなどを利用してください。
図 6-170
One Class SVM 実行結果
モデルとして One Class SVM を利用する
One Class SVM はモデルとして利用可能です。つまり One Class SVM アイコンで外れ値
の傾向を分析しておき、この分析の結果を別のデータに適用することが可能です。
6.5.7. One Class SVM 判定
One Class SVM で作成したモデルを用いて外れ値の検出を行います。One Class SVM 判
定アイコンは、次の 2 つのデータを入力します。

One Class SVM のモデル

外れ値検出をしたいデータ
パラメータ設定は特に必要なく、実行すると外れ値の判定結果が出力されます。True で
あればデータ集合に含まれる点で、
False であれば外れ値です。SVM 出力は One Class SVM
519
の出力を表しています。
図 6-171
One Class SVM 判定
実行結果
6.5.8. 階層型クラスタリング
擬集型の階層型クラスタリングを行います。このアルゴリズムでは、最初の状態ではデ
ータはすべて独立したクラスタであるとみなし、距離の近いものからクラスタをマージし
ていき、全てのデータが一つのクラスタにマージされるまで繰り返します。階層型クラス
タリングのパラメータ入力画面は以下のようになります。
520
図 6-172 階層型クラスタリング パラメータ設定画面
521
□設定項目
◇ 対象列名
分析対象となる列を指定します。
◇ 距離計算方法
距離を計算する方法を指定します。
1. Manhattan
2. Euclid
3. Cosine
4. Dynamic
◇ 分析方法
クラスタ間の距離の計算方法を指定します。
1. 最近隣法
2. 最遠隣法
3. 中心法
4. 平均法
5. メジアン法
6. Ward 法
7. 最小全域木
◇ クラスタ数
クラスタの数を指定します。
◇ 閾値
閾値以上の距離のデータにはクラスタリングを行いません。
522
□結果
出力データは Tree データと Partition データ、非類似度データです。それぞれ以下のよ
うになります。
Tree データはノード間のリンク情報(ノード間の距離)をあらわし、
Partition
データはクラスタ情報をあらわします。非類似度データはデータ間の距離を表します。
図 6-173 Tree データ(左)と Partition データ(右)
523
図 6-174 非類似度データ
階層型クラスタリングの結果はデンドログラムで表示されます。
図 6-175 デンドログラム表示
524
6.5.9. Cluster Validation
クラスタリングの結果を評価します。クラスタリングとは、データに潜む構造を取り出
すことですが、これはデータの特徴を少数のテンプレートを用いて表現するとも言えます。
この様な立場からクラスタを評価しますと、クラスタはいかに情報損失を少なく元のデー
タを再現できているかで評価できるということになります。その為、分散などの指標を用
いて評価することになりますが、分散だけでは単純すぎるため、クラスタ数が異なる場合
の比較が上手く出来ません。クラスタリングの結果を評価する指標には大きく Internal と
呼ばれるものと External と呼ばれるものがあります。Internal とは、クラスタリングの結
果(クラスタ ID)のみを用いてクラスタリングを評価することで、External とは、クラスタ
リングの結果以外のクラス情報を用いてクラスタリングの結果を評価する方法です。
Internal な指標にも幾つかのカテゴリが存在しますが、大きく分けると以下の3つにな
ります。

Compactness
クラスタリングの結果、コンパクトなクラスが出来たかどうかで評価します。評
価指標には intra-cluster を用います。

Connectedness
近くのデータが同一のクラスタに属するかという conectedness の概念を用いて評
価します。この指標は言ってみれば密度ベースのクラスタリングの評価のような
ものです。

Separation
個々のクラス同士が上手く分かれているかどうかで評価する指標です。これは
inter-cluster を用いて評価することになります。クラスタを評価する際に使用する
対象列、Validation Index、距離計算方法はユーザが指定します。
525
図 6-176 Cluster Validation パラメータ設定画面
設定項目
項目
説明
Validation Index
クラスタの評価指標を以下の中から選択します。
Calinski,Hartigan,Ratkowsky,BallHall,
Scott,Marriot,Dunn,DB,CIndex,Silhouette,Likelihood
Intra Cluster
クラスタ内の距離計算方法を以下の中から選択します。
Complete,Average,Centroid
Inter Cluster
クラスタ間の距離計算方法を以下の中から選択します。
Single,Complete,Average,Centroid,AveToCenter,Hausdorff
Distance
距離計算方法を以下の中から選択します。
Manhattan,Euclid,Cosine
規格化
規格化を行うかどうか選択します。規格化とは列ごとに値が 0
から 1 になるように線形変換することです。
クラスタ番号列
クラスタ ID が振られている列を指定します。
対象列名
分析の対象となる列には列選択にチェックを入れます。
526
出力結果
指標の計算結果が出力されます。
図 6-177 Cluster Validation 結果
6.5.10. Dyadic Soft Clustering
■ 内容
Dyadic Soft Clustering(二項ソフトクラスタリング)では、2 つの属性の共起確率(同
時に出現する確率)を用いたクラスタリングを行います。対象となるデータは、購入履歴(顧
客、商品、購入数)、または、文書ごとの単語使用回数(文書、単語、出現回数)のような、
ID が 2 列と出現頻度を表す列で構成されるデータになります。一般的に各属性の種類数が
数万を超えるような膨大な場合では 2 つの属性についての情報を要約することはとても難
しいといえます3。本分析手法を用いて、共起確率から得られるクラスタごとに 2 つの属性
の特徴を調べることにより、データの構成要素を理解することができます。例えば、購入
履歴を対象にする場合には、2 つの属性は「個人」と「商品」となり、その間の共起確率は
「購入数」から算出されます。ある家具屋での購入履歴を用いてクラスタリングした結果
を分析すると、
「レトロ好き」
「モノトーン、1 人暮らし」
「暖色、子どもがいる世帯」など
の属性にわかれるかもしれません。このような属性の意味付けは分析する人が行う必要が
ありますが、ある顧客、または、ある商品が各グループに属する確率を算出することがで
きるので、それらを用いて特徴づけを行うことができます。
また、二項ソフトクラスタリングではクラスタの数を指定する必要があります。扱うデ
ータによって適切なクラスタの数は異なるので、適当な結果が得られるまで試すことにな
ります。特徴付けが行える場合は、クラスタリングは上手くできたと考えます。特徴付け
が上手くいかない場合には、クラスタの数を変更する他に、属性の情報を加えて、クラス
タリングの特性を見直す必要があるかもしれません。家具屋の例における「1 人暮らし」や、
「子どものいる世帯」などは、顧客の情報がないと発見できない特徴です。
二項ソフトクラスタリングの結果はレコメンデーションに応用することができます。購
3
通常のクラスタリング手法では、次元数が大きいとクラスタリングは上手くいきません。
また、購入履歴などは疎行列となるため、さらに困難となることがよくあります。
527
入履歴の例では、顧客に対して割り当てられたクラスタを隠れた属性と考えることで、同
じ隠れ属性に属する他の人達が購入している商品を推薦することができることになります。
次に具体的に数式での表現を紹介します。
2 つの属性を X  { X 1 , X 2 ,... X N } 、 Y  {Y1 , Y2 ,...YM } 、クラスタを Z  {Z1 , Z 2 ,...Z L } 、
X n と Ym が同時に起こる確率(共起確率)を P( X n , Ym ) としたとき、同時に起こるという
現象はクラスタ Z によって説明されるとします。クラスタ Z k に属すると仮定したときの
X n が起こる確率(条件付き確率)を P( X n | Z k ) とします。同様に、クラスタ Z k に属する
と仮定したときの Ym が起こる確率を P(Ym | Z k ) とします。これらをクラスタ Z k が現れる
確率 P( Z k ) を重みとして加算したもの
L
Pˆ ( X n , Ym )   P( Z k ) P( X n | Z k ) P(Ym | Z k )
k 1
によって、共起確率 P( X n , Ym ) を表現することが二項ソフトクラスタリングです4。共起確
率 P( X n , Ym ) はスコア列を用いて算出されます。 Pˆ ( X n , Ym ) による当てはまりが良くなる
ように P( Z k ) 、 P( X n | Z k ) 、 P(Ym | Z k ) は決定されます。
次に設定する学習パラメータについて紹介します。
二項ソフトクラスタリングでは、 P( Z k ) 、 P( X n | Z k ) 、 P(Ym | Z k ) に、はじめにランダ
ムな値を初期値として設定し、更新するアルゴリズムを採用しました。より詳細には、ア
ルゴリズムは、2 段階で構成されます。前段階では、ある局所解へ向い、後段階では、より
良い局所解を探索します。学習パラメータとして、学習回数と繰返し最大数の2つを設定
することになります。学習回数とは前段階と後段階の繰返し回数を指定し、繰返し最大数
では、2 段階の処理を繰り返す回数を指定します。両者の関係は以下の図のようになります。
図 6-178 二項クラスタリングの学習プロセス
このように 1 レコード(ここでは、X または Y のこと)ごとに属するクラスタが確率として
与えられるクラスタリングをソフトクラスタリングと呼びます。また、1 レコードごとに属
するクラスタが1つに決定されるクラスタリングをハードクラスタリングと呼びます。
4
528
初期値によって収束先(得られるクラスタ)が異なるために、初期値を複数用意して試
し、最良のものを選択することでより良いモデルを得ることができます。比較候補数を設
定することで、比較候補数まで初期値を変更して学習を繰り返します。
比較候補数から最良解を選択するときに評価関数を用います。評価関数は
1
NM
 | P( X
n
, Ym )  Pˆ ( X n , Ym ) | 2
n,m
になります。この計算量は NM =(属性 X の種類数×属性 Y の種類数)に比例するため、大規
模データにおいてはかなりの計算コストになることが予想されます。そのため、より計算
コストが軽い近似評価を導入しました。近似評価では、P( X n , Ym ) が 0 ではない部分のみを
用いて評価します。よって近似評価では、本来評価すべきものを部分的に評価することに
なります。
■ 画面
図 6-179 二項ソフトクラスタリングの設定画面
529
■ 設定項目
X列
対象となる第 1 のキー列指定(整数または文字列)
Y列
対象となる第 2 のキー列指定(整数または文字列)
スコア列
X 列と Y 列の共起の度合を表す列を指定
(整数または実数)
隠れ変数(Z)の
クラスタ数
数
学習回数
1つの更新アルゴリズムの繰り返す回数
繰返し最大数
学習全体を繰返し行う回数。
比較候補数
ランダムな初期値を要する数、1つの初期値に対して、学習回数
×繰返し数分の学習を行う。
X に対する推薦
P(Y|X)の高い順に上位を出力する。出力するランキングのサイ
ズを指定する。
近似評価
近似評価では対象となる疎行列の 0 ではない要素のみで評価す
る。小規模なデータの場合は近似評価を用いる必要はありませ
ん。
乱数シード値指
最適化アルゴリズムの初期値を与える乱数のシードを指定する。
定
比較候補数が 2 以上の場合には乱数の指定は無効となる。
オンメモリ実行
オンメモリで計算を行う。チェックを外すと、オンディスクで実
行する。オンメモリ実行の方が高速である。オンディスクでの実
行は遅くなるが、大きなデータでも実行することができる。
並列実行コア数
並列処理行うコア数を指定する。オンディスクでの実行の場合は
並列処理にはならない。
出力制限
出力テーブルをフィルタする。チェックを入れると出力制限のパ
ラメータ nTopZX,nTopZY の入力欄が表示される。
nTopZX
出力制限のパラメータ。-1 または 1~隠れ変数の数の間の整数を
指定する。X ごとに p(Z|X)の値の大きい隠れ変数を上位 nTopZX
個までを出力する。つまり、関連性の高い隠れ変数に絞って出力
することができる。省略した場合、隠れ変数の数が設定される。
大きいデータに対応するためのオプション。-1 を指定すると隠れ
変数の数と同じ値を指定する。
nTopZY
出力制限のパラメータ。-1 または 1~隠れ変数の数の間の整数を
指定する。Y ごとに p(Z|Y)の値の大きい隠れ変数を上位 nTopZY
個までを出力する。つまり、関連性の高い隠れ変数に絞って出力
することができる。省略した場合、隠れ変数の数が設定される。
大きいデータに対応するためのオプション。-1 を指定すると隠れ
530
変数の数と同じ値を指定する。
■ 出力
□出力テーブル
出力されるテーブルの名前は pZX、pZY、pXZ、pYZ、pZ、crossTable、parameter、
pYX になります。pYX はオプションの「X に対する推薦」をチェックした場合のみ出力さ
れます。以下、順に出力テーブルについて説明します。出力例は X 列を「ID 番号」
、Y 列
を「商品名」
、スコア列を「数量」とした場合となります。出力テーブルの列名は設定によ
り変更します。
1.
pZX
出力テーブルのサンプルは以下になります。
図 6-180 出力サンプル pZX
第 1 列の列名は X 列に指定した列名となります。第 2 列に、クラスタ ID、第 3 列に X(こ
こでは ID 番号)が Z に属する確率 P( Z k | X n ) が出力されます。上記の例では、1 行目は ID
番号が 1 の人はクラスタ Z5 に属する確率が 1.0 であり、6 行目は ID 番号が 10 の人はクラ
スタ Z2 に属する確率が 0.5385 であることを示しています。
「Rank」という列では X ごと
に属する確率が高いクラスタのランキングを出力します。Rank の値が 1 のデータのみを用
いるとハードクラスタリングの結果を得ることができます。
2.
pZY
出力テーブルのサンプルは以下になります。
531
図 6-181 出力サンプル pZY
第 1 列の列名は Y 列に指定した列名となります。第 2 列にクラスタ ID、第 3 列に Y(こ
こでは商品名)が Z に属する確率 P( Z k | Ym ) が出力されます。
「Rank」という列では Y ごと
に属する確率が高いクラスタのランキングを出力します。Rank の値が 1 のデータのみを用
いるとハードクラスタリングの結果を得ることができます。
3.
pXZ
出力テーブルのサンプルは以下になります。
図 6-182 出力サンプル pXZ
第 1 列の列名は X 列に指定した列名となります。第 2 列にクラスタ ID、第 3 列にクラス
タ Z k の中で X n が出現する確率 P( X n | Z k ) が出力されます。第 4 列にクラスタ Z k ごとの確
率 P( X n | Z k ) のランキングが出力されます。P( X n | Z k ) を用いると Z k がどのような構成で
作られているかを確認することができます。
4.
pYZ
出力テーブルのサンプルは以下になります。
図 6-183 出力 pYZ
第 1 列の列名は Y 列に指定した列名となります。第 2 列にクラスタ ID、第 3 列にクラス
タ Z k の中で X n が出現する確率 P(Ym | Z k ) が出力されます。第 4 列にクラスタ Z k ごとの確
率 P(Ym | Z k ) のランキングが出力されます。
532
5.
pZ
出力テーブルのサンプルは以下になります。
図 6-184 出力サンプル pZ
これは隠れ変数 Z k が出現する確率を表します。
6.
crossTable
出力テーブルのサンプルは以下になります。
図 6-185 出力サンプル crossTable
crossTable は二項ソフトクラスタリングの評価に用います。crossTable は pZX で得られ
た X とクラスタ ID の関係、pZY で得られた Y とクラスタ ID の関係を元のデータ(X 列、Y
列、スコア列)とマージして 2 つのクラスタ ID をキーとしてスコア列を集計(合計)した結果
となります。第 1 列の列名は X 列に指定した列名に接頭辞として、
「Z.」がついたものにな
ります。第 2 列の列名は Y 列に指定した列名に接頭辞として、
「Z.」がついたものになりま
す。第 3 列の列名はスコア列に指定した列名に「.合計」が接尾語としてついた列名となり
ます。
下図はデータ&グラフビューアイコンを用いてバブルチャートを作成したものです。クラ
スタリングが成功している場合には、左下と右上を結ぶ対角線上のバブルが大きくなりま
す。
533
図 6-186
7.
crossTable の可視化
parameter
出力テーブルのサンプルは以下になります。
図 6-187 出力サンプル(列数が多いので、2 段で表示) parameter
3つの評価値と学習に用いたパラメータが出力されます。doInHDD は 0 の場合オンメモリ
実行、1 の場合オンディスクの実行を意味します。3つの評価値は X,Y の出現頻度 n( X , Y )
(スコア列の値)と、同時確率分布 p( X , Y ) 、2 項ソフトクラスタリングの結果から再構成し
た同時確率分布 p' ( X , Y ) から算出されます。具体的には以下の評価値が算出されます。
534
評価値.2 乗誤差
評価値 
1
N
 ( p( X , Y )  p' ( X , Y ))
2
X ,Y
N :入力テーブルの行数
全件評価の場合、すべての X,Y について和をとる。近
似評価の場合、入力テーブブルに存在する X,Y の組合
せについて和をとる。小さい方が良い。
評価値.KL 情報量
評価値 
p( X , Y )
 p( X , Y ) log( p' ( X , Y ) )
X ,Y
和は p( X , Y )  0 かつ p' ( X , Y )  0 となる X,Y の組
合せについてとる。小さいほうが良い
評価値.AIC
評価値
  n( X , Y ) log( p( X , Y ))  nZ (nX  nY  1)  1
X ,Y
和は p( X , Y )  0 かつ n( X , Y )  0 となる X,Y の組合
せについてとる。小さい方が良い。
8.
pYX
pYX はオプションの「X に対する推薦」をチェックした場合のみ出力されます。
図 6-188 出力サンプル pYX
二項ソフトクラスタリングの結果を用いて推薦を行います。次の式を用いて X ごとに Y
が起こる確率 P(Ym | X n ) を計算し、確率の高い順に指定した順位まで出力します。
P(Ym | X n )   P(Ym | Z k ) P( Z k | X n )
k
出力サンプルでは X 列の「ID 番号」ごとに「商品名」をランキングしています。例えば、
ID 番号が 1 の顧客ではパン、乳製品、一般魚の順で買っていく可能性が高いということに
なります。
535
6.6. アソシエーション分析
アソシエーション分析とは、アソシエーションルールと呼ばれる事象間のつながりの強
さに関する規則を知識として発見する分析です。最も代表的なものはスーパーマーケット
の POS データを用いた併売分析です。
6.6.1. アソシエーション分析
アソシエーション分析では、アソシエーションルールを抽出します。分析には、パラメ
ータ設定とオプション設定が必要です。パラメータ設定は以下の通りです。
536
図 6-189 アソシエーション分析
パラメータ設定画面
□設定項目
◇ 最低サポート
ルールとして抽出する最低のサポートを%で指定します。
◇ 最低信頼度
ルールとして抽出する最低の信頼度を%で指定します。
◇ ルールの長さ
抽出するルールの最大の長さを指定します。
◇ Lift
抽出するルールの最低 Lift を指定します。
◇ Conviction
抽出するルールの最低 Conviction を指定します。
◇ 対象列名
ルール探索の対象となる列名を指定します。
◇ キー列
同一内容のものを同じレコードと見なす列を指定します。
◇ 親子関係
データに階層構造が有った場合の親子関係を指定します。キー・親子関係の設定の
537
テーブルにおいて、子の行の親子関係の列に親となる列名を指定します。
◇ 出力オプション
出力の前提、結論の内容に付けるオプションを指定します。なし、列番号、列名の
いずれかを指定します。
列のキーの指定は特定の形式のデータに対して必要となります。例えば、スーパーの買
物レシートデータが、一回の買物で、複数の商品を購入した場合、同じレシート番号が複
数データ行にまたがる場合、一つのレシート番号を一つのデータのまとまりと見なしたい
場合は、
「レシート番号」列をキーとして指定します。また、列間の親子関係を概念上の包
含関係にある場合は指定します。例えば、商品分類では、
「食品」と「牛乳」では、通常「牛
乳」は「食品」に属しますので、
「食品」の対応する列を「牛乳」に対応する列の“親”列
と指定します。
□結果
アソシエーション分析の結果ファイルは以下の通りです。
図 6-190
アソシエーション分析結果ファイル
前提、結論、信頼度、サポート、Lift、Conviction はアソシエーションルールの前提と結
論の間の、信頼度、サポート、Lift、Conviction を表します。ルールは信頼度の大きい順に
出力されます。サポート、信頼度、Lift、Conviction の定義は以下の通りです。
・サポート(出現率、支持度)
サポートは、前提 A と結論 B が両方とも登場するレコードの割合を表します。データ全
体に対し、ルールが出現する割合といえます。
Support (A→B)
=
(A、B を同時に満たすレコード件数) / (全体件数)
538
・信頼度(Confidence)
信頼度は、前提 A を満たすレコードの内、結論 B を満たすレコードの割合を表します。
前提 A が起きたときに結論 B が起きる条件付き確率といえます。
Confidence(A→B)
=
Support (A→B) / Support (A)
ただし、Support(A)
=
(A の登場するレコード件数) / (全体件数)
・Lift(改善度)
Lift は、前提 A、結論 B に関する信頼度を、前提なしの結論 B についての信頼度で割っ
たものです。A とは無関係に B が起こらないという指標になります。大きい値であれば、
A と B は同時に発生する関係にあるといえます。また、A と B が独立である場合、Lift
の値は 1 になります。
Lift (A→B)
=
Confidence(A→B) / Support(B)
=
Support (A→B) / (Support (A) ×Support (B))
・Conviction(確信度)
Conviction は、前提のサポートと結論以外のサポートの積を、ルール「前提→結論以外」
のサポートで割った値です。前提を A、結論を B とし、結論以外の事象を B’としたと場
合、
Conviction(A→B)
=
Support(A) × Support(B’) / Support(A→B’)
=
Support(B’) / Confidence(A→B’)
=
(1 – Support(B)) / (1 – Confidence(A→B))
となります。A→B というルールが間違った予測をしてしまわないかどうかの指標になり
ます。Conviction が大きい値であれば、前提 A であるときに結論 B ではないということ
が少なくなります。Lift と異なり、前提と結論を入れ替えると値が変わります。
6.6.2. インタラクティブルール分析
インタラクティブルール分析では、結論を指定し前提を対話的に探索する事でアソシエ
ーションルールを抽出します。パラメータ画面のオプションは、キー列及び概念上親子関
連列の指定を行います(
「6.6.1 アソシエーション分析」を参照)。
539
図 6-191
インタラクティブルール分析パラメータ設定画面
図 6-192 インタラクティブルール分析
540
対話的ルール探索画面
□設定項目
◇ 最低サポート
抽出するルールの最低サポートを%で指定します。
◇ 最低信頼
抽出するルールの最低信頼度を%で指定します。
◇ Lift
抽出するルールの最低 Lift を指定します。
◇ Conviction
抽出するルールの最低 Conviction を指定します。
◇ 選び出す数
抽出するルールの数を指定します。抽出されるルールの数は、信頼度の大きいほう
から、指定された選び出す数です。
◇ 列名、項目名
結論となる列名と項目名を指定します。
◇ 前提
指定された結論を持つルールで、最低サポートなどの条件を満たす前提を信頼度の
大きい順に表示しています。
□結果
インタラクティブルール分析の結果ファイルは以下の通りです。
図 6-193
インタラクティブルール分析結果ファイル
前提、結論、最低サポート、最低信頼度、Lift、Conviction はアソシエーションルールの
前提、結論、最低サポート、最低信頼度、Lift、Conviction を表します。これらの値の詳細
な意味に関しては技術資料を参照してください。
541
6.6.3. 関連性ダイアグラム分析
指定したアイテム間の信頼度、サポート、Lift、Conviction を計算します。複数アイテム
をまとめて一つのアイテムとして指定する事も可能です。オプションタブでは、キー列及
び概念上の親子関連列の指定を行います。
図 6-194
関連性ダイアグラムパラメータ設定画面
542
□設定項目
◇ 最低サポート
ルールとして抽出する最低のサポートを%で指定します。
◇ 最低信頼度
ルールとして抽出する最低の信頼度を%で指定します。
◇ Lift
ルールとして抽出する最低の Lift を指定します。
◇ Conviction
ルールとして抽出する最低の Conviction を指定します。
◇ 列名
アイテムを指定する為の列名を指定します。
◇ 項目名
アイテムを指定する為の項目名を指定します。
◇ 節点
指定した項目がどのアイテムに属するかを指定します。
□結果
関連性ダイアグラムの結果ファイルは以下の通りです。
図 6-195
関連性ダイアグラム分析結果ファイル
543
前提、結論、信頼度、サポート、Lift、Conviction は、アソシエーションルールの前提、
結論、信頼度、サポート、Lift、Conviction を表し、結論がブランクになっているところは、
そのアイテムのサポートを表します。関連性ダイアグラム表示を用いると以下のように表
示されます。
図 6-196
関連性ダイアグラム
6.6.4. 時系列アソシエーション分析
544
時系列アソシエーション分析では、時系列情報を持ったデータに対してアソシエーショ
ン分析を行います。通常のアソシエーション分析では、同時発生の事象に関するルールを
抽出しますが、時系列アソシエーション分析では、違う時刻に発生した事象に関するルー
ルを抽出します。
図 6-197
時系列アソシエーション分析 パラメータ設定画面
□設定項目
◇ 最低サポート
ルールとして抽出する最低のサポートを%で指定します。
◇ ルールの長さ
ルールに含まれるアイテムの最大数を指定します。
◇ 対象列名
ルール探索の対象となる列名を指定します。
◇ 時系列名
事象の発生順序を表す列を指定します。
◇ キー列名
同一のキーを持ったデータを 1 つのデータとして扱います。
キー列名と時系列名を指定する事で、顧客の購買行動の時間的な変化を表します。親子
関係は、アイテム間に存在する階層構造を指定します。例えば、商品分類では、
「食品」と
545
「牛乳」では、通常「牛乳」は「食品」に属しますので、「食品」の対応する列を「牛乳」
に対応する列の“親”列と指定します。
□結果
時系列アソシエーション分析の結果は以下の通りです。
図 6-198
時系列データ分析の結果
出力は、前提、結論、サポート、信頼度、リフト、ルール.数、前提.数、結論.数、キー.
数です。前提と結論は時系列事象を、最後に起こった事象(結論)とそれ以前に起こった事象
(前提)に分けたものです。例えば、A→B→C というルールにおいて、前提は A→B、結論は
C になります。また、A→B+C というルールにおいては、前提は A、結論は B+C になりま
す。ルールの中の「+」で結ばれているアイテムは同時発生である事を表し、「->」は時間
的な順序関係を表しています。結論が空欄となる行は、単純に前提が起こった回数を表し
ます。サポートはそのルールが支持されている割合を%で表します。信頼度は、そのルー
ルの数÷前提の数で定義される量で、単位は%で表されます。
6.6.5. クラスアソシエーション
結論となる項目を目的変数という形で指定してアソシエーションルールを求めます。結
論を目的変数と見なすことで、ルールを用いたルールベース予測を行うことが出来ます。
ルールの有益度を測る指標はサポート、信頼度、Lift、Conviction を用います。また、作成
するルールの長さを指定することで冗長なルールを抽出するのを避けることができます。
クラスアソシエーション分析では、目的変数が指定されているので、その変数との関連性
546
から数値変数を離散化してアソシエーション分析を行うことが出来ます。離散化方法は等
間隔、等数、χ2 乗、Gini 係数、誤判別数の中から選択します。離散化方法の詳細は 統計
量の「Feature Selection」を参照して下さい。通常のアソシエーション分析のように、複
数レコードを一つのデータと見なす機能、項目間の親子関係を指定する機能はありません。
図 6-199 クラスアソシエーション分析
パラメータ設定画面
□設定項目
◇ 最低サポート
出力するルールが満たすべき最低のサポートを%で指定します。
◇ 最低信頼度
出力するルールが満たすべき最低の信頼度を%で指定します。
◇ Lift
出力するルールが満たすべき最低の Lift を指定します。
◇ Conviction
547
出力するルールが満たすべき最低の Conviction を指定します。
◇ ルールの長さ
出力するルールの前提の長さ最大長を指定します。
◇ 離散化方法
数値変数を離散化する方法を指定します。等間隔、等数、χ2 乗、Gini 係数、誤判別
数から選択します。
◇ 離散化数
数値変数列をいくつで離散化するか値を設定します。
◇ 欠損値パターン
入力テーブルで欠損値とみなすパターンを指定します。
□結果
クラスアソシエーション分析の結果は以下の通りです。
図 6-200 クラスアソシエーション分析
実行結果
例えば、RuleNO.が 3 の行は 2 つありますが、これは「がく幅が 39.5~59.25、かつがく
幅が 26~32 であれば種類は Setosa であり,その信頼度は 34.375、サポートは 7.333 など
である」ということを示しています。
548
6.7. 多変量解析
多変量解析とは、複数の変数に関するデータを基にして、これらの変数間の相互関連性
を分析する統計的技法の総称です。複雑なデータが持つ傾向や特徴を「要約」し、結果に
影響する相関関係を明らかにして「予測」を行いたい場合などに有効です。
6.7.1. 対応分析
対応分析とは、カテゴリ変数を数量に変換する分析です.2 つのカテゴリ変数の各カテゴ
リのクロス表(頻度行列)を作成し、各カテゴリに数値得点(Score)を与えます.データ
を 2 次元平面上にマッピングすることにより、関連性の強いカテゴリを視覚的に示します。
(ポジショニングマップ)
。
図 6-201 対応分析 パラメータ設定画面
□設定項目
◇ パラメータ
入力データ形式を指定します。
◇ 対象列
分析の対象になる列名(ROW、COL、頻度)を指定します。
549
入力データ形式は、通常のテーブル形式であればテーブルを選択します。場合は対象列
として、ROW、COL を選択します。クロス表(List 形式)では、元のデータを集計した結
果が List 形式となっているデータの場合に指定します。この場合は、対象列として、ROW、
COL、頻度を指定します。クロス表(Matrix 形式)では、元のデータを集計した結果が
Matrix 形式となっているデータの場合に指定します。この場合は、ROW、COL を指定し
ます。
□結果
対応分析の出力は RowScore、ColScore、Correlation の 3 つです。また、実行後は Score
を用いてポジショニングマップを作成します。
図 6-202 RowScore
図 6-203 Col Score
550
図 6-204 Correlation
図 6-205 ポジショニングマップ
6.7.2. 主成分分析
多変量解析の分析手法の一つである主成分分析を行います。この分析は、多くの変数の
データをできるだけ情報の損失なしに少数の総合的指標(主成分)で表現します。この結果、
データが主にどのような要因に依存しているかを見ることができ、抽出された要因を用い
てデータの相互の比較を容易にします。 主成分分析は数値データに対して行う分析である
ため、カテゴリデータは内部で数量化して計算します。
551
図 6-206 主成分分析パラメータ設定画面
□設定項目
◇ 入力列
分析に用いる列を指定します。
◇ モデル
主成分分析を行う対象行列を以下から指定します。
Correlation(相関行列)
、Covariance(共分散行列)
◇ 主成分の数
抽出する主成分の数を指定します。
■出力結果
主成分分析の出力は、スコア、重要度、負荷量の 3 つです。また第 1 主成分、第 2 主成
分を用いた散布図をプロットします。
552
図 6-207 スコア
図 6-208 重要度
553
図 6-209 負荷量
図 6-210 プロット
散布図に表示する軸はメニューの軸の選択で変更することが可能です。
6.7.3. Kernel 主成分分析
Kernel 主成分分析は、主成分分析に Kernel 法の手法を取り込むことで、主成分分析で
は抽出できないような曲がった分布をしているデータに対しても、主成分を抽出すること
554
が可能な分析手法です。Kernel 関数が Linear では通常の主成分分析と同様の結果を得ら
れますが、Kernel 関数をさまざまに取り替えることによって、より複雑な形状の分布に対
応することができます。
図 6-211
Kernel 主成分分析パラメータ設定
555
□設定項目
◇ 入力列
分析に用いる列を指定します。
◇ カーネル関数
◇ 多次元 Feature Space での Kernel 関数を指定します。Kernel 関数は以下の中から指
定します。

Linear

Gaussian

Polynomial

Sigmoid
◇ オプション
カーネル関数のパラメータを指定します。

Linear の場合は、
(パラメータなし)

Gaussian の場合は、分散 σ2

Polynomial の場合は、多項式の次数 d

Sigmoid の場合は、Threshold θ
◇ 主成分の数
抽出する主成分の数を指定します。
□結果
Kernel 主成分分析の出力はスコアと重要度です。Kernel 主成分分析では、通常の主成分
分析と異なり、データ数が行列の次元になるので、データ数分の主成分が抽出されます。
下図のように、Linear で計算をした場合は通常の分散行列を用いた主成分分析と同様の結
果になるため、寄与率は入力次元の第 4 主成分までしかなく、それ以降は 0 になっていま
す。また、実行後は第 1 主成分、第 2 主成分の 2 軸を用いてプロットを作成します。
556
図 6-212 スコア
図 6-213 重要度
557
図 6-214 プロット
6.7.4. 主成分分析得点判定
抽出した主成分を用いて、別のデータの主成分得点を計算できます。まず主成分抽出用
のデータを主成分分析アイコンで実行後、その結果と得点を計算したいデータを、得点判
定アイコンに入力して実行します。このアイコンを実行すると、実際に計算された得点を
用いて散布図(第 1 主成分 対 第 2 主成分)を描画し、アイコンの出力として得点を出力
します。入出力マッチングをおこなって、主成分分析アイコンから得点判定アイコンへス
コアデータが入力されるようにしてください。
558
図 6-215 主成分得点判定フロー
図 6-216 主成分得点判定結果
559
6.8. 外部ソフト
以下では、統計解析ソフトウェア S-PLUS、R を用いた時系列分析機能について説明し
ます。利用にあたっては、S-PLUS、R のライセンスとインストールが必要です。
図 6-217 時系列分析、時系列分析前処理アイコン
時系列分析の入力パラメータの内容は、S-PLUS、R の場合で同じになりますが、結果形
式が異なる場合があります。
6.8.1. 時系列分析前処理
時系列データの性質、特に系列相関をもつかどうかを調べるための分析を行います。自
己相関の計算、またはラグプロットを行います。自己相関係数の種類には自己共分散、自
560
己相関係数、偏自己相関係数があり、それらの中から 1 つ以上を選択します。ラグプロッ
トは自分自身を横軸にラグを取ったデータを縦軸に散布図を描画したものです。ラグ=1 か
ら指定したラグ数までラグプロットを行います。
「時系列分析.前処理 R」から実行すると R
による計算結果が出力され、
「時系列分析.前処理 S」から実行すると S-PLUS による計算結
果が出力されます。設定パラメータは S-PLUS と R で違いはありません。
図 6-218 時系列分析前処理画面(自己相関)
561
図 6-219 時系列分析前処理画面(ラグプロット)
□設定項目
◇実行する分析の種類
「自己相関」
「ラグプロット」から 1 つ以上選択します。
◇分析対象の選択
対象列を選択します。
◇自己相関

自己相関係数の種類
「自己共分散」
「自己相関係数」
「偏自己相関係数」から 1 つ以上選択します。
選択された自己相関について全て計算し、グラフに描画します。

ラグ数
自己相関を計算する最大のラグ数を指定します。
◇ラグプロット

ラグ数
ラグプロットを行う最大のラグ数を指定します。N を指定するとラグ 1、ラグ
2、…ラグ N のラグプロットが行われます。
562
□結果
時系列分析前処理の出力結果は以下の通りです。
◇R の場合

自己相関係数
選択した種類の自己相関をデータシートに出力します。
図 6-220 自己相関係数

ラグプロット
ダミーのデータシート。実行する分析の種類でラグプロットを選択した際に出
力されます。
図 6-221 ラグプロット

結果グラフ
ラグプロットまたは自己相関係数のグラフがタブ区切りで表示されます。右ク
リックメニューのオブジェクトビューから閲覧可能です。
563
図 6-222 結果グラフ(ラグプロット)
図 6-223 結果グラフ(自己相関)
◇S-PLUS の場合

自己相関係数
564
選択した種類の自己相関をデータシートに出力します。R の場合と同様です。

sobj
ダミーのデータシート。結果グラフが作成された際に出力されます。
図 6-224 sobj

結果グラフ
ラグプロットまたは自己相関係数のグラフがタブ区切りで表示されます。
S-PLUS グラフ表示アイコンをつなぎ、入力マッチングにおいて対象データ名
を時系列分析.前処理 S(1).sobj として実行すれば閲覧可能です。
図 6-225 入力マッチング変更
565
図 6-226 結果グラフ
6.8.2. 時系列分析
時系列データについてフィッティングまたは予測・検証を行います。フィッティングに
は移動平均によるフィッティングと ARIMA モデルによるフィッティングがあり、予測・
検証はフィッティングの際に作成した ARIMA モデルを用いて予測・検証を行います。検
証を行うとき、または ARIMA モデルに回帰項が存在する場合には検証用データが必要に
なります。
□ARIMA モデル
ARIMA モデルは与えられた時系列データを適当な差分を取って定常性の仮定が満たさ
れている時系列データに変換し、変換した時系列データを自己回帰モデルと移動平均モデ
ルで記述した後に、元の時系列データを変換した時系列データから記述し直したモデルで
す。定常性が満たされている時系列データとは、期待値(平均)・期待値周りの不確実さ(分
散)が一定で、異なる時点のデータ同士の相関係数が 2 時点間の長さのみに依存するような
時系列データのことです。トレンドのあるデータ、周期性のあるデータは差分、及び季節
差分をとることで定常性が満たされるデータに変換可能です。

1 回差分を取った時系列データ
566
Dz(t)=z(t)-z(t-1)
N 回差分は N-1 回差分を取った時系列データに対し、さらに(1階)差分を取る。

周期 n の季節差分
F(z(t))=z(t)-z(t-n)

p 階の自己回帰モデル
z(t)=Σψ(i)z(t-i)+ε(t)
(i=1,…,p)
ψ(i):係数
ε(t):ランダムな誤差項

q 階の移動平均モデル
z(t)=Σφ(i)ε(t-i)+ε(t)
(j=1,…,q)
φ(i):係数
ε(s):時刻 s におけるランダムな誤差項。誤差項同士は相関を持たない

ARMA(p,q)モデル
時系列データ z(t)に p 階の自己回帰モデルと q 階の移動平均モデルを組み合わせたモ
デル
z(t)=Σψ(i)z(t-i)+Σφ(j)ε(t-j)+ε(t) (i=1,…,p, j=1,…,q)

ARIMA(p,d,q)モデル
d 回の差分を取った時系列データ D(d)z に対し ARIMA(p,q)モデルをあてはめたもの。
D(d)z(t)=z(t)=Σψ(i)z(t-i)+Σφ(j)ε(t-j)+ε(t) (i=1,…,p, j=1,…,q)
元の時系列データ z(t)に関するモデルは差分を取ったデータから復元したモデルと
なる。

季節成分を考慮した ARIMA モデル(ARIMA 拡張モデル((p,d,q), (ps,ds,qs)))
s 周期の差分を取ったデータに対し ARIMA(ps,ds,qs)モデルを当てはめ、復元したデ
ータに対して ARIMA(p,d,q)モデルを当てはめたもの

回帰成分を含む ARIMA
回帰モデルの残差が ARIMA モデルに従うようなモデル。
z(t)=Σγ(i)w(i)(t)+η(t)
η(t)は ARIMA モデルに従う。
γ(i):係数
w(i):回帰成分の時系列データ
567
図 6-227 時系列分析画面(ARIMA)
568
図 6-228 時系列分析画面(ARIMA 予測・検証)
□設定項目
◇実行する分析の種類
下記から 1 つ以上選択します。

ARIMA

移動平均
◇移動平均区間
移動平均によるフィッティングを行う際の移動平均を取る区間を設定します。複数
設定可能です。カンマ区切りで正の整数を指定します。
◇ARIMA
569
ARIMA モデルを作成するために下記のモデルパラメータを設定します。
6.
モデルパラメータ
通常の ARIMA(p,d,q)のパラメータです。
7.
差分の階数
8.
自己回帰指数
9.
移動平均指数
10. 季節成分
季節成分を考慮する際の設定パラメータです。
11. 季節成分を含む
季節成分を考慮する場合はチェックを入れます。
12. 差分数
13. 自己回帰指数
14. 移動平均指数
15. 周期
季節成分の周期です。2 以上の値を指定してください。
16. 対象列の選択
分析対象となる列をコンボボックスから選択します。コンボボックスに現れる項
目は学習データに含まれる列です。
17. 回帰成分
ARIMA モデルに回帰成分を含む場合は回帰項となる列を指定します。対象列で
指定した列については選択が緑色となっていて指定できません。選択された列が
なければ回帰成分はなしとみなします。
18. 診断結果を出力
診断結果を出力する場合はチェックを入れます。その場合は作成した ARIMA モ
デルが時系列データに適したものかどうかを診断したグラフを出力します。
◇ARIMA 予測・検証
作成した ARIMA モデルを用いて予測・検証を行う場合のパラメータを設定します。
19. 予測を行う
予測を行う場合はチェックを入れます。
20. 予測行数
予測を行う場合の予測期間を設定します。但し、回帰項が選択されている場合は
入力できません。この場合は検証データの行数分だけ予測されます。予測した結
果が結果グラフに追加されます。
21. 検証を行う
検証を行う場合はチェックを入れます。この場合、ARIMA による予測結果、検
証データの値が結果グラフに追加されます。
570
□注意
回帰成分を含む場合は予測行数の設定ができません。この場合は検証データの行数分だ
け予測が行われます。検証データが存在しない場合は次のエラーメッセージが出力されま
す。
検証を行う際に検証データが存在しない場合も同様のエラーメッセージが出力されます。
また指定した回帰成分が検証データに存在しない場合は次のエラーメッセージが出力され
ます。
入出力マッチング定義において入力データを 2 つ指定した場合、項目の 1 つ目を学習デ
ータとみなし、2 つ目を検証データとみなします。
□結果
ARIMA 予測の出力結果は以下の通りです。
571
◇R の場合
22. ARIMA サマリ
ARIMA モデルを作成した際のモデル情報が出力されます。以下の値が出力され
ます。
23. AIC
モデルの当てはまりの良さを示す指標。値が小さいほど良い。
24. Durbin-Watoson
時系列データの値からフィッティングした値を引いた残差が系列相関を持
つかどうかの指標。2 に近いほど系列相関を持たない(モデルがよい)。
25. 重相関係数
時系列データとフィッティングしたデータの相関係数。1 に近いほどよい。
図 6-229
ARIMA サマリ
26. 分析結果
学習データに ARIMA によるフィッティングした値が「ARIMA.予測」
列として、
移動平均によるフィッティングした値が例えば「移動平均 3」列として追加され
ます。
ARIMA による予測または検証を行った場合は「ARIMA.予測」列に ARIMA
による予測値が追加されます。また他の列に関しては検証データが存在すればそ
の値を入力し、存在しなければダミーの値を入力します。ダミーの値はカテゴリ
列であれば「NA」
、数値列の場合は「0」とします。また ARIMA.予測の最初の
N 行は学習に必要な期間のため、フィッティングは行われません。N はモデルパ
ラメータに依存して次のように決まります。
27. 季節成分を含まない場合
N=差分の階数+自己回帰指数
28. 季節成分を含む場合
N=(差分の階数+自己回帰指数)+周期×(季節成分の差分の階数+季節成分の
自己回帰指数)
572
図 6-230 分析結果
29. 結果グラフ
右クリックメニューのオブジェクトビューから閲覧可能です。下記のグラフを出
力します。
30. フィッティング結果
時系列データにフィッティングした値を追加したグラフです。予測結果・検
証結果があればさらにその値が追加されます。
31. 診断結果
ARIMA モデルの診断結果です。
573
図 6-231 結果グラフ(フィッティング結果)
図 6-232 結果グラフ(診断結果)
574
◇S-PLUS の場合
32. ARIMA サマリ
33. 分析結果
34. sobj
ダミーのデータシート。結果グラフが作成された際に出力されます。

結果グラフ
分析結果に応じて結果グラフがタブ区切りで表示されます。S-PLUS グラフ表示
アイコンをつなぎ、入力マッチングにおいて対象データ名を時系列分析
S(1).sobj として実行すれば閲覧可能です。
575
6.8.3.
因子分析 R
■ 内容
R のパッケージ psych の関数 fa を使用して因子分析を行います。因子分析では観測値を合
成量と仮定し、観測値を構成する因子を探します。
■ 準備
あらかじめ VAP から R を使用できるように準備が必要です。設定方法については、R 連携
を参照してください。
因子分析 R では、R のパッケージ psych,および GPArotation を使用します。上記の R 連携
の設定に加えて、R に psych および GPArotation をインストールしてください。
■ 画面
■ 設定項目
□方法
因子負荷量の推定方法を以下から選択する。
最尤法、主因子法、重みなし最小二乗法、重み付き最小二乗法、
576
一般化最小二乗法
□因子数
因子数の決め方を選択する。
最小固有値
相関係数行列の固有値が指定した値以上となる個数を因子数とす
る。
因子数
因子数を直接指定する。
□回転方法
因子軸の回転方法を選択する。回転方法は以下から選択する。
直交回転:varimax、quartimax、bentlerT、geominT
斜交回転:promax、oblimin、simplimax、bentlerQ、geominQ、
回転なし:none
□得点種類
因子得点の計算方法を以下から選択する。
regression、Thurstone、tenBerge、Bartlett
□最大反復回
最大反復回数を指定する。
数
□対象列選択
因子分析の対象とする列を選択する。数値列のみ選択可能。
■ 出力
□出力テーブル
loading.before:
回転前の因子負荷量と独自性
contribution.before:
回転前の負荷二乗和、寄与率、累積寄与率
loading.after:
回転後の因子負荷量と独自性
contribution.after:
回転後の負荷二乗和、寄与率、累積寄与率
eigen:
相関係数行列の固有値
score:
因子得点
model:
他のデータで因子得点を行うためのデータ
■ 得点計算
予測 R アイコンに、出力の model と新たなデータを入力し、このアイコンで作成したモ
デルを用いた得点判定を行うことができます。
計算結果は score と同じフォーマットで出力されます。
577
6.8.4.
線形回帰分析 R
■ 内容
R の関数 lm を使用して線形回帰を行います。線形回帰では、数値の目的変数に対して、説
明変数で回帰を行い、目的変数の値を予測します。
変数選択は、パッケージ MASS の stepAIC を使用して、AIC の高いモデルの探索を行いま
す。
■ 準備
あらかじめ VAP から R を使用できるように準備が必要です。設定方法については、R 連携
を参照してください。
■ 画面
■ 設定項目
□変数選択法
変数選択の方法を選択する。
ユーザ指定
変数選択の自動選択を行わず、指定した変数を使用する。
578
ステップワイ
指定した変数を初期値としてステップワイズ法で変数を選択す
ズ
る。
変数減少法
指定した変数を初期値として変数減少法で変数を選択する。
変数増加法
指定した変数を初期値として変数増加法で変数を選択する
□重み付け
重みとして使用する列を指定する
□定数項を含
回帰モデルに定数項を含めるかどうかを選択する。チェックを付
むモデル
けた場合は定数項ありのモデル、チェックを付けない場合は定数
項なしのモデルを使用する。
□目的変数
線形回帰の目的変数(従属変数)列を指定する。実数列と整数列の
み選択可能。
□説明変数
線形回帰の説明変数(独立変数)列を指定する。
変数選択法がユーザ指定の場合は、この説明変数を使用して 1 回
だけ線形回帰を行う。ユーザ指定以外の場合は、この説明変数が
択の初期モデルとして使用され、説明変数を追加、削除しながら
AIC の高いモデルを探索する。
■
出力
□出力テーブル
result:
coefficient:
作成した線形回帰モデルで求めた予測値と残差。
線形回帰モデルの回帰係数。変数選択方法がユーザ指定以外の場合は、
変数選択の途中のモデルの回帰係数も出力される。モデル ID 1 が初期
モデル、モデル ID が 1 番大きいものが最終モデル。
value:
F 統計量、決定係数などのモデルに関する情報。
model:
予測に使用するためのデータ
■ 予測
予測 R アイコンに、出力の model と新たなデータを入力し、このアイコンで作成したモ
デルを用いた目的変数値の予測を行うことができます。
予測結果は result と同じフォーマットで出力されます。
579
6.8.5.
多項ロジスティック回帰 R
■ 内容
R のパッケージ nnet の関数 multinom を使用して多項ロジスティック回帰を行います。多
項ロジスティック回帰では、複数のカテゴリを持つ目的変数に対して、説明変数で回帰を
行い、目的変数の値を予測します。
変数選択は、パッケージ MASS の stepAIC を使用して、AIC の高いモデルの探索を行いま
す。
■ 準備
あらかじめ VAP から R を使用できるように準備が必要です。設定方法については、R 連携
を参照してください。
多項ロジスティック回帰分析 R では、R のパッケージ nnet および MASS を使用します。
上記の加えて R 連携の設定に nnet および MASS をインストールしてください。
■ 画面
■ 設定項目
580
□変数選択方
変数選択の方法を選択する。
法
ユーザ指定
変数選択の自動選択を行わず、指定した変数を使用する。
ステップワイ
指定した変数を初期値としてステップワイズ法で変数を選択す
ズ
る。
変数減少法
指定した変数を初期値として変数減少法で変数を選択する。
変数増加法
指定した変数を初期値として変数増加法で変数を選択する
□重み付け
重みとして使用する列を指定する
□定数項を含
回帰モデルに定数項を含めるかどうかを選択する。チェックを付
むモデル
けた場合は定数項ありのモデル、チェックを付けない場合は定数
項なしのモデルを使用する。
□目的変数
線形回帰の目的変数(従属変数)列を指定する。文字列のみ選択可
能。
□説明変数
線形回帰の説明変数(独立変数)列を指定する。
変数選択法がユーザ指定の場合は、この説明変数を使用して 1 回
だけ線形回帰を行う。ユーザ指定以外の場合は、この説明変数が
択の初期モデルとして使用され、説明変数を追加、削除しながら
AIC の高いモデルを探索する。
■
出力
□出力テーブル
result:
ロジスティック回帰モデルで予測した各目的変数の確率。
coefficient:
ロジスティック回帰モデルの回帰係数。変数選択方法がユーザ指定以
外の場合は、変数選択の途中のモデルの回帰係数も出力される。モデ
ル ID 1 が初期モデル、モデル ID が 1 番大きいものが最終モデル
value:
変数ユーザ指定の場合はモデルの AIC。それ以外の場合は、AIC と尤度
比検定のデータ。p は尤度比検定の p 値を表す。
model:
他の入力データに対して予測を行うためのモデル情報
■ 予測
予測 R アイコンに、出力の model と新たなデータを入力し、このアイコンで作成したモデルを
用いた目的変数値の予測を行うことができます。
予測結果は result と同じフォーマットで出力されます。
581
6.8.6.
予測 R
■ 内容
R アイコンで作成したモデルを別のデータに対して適用し、予測等を行います。
■ 準備
あらかじめ VAP から R を使用できるように準備が必要です。設定方法については、R 連携
を参照してください。
その他にも、モデルを作成するのに使われたパッケージが必要になる場合があります。詳
細は、各分析アイコンのヘルプをご参照ください。
■ 入力
□入力テーブル
input: 予測を行うデータ。モデル作成時に使用したデータと同じ列名、列型である必要が
ある。
model: R アイコンで作成した各分析のモデル
■ 出力
□出力テーブル
予測結果:
予測を行った結果。内容は model データを作成した分析によって異な
る
582
7.
データ表示
7.1. 概要
本章では、データを表示するためのツールを紹介します。
図 7-1
表示ツール一覧
※ S-PLUS のバージョンにより、表示されるアイコンは上図と異なることがあります。
583
7.2. データ&グラフビュー
VAP のデータをテーブル形式で表示します。またデータからグラフを作成することもで
きます。結果を保持している他のアイコンから「データ&グラフビュー」アイコンにつな
げて実行すると、データ&グラフビューウィンドウが開かれ、データの内容が表示されま
す。
※ アイコンの右クリックメニュー「データビュー」を選択しても同じくデータ&グラフ
ビューウィンドウが開きます。
図 7-2
データ&グラフビューウィンドウ
データ&グラフビューの機能
データ&グラフビューの詳細は付属の「データ&グラフビューマニュアル」をご覧くだ
さい。ここでは基本的な使い方のみを説明します。
データはグリッドテーブルで表示されます。各列の属性によって列名が色分けされ、そ
れぞれ、文字列:赤、整数:黒、実数:青になります。
グリッドテーブル上では、データの検索と整列が行えます。データの検索は、検索を開
始する位置にカーソルを移動し、右クリックメニューの「検索」または右上の「虫眼鏡」
アイコンをクリックすることで検索パネルを開き、検索を行います。
584
図 7-3
検索機能
データの整列は、整列させたい列名に対して右クリックメニューの「整列」を行うか、
または列名の右端にある「-」をクリックすることで整列を行います。複数列をキーにし
て整列を行うことも可能です。
図 7-4
整列機能
585
データからグラフを作成するには、右上の「グラフ」アイコンをクリックし、グラフパ
ネルを開きます。
図 7-5
グラフパネル
586
この右側のグラフパネル上で、グラフを作成できます。例えば、菖蒲のデータを用いて
以下のような散布図を作成できます。※グラフ作成の詳細は、付属の「データ&グラフビ
ューマニュアル」をご覧ください。
図 7-6
グラフ例
データ集計情報の簡易表示
データの集計情報をデータ&グラフビューウィンドウ上で見ることができます。これを
行うには、まず VMStudio 本体のメニューバーの「ツール」→「プロパティ」を選択し、
データビュー欄の「集計情報も表示」にチェックを入れ、データ&グラフビューを開きま
す。集計情報を見るには、グリッドテーブル上部のタブを切り替えて、”データ_基本情報”
を選択してください(データの部分には、実際のデータ名が入ります)。
587
図 7-7
基本情報
588
7.3. S-PLUS グラフ表示
データの S-PLUS グラフ表示は、S-PLUS の製図機能を直接利用します。プロジェクト
上で「S-PLUS グラフ表示」アイコンを実行すると、右側にグラフ、描画タイプ選択画面が
表示されます。
(この処理には、別途 S-PLUS ライセンスが必要です。
)
※ S-PLUS 7.0 以降を利用した場合、グラフの再実行を行っても前回のパラメータを利用して描画す
ることができません。ご了承ください。
図 7-8
S-PLUS のグラフパラメータ入力画面表示
選択した Plot Type によって、グラフ詳細パラメータ入力画面が異なります。「散布図」
の場合、次のような入力画面が表示されます。
589
図 7-9
散布図詳細パラメータ入力表示
x Columns、y Columns を設定しますと、散布図が表示されます。
図 7-10
散布図
グラフを右クリックして、メニューから追加描画を選択することによって、もう一度グ
ラフパラメータ入力画面が現れます。
590
図 7-11
追加グラフのパラメータ入力
「OK」をクリックすると、結果グラフが表示されます。
図 7-12
追加描画の結果
591
追加描画の以外にも、グラフを名前付け保存で、*.jpg、*.gif、または、*.bmp 形式でフ
ァイルに保存することができます。また、グラフを印刷することも可能です。グラフを微
調整する場合は、S-PLUS へを選択します。S-PLUS のウィンドウで、グラフのタイトル、
表示文字を追加することができます。グラフ表示には 3 次元グラフ図の表示も可能です。
また、データ以外にも、以下のように S-PLUS の統計関数で描いたグラフや S-PLUS スク
リプトで作成したグラフを表示する事も可能です。
図 7-13
統計関数のグラフ表示
592
7.4. ネットワークグラフ表示
データ間の関連性をネットワークグラフとして表示するアイコンです。アソシエーショ
ン分析の結果などのようなイベント間の関連性を図示することが可能です。入力データに
は、各行がデータとデータの間の連結情報を入力します。入力データの 1 つ 1 つがネット
ワーク上のノードになり、入力データの各行がこれらのノード間に張られるエッジになり
ます(下図参照)
。同じノード名(ノードラベル)が複数回登場する場合でもノードは 1 つ
しか作成されません。同じエッジが複数回登場する場合は、最後の情報についてしか表示
されません。
(例)データの描画例
図 7-14
入力データ
593
図 7-15
描画例
パラメータ入力ウィンドウ
594
図 7-16

パラメータ入力ウィンドウ
グラフの種類
エッジが向き付き(有向グラフ)か、向き無し(無向グラフ)かを選択します。
有向グラフの場合、始点ノードから終点ノードに向かって有向エッジ(矢印)を生成し
ます。

エッジ

ラベル列
始点・終点ノード(有向グラフの場合)または、両端のノード(無向グラフ)を
表すラベル列を指定します。

重み
チェックボックスにチェックを入れると、ノードの重みを表す数値列を指定する
ことが可能です。この重みに比例する太さでエッジを描画することが可能です。
重みを指定しない場合、エッジの太さを一様にして描画します。
595

始点ノードの情報

重み
始点・終点ノード(有向グラフの場合)の大きさを指定する数値列を指定するこ
とができます。

クラスタ番号
ノードが所属するクラスタ番号を表す列名を指定します。番号によってノードの
色が変わります。

座標
ノードの配置位置を表す列名を指定します。
グラフ操作ウィンドウ
図 7-17
グラフ操作ウィンドウ
基本操作

ノードの移動
ノードを右クリックでつまんで動かせます。コントロールキーを押しながらノードを
選択し、複数のノードを同時に動かすことができます。
596

拡大
シフトを押しながらマウスの右ボタンを押して領域を選択し、選択した領域を拡大す
ることができます。

削除
ノード、またはエッジを右クリックして「削除」を選択するとノードを削除すること
ができます。
メニュー

ファイル

画像で保存
表示中のネットワークを画像ファイル(bmp ファイル)として保存します。

プロパティの保存
描画に関する色やフォントの情報を保存します。

プロパティの読み込み
保存したプロパティを読み込みます。

終了
描画を終了します。

表示

自動整列
ノードがなるべく重ならないように、ノードの位置を自動で調整します。ノード
の数が多いと計算に時間がかかるので注意してください。

表示設定
表示の色、幅、フォントの設定をするダイアログを表示します。

向きを考慮して整列
向きを考慮してノードを整列します。

拡大解除
グラフを拡大表示しているときに、グラフ全体が入るように再度描画を行います。

ヘルプ
ネットワークグラフ表示に関するヘルプを表示することができます。
597
7.5. Excel ピボットテーブル
Visual Analytics Platform では、Excel と連携してピボットテーブルを作成することがで
きます。ピボットテーブルとは Excel に用意されているクロス表の表示機能であり、デー
タを様々な観点から集計するのに有用です。本機能は、計算自体は Visual Analytics
Platform で行います。集計結果のみ Excel のピボットテーブルで表示するので、データサ
イズの制限を受けずに高速に集計することが可能です。
図 7-18
ピボットテーブルアイコン
Excel ピボットテーブルのアイコンを実行すると次の Excel ピボットテーブル作成パラメ
ータ設定ダイアログが立ち上がります。
図 7-19
ピボットテーブルパラメータ設定ダイアログ
598
ダイアログでは、以下の項目を指定します。集計条件には複数の指定が可能です。指定
した場合は多次元のクロス集計を行います。
・
Excel ピボットテーブル
ピボットテーブルを作成したい Excel ファイルのパスを指定します。指定したファイルが
存在しない場合は新規に作成されます。
・
行
クロス集計に使うキー列を指定します。指定した列の項目は、縦方向に表示されます。
・
列
クロス集計に使うキー列を指定します。指定した列の項目は、横方向に表示されます。
・
Page
ピボットテーブルに表示するデータのフィルタリング条件を指定します。指定は必須で
はありません。
・
内容
集計対象列を指定します。<個数カウント>を指定すると、行と列に指定した列の件数を
集計します。
・
計算
内容に<個数カウント>が指定されていない場合、計算方法を次の中から指定します。
合計、平均、最大、最小、積、分散、標準偏差、項目数、中央値
・
Excel を起動する
出力結果を即座に Excel で開くかどうかを指定します。
指定の終了後 OK ボタンを押すと、ピボットテーブルが含まれた Excel ファイルが指定
したパスに作成されます。
「Excel を起動する」にチェックが入っている場合は、
「適用」が
可能となり、Visual Analytics Platform を介して対話的にクロス集計表を作成できます。
599
図 7-20
作成されたピボットテーブル
また、ピボットテーブルの表示に用いられる集計結果も Excel に出力されます。
注意:このアイコンを利用するためには Excel がインストールされている必要があります。
600
7.6. レポート表示
レポート表示は、形式を持たないテキストデータまたは、結果ファイルを表示します。
図 7-21
レポート表示
レポートの右クリックメニューは次のようになります。
601
図 7-22
レポート画面の右クリックメニュー
602
8.
外部連携
8.1. 概要
VAP は次のシステムと連携することが可能です(2012 年 1 月現在)。

製品・アドオン

S-PLUS

Visual Mining Studio

Baysian Network Module

S-cube

Text Mining Studio

NUOPT

FIOPT

SAS

R

MATLAB

Perl

データベース

Microsoft Excel
この中で、SAS、R、MATLAB、Perl については、スクリプトから機能の呼び出しを行
います。詳細はスクリプトの項を参照してください。外部連携対象のソフトウェアのイン
ストールが別途必要になります。
603
8.2. S-PLUS 連携
S-PLUS が VAP と同一の PC にインストールされている場合、VAP の起動と同時に、
S-PLUS も自動的に起動させ、連携することが可能です。S-PLUS のバージョンは 8 以降
で動作可能です。VAP では、S-PLUS オブジェクトの取り込み、S-PLUS の関数定義、実
行を行うことができます。
■S-PLUS オブジェクトの取りこみ
VAP から直接 S-PLUS の data.frame 形式のオブジェクトを取り扱うことができます。
例えば、S-PLUS で、次の data.frame オブジェクトを定義します。
図 8-1
S-PLUS でのデータ作成
定義したオブジェクトを VAP に取り込むには、プロジェクトボードの何もない部分を右
クリックして、メニューから 新規アイコン作成 → 外部データ入力 → S-オブジェクト
を選択します(VAP 上では、S-PLUS オブジェクトを「S-オブジェクト」と表記していま
す)
604
図 8-2
S-オブジェクトの取り込み
インポートウィンドウが開きますので、インポートしたいオブジェクトを選択します。
図 8-3
S-オブジェクトを選択
選択すると、データアイコンが作成されます。
図 8-4
作成されたデータアイコン
605
■S-スクリプトの定義と実行
ユーザは独自に S-PLUS スクリプトを定義し実行することができます。スクリプトを定
義するには、まず次のいずれかの方法で S-スクリプトアイコンを配置します。

メニューバーの ツール → 新規 S-スクリプト を選択する。

プロジェクトの何もない部分を右クリックして、メニューから 新規アイコン作成
→ スクリプト→S を選択する。
図 8-5
S-スクリプトアイコン作成
配置されたアイコンを右クリックして、編集を選択すると、S-スクリプト編集画面が開き
ます。編集画面の操作、および作成したアイコンの実行・登録などは、すべてスクリプト
アイコンとほぼ同じです。
図 8-6
S-スクリプト編集画面
出力結果について
出力結果は必ずデータフレームで戻してください。データフレーム以外のデータの内容
を VAP 上で参照することはできません。結果を明示的に data.frame 関数を使うなどして
データフレームに変換してください。
606
実際の例
データの 2 列目を 2 倍にして返す S-スクリプトアイコンを次のように作成したとします
(入力データ名 Input, 出力結果名 Output)
。
Output <- Input[,2] * 2;
この場合、実行は正しく行われますが、データビューを行うとメッセージウィンドウに
アイコン「SScript」のデータ形式は受付できません
と表示されます。これは Output がデータフレームになっていないからです。結果を VAP
上で参照するには、例えば、
Output <- data.frame(Input[,2] * 2);
と、明示的にデータフレームに変換すれば参照可能です。
■S-スクリプトによるグラフ出力
S-スクリプトで作成したグラフを出力するには出力結果名に vmsCurSplusGSD 関数の
戻り値を代入します。出力した結果を S-PLUS グラフ表示アイコンの入力に指定する事で
作成したグラフを表示できます。vmsCurSplusGSD 関数の引数には出力したいグラフシー
ト名を指定します。たとえば guiPlot 関数は戻り値としてグラフシート名を返すので、これ
を vmsCurSplusGSD 関数の引数にします。また、グラフシート名を返さない plot 関数等
の場合は、引数に何も指定せず実行すれば、現在 Active なグラフシートを出力します。
実行例(入力データ名なし、出力結果名 ans)
x <- 1:30;
mydata <- data.sheet(x = x, cosx = cos(x), sinx = sin(x));
gsName <- guiPlot( "Bubble", DataSetValues = mydata );
ans <– vmsCurSplusGSD(gsName);
607
図 8-7
図 8-8
グラフ出力のためのフロー
S-PLUS グラフ表示結果
608
8.3. データベース連携
(データベース連携機能は VAP Ver.1.2.4/VMStudio Ver.8.2 から機能を刷新いたしました。
ただし、プロジェクト配置済みの旧アイコンも使用可能です。旧アイコンの使用方法はデ
ータベース連携(旧)をご参照ください。)
VAP はデータベースシステム Oracle や Microsoft の Access、ODBC 接続できるデータ
ベースとの連携ツールを提供します。データベース内のデータを取得するには 2 段階の操
作が必要です。1 つはデータベースの指定(接続)、もう一つはテーブルの取得です。テーブ
ルの取得には単にデータベース内に存在するテーブルを取得する DB テーブル選択と、デ
ータベースに SQL を発行し、その結果を取得する DBSQL の 2 つの方法があります。
■DB 接続設定
DB との接続方法として、ODBC と Access の 2 種類が選択できます。
ODBC 接続によってデータベースからデータを取り込む場合、まず DSN を Windows の
システムに登録する必要があります。Windows7 の場合,「スタート」→「コントロールパ
ネル」→「システムとセキュリティ」→「管理ツール」→「データベースソース(ODBC)
」
もしくは、
「スタート」→「コントロールパネル」→「管理ツール」→「データベースソー
ス(ODBC)
」の順に選択し、ODBC の DSN を作成します。
※
MySQL との連携は、ODBC 経由で行ってください。
※
注意:DSN 登録の際には、システム DSN にデータソースの登録を行って下さい
(MySQL, SQL Server, Oracle, PostgreSQL, SQLite, HANA, RedShift について確認
済)
ODBC 接続経由ではなく、Access と直接連携する場合は、DSN の登録は必要ありません。
上記の設定が完了したら、下図のように、オブジェクトブラウザから DB 接続設定アイコ
ンをプロジェクトボードに配置し、実行を選択します。その後、下図のような設定画面が
表示されます。
まず、ODBC と Access のどちらで接続するかを選択します。
ODBC 接続の場合は DSN を選択し、必要な場合はユーザ名, パスワードを設定します。
Access の場合は接続する Access ファイルを選択します。
609
図 8-9 DB 接続設定を貼り付け
図 8-10 DB 接続設定の設定画面 ODBC
610
図 8-11 DB 接続設定の設定画面
Access
接続テストボタンをクリックすると、DB との接続を試します。接続に失敗した場合は、
DSN の設定、ユーザ名、パスワードが正しいかをご確認ください。
実行すると接続情報が生成されます。DB 接続設定アイコンで生成された接続情報を入力
とすることで、データハンドリング、DB テーブル選択、DBSQL アイコンは DB からデー
タを取得することが可能になります。
■DB テーブル選択
導入したデータベースから、テーブルを選択する方法は下図のように、オブジェクトブ
ラウザからテーブル選択アイコンをプロジェクトボードに配置し、DB 接続設定アイコンと
接続し、実行を選択します。その後、下図のような画面が表示されます。
列名文字コード、内容文字コードは DB の列名、内容にそれぞれどの文字コードが設定
されているかによって設定します。指定しないが選択された場合は、自動で判別します。
セル内カンマ置き換え文字はデータ内にカンマが含まれていた場合に別の文字に置き換
えます。
テーブル名では読み込むテーブルを選択します。
611
図 8-12 DB テーブル選択アイコンを貼り付け
図 8-13 データベースのテーブル選択
テーブル選択を行うと、そのデータをインポートする画面が現れます。行選択では方法
として、全件選択、先頭から、一定間隔、ランダム、SQL を選択出来ます。
選択したテーブルを表示した結果は、通常の処理アイコンで得られた結果と同様です。
※注意:データインポート画面の属性にある整数は 4 バイトの整数を指します。bigint(8
バイトの整数)には対応していません。
612
図 8-14 データインポート画面
■DBSQL
導入したデータベースに SQL を発行し、その結果を取得するには、下図のように、オブ
ジェクトブラウザから SQL アイコンをプロジェクトボードに配置し、DB 接続設定アイコ
ンと接続し、実行を選択します。その後、エラー! 参照元が見つかりません。のように SQL
定義フォームが表示されるので、SQL クエリを記述します。一度に複数出力したいのであ
れば、出力結果名を増やし、SQL クエリを同じ数だけ書きます。上から n 番目の SQL ク
エリの結果は、出力結果名の上から n 番目のテーブルに入力されます。例えばエラー! 参照
元が見つかりません。では、1 行目の SQL クエリの結果が result1 に、2 行目の SQL クエ
リの結果が result2 というテーブルになります。
613
図 8-15 DBSQL の貼り付け
図 8-16 SQL 定義フォーム
また、SQL 文の発行は、スクリプトで関数呼び出しを行うことでも実行可能です。詳細は「ス
クリプト」の項を参照してください。
614
8.4. データベース連携(旧)
(こちらは旧バージョンに搭載されている機能です。プロジェクトボードに配置済みのア
イコンはご利用になれますが、オブジェクトブラウザおよび右クリックメニューからの配
置はできません。)
VAP はデータベースシステム Oracle や Microsoft の Access、ODBC 接続できるデータ
ベースとの連携ツールを提供します。データベース内のデータを取得するには 2 段階の操
作が必要です。1 つはデータベースの指定(接続)、もう一つはテーブルの取得です。テーブ
ルの取得には単にデータベース内に存在するテーブルを取得するテーブル選択と、データ
ベースに SQL を発行し、その結果を取得する SQL の 2 つの方法があります。
■ Access との連携
Access データベースを取り込むには、下図のようにプロジェクトボードの何も無いとこ
ろを右クリックし、「新規アイコン作成」→「外部データ入力」→「データベース」を選択し、
アクセスデータベースファイルを指定します。
615
図 8-17
データベースファイルの取り込み
取り込まれたデータベースファイルがプロジェクトボード上に現れます。
■ODBC 接続によるデータベース連携
ODBC 接続可能なデータベースからデータを取り込む場合、まず DSN を Windows のシ
ステムに登録します。
WindowsXP の場合,
「スタート」→「コントロールパネル」→「管理ツール」→「デー
タベースソース(ODBC)
」の順に選択し、ODBC の DSN を作成します。この時、ODBC
ドライバはユーザ側で用意する必要があります。その後、下図のようにプロジェクトボー
616
ドを右クリックし、「新規アイコン作成」→「外部データ入力」→「データベース」→「ODBC」
を選択し、データベース選択画面を表示させ、データベース選択画面で DSN を選択し、必
要ならユーザ名、パスワードを入力し、VAP に取り込むことができます。
※ MySQL との連携は、ODBC 経由で行ってください。
※ 注意:データベースが DB2 の場合、ODBC 接続が正常に動作しないことが確認されて
います。DB2 は、ODBC ではなく DB2 を選択して接続してください。
※ 注意:64bit 版 VAP を使用する場合、Access の 64bit 対応 ODBC 接続はありません。
64bit 版 VAP の Access ファイルへのアクセスは、VAP が提供するアイコンを利用したとき
のみ可能です。また、VAP のスクリプトからはアクセスできません。
※ 注意:64bitOS で 64bit 版 VAP を動作させる場合、32bit 版、64bit 版両方の ODBC
が必要となります。以上の環境をご利用の場合は、下記の手順で VAP からデータベースへ
の接続の設定を行ってください。
(MySQL と SQLServer について確認済)
1) 32bit、64bit 版両方の ODBC ドライバをインストールします。
2) C:¥Windows¥System32¥odbcad32.exe を実行して、システム DSN にデータソース
の登録を行います。
3) 登録が済んだら画面を閉じます。
4) C:¥Windows¥SysWow64¥odbcad32.exe を実行して、システム DSN にデータソー
スの登録を行います。ここで、データソース名を設定するときには 2)の手順で設定し
たデータソース名と同じにする必要があります。
5) 以上で VAP からデータベースへのアクセスができるようになります。
617
図 8-18
データベースのテーブル選択
■テーブル選択
導入したデータベースから、テーブルを選択する方法は下図のように、オブジェクトブ
ラウザからテーブル選択アイコンをプロジェクトボードに配置し、データベースアイコン
と接続し、実行を選択します。ここでデータベースとの接続が行われるので、必要ならユ
ーザ名、パスワードを入力します。その後、下図のようにテーブル選択画面が表示され、
テーブルを選択します。
618
図 8-19
図 8-20
テーブル選択アイコンを貼り付け
データベースのテーブル選択
テーブル選択を行うと、そのデータをインポートする画面が現れます。行選択では方法
として、全件選択、先頭から、一定間隔、ランダム、SQL を選択出来ます。
619
図 8-21
データインポート画面
選択したテーブルを表示した結果は、通常の処理アイコンで得られた結果と同様です。安
全上、
「テーブル選択」で入力されたパスワードは、VAP を閉じると共に削除されますので、
次回 VAP を起動し、
「テーブル選択」を再実行した場合は、再度パスワード入力が必要と
なります。バッチ処理で、ユーザ ID・パスワードを毎回入力することなくデータベースに
接続しテーブル選択を行う場合には、以下の方法で行います。
1.
「テーブル選択」アイコンの右クリックメニューから、パラメータ取得を選択
2.新規スクリプトを作成し、Ctrl-V または、
「貼り付け」で行うと、DB から取得す
るスクリプトが自動的に生成されます。
3.スクリプトの最後の一行に実際のユーザ ID とパスワードを記述します。
※注意:この方法は、DB パスワードを直接テキスト文章に書き込みますので、セキュリテ
ィ上十分注意して使用してください。
(変更する部分)
DB 接続文字列=Provider=MSDASQL:DSN=abcde;
620
となっている部分に、次のように「User ID」 と「Password」の項目を付加します。
DB 接続文字列=Provider=MSDASQL;DSN=abcde;User ID=***;Password=***
#上記スクリプトの***の部分に ID とパスワードを記述する。
スクリプト内にユーザ ID とパスワードを記述し、実行すると、DB からパスワード入力な
しでデータを取得することができます。
※注意:データインポート画面の属性にある整数は 4 バイトの整数を指します。bigint(8
バイトの整数)には対応していません。
■SQL
導入したデータベースに SQL を発行し、その結果を取得するには、下図のように、オブ
ジェクトブラウザから SQL アイコンをプロジェクトボードに配置し、データベースアイコ
ンと接続し、実行を選択します。ここでデータベースとの接続が行われるので、必要なら
ユーザ名、パスワードを入力します。その後、エラー! 参照元が見つかりません。のように
SQL 定義フォームが表示されるので、SQL クエリを記述します。一度に複数出力したいの
であれば、出力結果名を複数書き、SQL クエリを同じ数だけ書きます。上から n 番目の SQL
クエリの結果は、出力結果名の上から n 番目のテーブルに入力されます。例えばエラー! 参
照元が見つかりません。では、1 行目の SQL クエリの結果が market に、2 行目の SQL ク
エリの結果が client というテーブルになります。
図 8-22
SQL アイコンの貼り付け
621
図 8-23
SQL 定義フォーム
SQL アイコンやテーブル選択アイコンが結果を持つ状態で、データベースアイコンから引
かれている矢印を削除すると、データアイコンになります。
図 8-24
SQL アイコンのデータアイコン化
また、SQL 文の発行は、スクリプトで関数呼び出しを行うことでも実行可能です。詳細は
「スクリプト」の項を参照してください。
622
8.5. Excel 連携
VAP と Excel との連携について紹介します。
■Excel ファイルの取り込みと削除
VAP は、Excel ファイルを処理アイコン(データファイルではない)としてプロジェク
トに導入することができます。Excel ファイルをプロジェクトに導入するには、通常のアイ
コンを導入する操作と同じ操作で行います(エクスプローラからアイコンをドラッグアン
ドドロップするなど)
。削除についても、通常のアイコンと同様の操作で行います。
図 8-25 Excel ファイルの導入
■Excel ファイルの入出力
プロジェクトボードに導入した Excel ファイルに対し入出力を設定するには、Excel アイ
コンを右クリックし、プロパティを選択します。
623
図 8-26
プロパティ選択
すると、入出力テーブル選択画面が表示されます。
図 8-27
入出力テーブル選択
この画面の入出力テーブル選択には各シート名に対し入力・出力を行うかどうかを設定
することができます。入力と出力を用途に合うように設定する(入出力マッチングを適切
に設定する)と、処理が実行できるようになります。
624
図 8-28
入出力テーブル選択結果
(注意)
・
Excel シートをデータソースとしてのみ利用する場合は、
「入力」のチェックを外し、
「出力」
のみにチェックします。
・
Excel からデータを取得するときに、数値の桁区切りの記号にコンマが入っている場合、文
字列としてしか取り込めませんので、数値として取り込む場合は、桁区切りの記号を削除し
てください。
・
Excel のセルにカンマ、改行が含まれても導入可能です。ただし、自動的に以下の処理が行
われます。
・

セルに含まれるカンマを漢字全角のカンマ「,」に変換します。

セルの両端にダブルコーテーションが含まれた場合は、除外されます。

セルの中に改行が含まれた場合は、その改行が削除されます。
通貨型、会計型や数値型などで書式設定を行っている場合、数値列として取り込むには
Microsoft Access 2007 以降か、2007 Office system ドライバ: データ接続コンポーネント
がインストールされている必要があります。
■実行ボタンの作成
VAP は、Excel ファイルに実行ボタンを作成することにより、Excel から VAP のバッチ
処理を実行することが出来ます。Excel ファイルに実行ボタンを作成するには、Excel アイ
コンを右クリックし、実行ボタン作成を選択します。
625
図 8-29
実行ボタン作成
すると、バッチファイルを保存する画面が表示されますので、適当な名前で保存してくだ
さい。
図 8-30
バッチファイルの保存画面
バッチファイルの保存と共にプロジェクトがエクスポートされ、Excel ファイルに実行ボ
タンが作成されます。
626
図 8-31
実行ボタン作成結果
ここで実行ボタンをクリックすると、Excel 上で VAP のバッチ処理を実行することが出
来ます。
■パラメータシート
VAP は、Excel でバッチ処理を実行する際にパラメータを再設定することが出来ます。
そのためには、パラメータシートやパラメータファイルを編集する必要があります。
■パラメータシートの編集
Excel に実行ボタンを作成すると、同時にパラメータシートを表示というボタンが作成さ
れます。パラメータシートを表示というボタンをクリックすると、バッチ処理に関するパ
ラメータを保存しているシートを表示することが出来ます。また、パラメータシートを非
表示というボタンをクリックすることで、非表示にすることが出来ます。
627
図 8-32
パラメータシート
外部公開を指定しているときは、指定数を設定し、実行順・アイコン名・操作・ファイ
ルパスの初期設定を行ってからバッチ処理を実行して下さい。
1)指定数は、外部から行う処理の数を指定します。0以上の整数を指定します。
0を指定すると、デフォルトの処理のみを実行します。
2)実行順は、外部から行う処理の順番を指定します。番号の小さいものから順
に実行します。1以上指定数以下の整数を指定します。
3) アイコン名は、外部から行う処理を示すアイコン名を指定します。
4) 操作には次の 3 つのパラメータを指定することが出来ます。
・
「replace data」
:データファイルを置き換える
・
「run」
:処理を実行する
・
「set parameter」 :処理のパラメータを変更する
ファイルパスは、操作で設定したパラメータによって意味が異なります。
・
「replace data」
:入力データのパス
・
「run」
:出力結果ファイルを保存するパス(省略可能)
・
「set parameter」 :パラメータファイルのパス
■パラメータファイルの編集
デフ ォルトの パラメータフ ァイルは 、バッチファ イルを保 存したディレ クトリ に
628
vmstudioProjectParameterFile.txt という名前で保存されています。
図 8-33
パラメータファイル
外部公開で「set parameter」を指定した場合には、このようなパラメータファイルを別
に作成する必要があります。この際、以下の事に注意して下さい。

vmstudioProjectParameterFile.txt とは別の名前のパラメータファイルを作成する。

パラメータファイルには、書き換えたい処理アイコンのパラメータのみを記述する。
■設定の変更
VAP をバージョンアップした後に、Excel との連携機能を実行すると「アイコンがあり
ません」と表示されて正しく実行できない場合があります。この場合、Excel アドインの設
定を手動で変更する必要がありますので、以下の手順で変更作業を行ってください。
1. まず、Excel を起動し、メニューバーの ツール→アドイン を選択します。
2. Vmstudioapp にチェックが入っている場合はそのチェックをはずします。
3. 参照ボタンを押します。
4. ファイルを指定するダイアログになるので、VAP をインストールしたフォルダ(通
常 C:\Program Files\Mathematical Systems Inc\Visual Analytics Platform に
なります)以下の Cmd フォルダ内の vmstudioApp.xla を指定してください。
629
図 8-34 Excel 画面
図 8-35
アドインウィンドウ
630
図 8-36
アドイン参照ダイアログ
631
8.6. R 連携
R が VAP と同じマシンにインストールされている場合、VAP から R を呼び出し、R スク
リプトや、Visual Mining Studio→外部データ→R 以下のアイコンを実行することができま
す。
8.6.1. 連携の手順
VAP で R を呼び出すためには、以下のソフトウェア、ライブラリを導入する必要があり
ます。

R(バージョン 2.15.2 以降)

http://cran.r-project.org からダウンロードし、インストールします。
※64bit 版 OS であれば 64bit 版の R が優先して使用され、32bit 版しかインス
トールされていない場合には、32bit 版が使用されます。
VAP で使用する R のバージョンを変えたい場合は、[使用したい R のインストールフォ
ルダ]/bin 以下にある RsetReg.exe を実行してください。Windows Vista 以降では、管理者
権限で実行してください。
8.6.2. R スクリプトの定義
R スクリプトアイコンを作成するには、プロジェクトボード上の何もない部分を右クリッ
クし、メニューから新規アイコン作成→スクリプト→R とします。
632
図 8-37 R スクリプトの作成
作成されたアイコンを右クリックし、メニューから編集を選択すると、R スクリプト定義画面
が表示されます。

R スクリプトの編集、実行
VMS スクリプトと同様に、R のスクリプトを作成、実行できます。

対話的なスクリプト編集
編集画面起動時に R のコンソールが起動するため、データの内容、結果を確認しな
がら、対話的にスクリプトの作成が可能です。
633
スクリプト編集欄
入出力設定
R コンソール
図 8-38 R スクリプト定義画面
R スクリプト定義画面の説明

データ読み込み
「データ読み込み」ボタンを押すと、入力データ名に設定された変数に親アイコン
のデータを読み込み、R 上で処理が実行可能な状態にします。親アイコンに結果が存
在しない場合には読み込みに失敗します。

R 再起動
「R 再起動」ボタンを押すと、今まで行った処理をすべて破棄し、R コンソールの再
起動を行います。データ読み込み前の状態になるため、再度「データ読み込み」を
行う必要があります。

最前面に表示
634
「最前面に表示」チェックボックスにチェックを入れると、R スクリプトウインドウ
を常に最前面に表示します。

スクリプト編集欄
R のスクリプトを記述する欄です。R の文法に従ってスクリプトを記述してください。
入力データは「入力データ名」で設定した名前の data.frame として入力されます。
入力データの整数列は integer 型、実数列は numeric 型、文字列は factor 型に変換
されます。文字列は character 型ではないことに注意してください。R スクリプトの
実行後に、出力結果名のオブジェクトに as.data.frame()をかけた結果が VAP のデー
タに変換され、アイコンの結果となります。

R コンソール
R の処理結果を表示します。下部のテキストボックスに R のコマンドを入力し、
「Enter キー」もしくは「1 行実行」ボタンを押すことでコマンドが実行されます。
また、
「Ctrl+R」でスクリプト編集欄の選択されたスクリプトを実行します。何も選
択されていない場合には、スクリプト編集欄のスクリプト全部を実行します。

入出力設定
入出力データの R の data.frame としての変数名を設定します。空文字が設定されて
いる場合、何も書かれていないものとして扱います。
入力データ名にはカンマを使用することはできません。出力結果名にはカンマとフ
ァイル名に指定できない文字(\ / ? : * " > < |)を使用することはできません。

実行
「実行」ボタンを押すと、入力データを読み込み、スクリプト編集欄に記述された
内容を実行し、結果を VAP のデータに変換します。実行前に R コンソールは再起動
され、スクリプト欄に記述されていない変数などは完全に破棄され、スクリプト欄
の内容だけが実行された状態になります。

保存
スクリプト編集欄に記述されたスクリプトと、入出力設定の保存を行います。

OK
保存と同じ操作を行った後、R スクリプトウインドウを閉じます。もし、
「実行」を
行った際と、
「OK」を押した際のスクリプトが一致していれば、アイコンの結果と
して実行結果が保存されます。一致しない場合は、アイコンの結果は削除されます。

Cancel
635
スクリプトの変更を保存せずに、R スクリプトウインドウを閉じます。
R スクリプト定義画面で「Ctrl+F」を押すと、
「検索と置換」ウィンドウが表示され、R
スクリプトの検索と置換を行うことができます。
図 8-39
検索と置換
8.6.3. R スクリプトの実行
R スクリプトアイコンは、VAP のスクリプトアイコンと同じように、ダブルクリック等
で定義されたスクリプトを実行することができます。
1.
R 環境設定の読み込み
環境変数.Renviron、.Rprofile、Rprofile.site が設定されていれば、まずこれらが実
行されます。R のデフォルトの設定では、.Renviron、.Rprofile はカレントディレク
トリ、Windows ユーザフォルダの順に探されます。VAP では R を起動する際にはカ
レントディレクトリが VAP のユーザフォルダになりますので(VAP のユーザフォル
ダについては、マニュアル「1.3 ユーザフォルダの指定」を参照)、VAP 用の設定が
必要な場合は、VAP ユーザフォルダ直下にこれらの設定ファイルを配置してくださ
い。
2.
入力データの data.frame への変換
入力データを R の data.frame に変換して入力設定に指定された R の変数に格納し
ます。
3.
スクリプトの実行
636
スクリプト編集欄に記述したスクリプトが実行されます。
4.
出力データの VAP バイナリデータ(vdt)への変換
出力結果名に指定された R のデータを vdt ファイルに変換し、アイコンの結果とし
て保存します。出力結果名に指定された R の変数は numeric, integer, character,
factor のいずれかもしくは、上記のデータで構成された matrix か data.frame であ
る必要があります。
実行途中のメッセージは VAP のメッセージボックスに表示されます。ただし、R は slave
オプションを付けて起動されるため、print などで明示的に出力されたメッセージのみが
表示されます。エラーが発生した場合は、処理を途中で中止し、traceback()の結果を表
示します。
8.6.4. R スクリプトの再利用
R スクリプトアイコンは VAP のスクリプトアイコンなどと同様に、オブジェクトブラウ
ザにドラッグ&ドロップで登録することができます。登録されるフォルダは、ソリューショ
ン→R-スクリプトになります。登録したスクリプトアイコンはオブジェクトブラウザから
ドラッグ&ドロップで再利用できます。登録した R スクリプトを編集する際には、オブジ
ェクトブラウザ上の R スクリプトアイコンを右クリックし、メニューから編集を選択しま
す。なお、R スクリプトアイコンをプロジェクトボードへコピーしたものは、基となったオ
ブジェクトブラウザの R スクリプトアイコンの定義とは連動しません。
637
図 8-40 R スクリプトの再利用方法
638
9.
レポーティング機能
9.1. 概要
レポーティング機能とはプロジェクトにより作成されたデータから必要なデータを集め、
HTML 形式のレポートに半自動的にまとめる機能です。ユーザは必要なデータを指定して、
必要なメモを書き加えることでレポートが自動作成されます。以下、動作手順と結果レポ
ートの書式について紹介します。
639
図 9-1
レポーティング機能によって作られるレポート
640
9.2. レポーティングの準備
処理アイコン上で右クリックするとメニューに「レポーティング対象」
という項目があります。これをクリックすると、右図のように”R”の文字
がアイコンの右上につきます。このマークはそのアイコンの入力や結果な
どの詳細がレポートに取り込まれること、つまりレポーティングの対象に
なることを意味しています。以後、このマークのついたアイコンをレポー
ティング対象アイコンと呼びます。右図参照。
注意:1 プロジェクト1レポートの形式を取っています。1つのプロジェクト内で複数の
レポートを同時に作成することはできません。レポートを出力後、新しいレポート作成に
移ってください。
複数のアイコンを同時にレポーティング対象アイコンにする方法
スクロールボタンをドラッグして範囲選択後、範囲内の矢印上で右クリックメニューを開
き、レポーティング対象とすると複数のアイコンを同時にレポーティング対象アイコンと
することができます。
図 9-2
まとめてレポーティング対象アイコンとする
641
9.3. レポーティング編集画面
レポーティング対象アイコンを選んだ後、プロジェクト上で右クリックしてメニューし
てメニューを開き「レポーティング」を選択します。すると以下のような画面が表示され
ます。
図 9-3
レポーティング編集画面
(2) レポートタイトル
レポートのタイトルになります。この画面で編集可能です。
(3) 詳細記述
プロジェクト上に書いたメモの内容。この画面で編集可能です。
(ア) プロジェクトの内容へ戻る
プロジェクト内のメモのみの内容(初期状態)にリセットします。
(4) アイコン毎の出力設定
ここにレポーティング対象アイコンの設定情報が表示されます。
(ア) アイコン名
アイコンの名前(アイコンの下に書いてある文)
。この画面で編集可能です。
(イ) 記述
アイコンのメモの内容(アイコン上で右クリックメニュー内のメモに書き加えた
642
内容)
この画面で編集可能です。
(ウ) オプション定義出力
処理アイコンのオプションやスクリプトアイコンのスクリプトを出力する場合は
選択します
選択されたアイコンは○になります。×は未選択を表します。
(エ) グラフ
そのアイコンが出力したグラフからレポートに記載するグラフを選択できます。
ダブルクリックで選択ウィンドウが表示されます。
また外部(HDD)からグラフを取り込むことができます。右ダブルクリックでフ
ァイル指定画面が表示されます。(下図参照)
図 9-4
外部から取り込むグラフのファイル指定画面
(オ) 出力テーブル
そのアイコンの出力テーブルからレポートに記載するテーブルを指定します。ダ
ブルクリックで選択ウィンドウが表示されます。指定しない場合は記載されませ
ん。
(カ) データ
そのアイコンの入力テーブルからレポートに記載するテーブルを選択できます。
ダブルクリックで選択ウィンドウが表示されます。
(キ) 最大出力行数
643
上記の出力テーブル、またはデータからレポートに記載する行数の上限を指定で
きます。
例えば最大出力行数を 10 とすれば、結果テーブルの 1 行目から 10 行目までが出
力されます。
(5) 出力順序調整
アイコン詳細情報に表示される順番にレポートに出力されます。
「▲」
「▼」ボタンで表
示されている順番を変更することができます。
(6) OK
設定内容が保存されます。
(7) レポート出力
後述のレポート出力フォルダ指定画面にてフォルダを指定してレポートを出力します。
(8) キャンセル
設定をキャンセルします。
644
9.4. レポート出力
レポーティング編集画面でレポート出力をクリックすると、「フォルダの参照」という画
面が表示されます。この画面でレポーティングの出力フォルダを指定します。OK をクリッ
クするとレポートが作成されます。
図 9-5
レポート出力先フォルダ指定画面
645
9.5. レポーティング結果
レポーティングの結果は HTML 形式のファイル群となって指定したフォルダに保存され
ます。既存のレポーティング結果フォルダを指定した場合は、上書きするか確認されます。
指定したフォルダ内に”index.htm”があります。それをブラウザなどで開くとレポーティン
グ結果を見ることができます。
出力されるフォルダの構造:
index.htm
レポートのトップページファイル
Common
共通の設定ファイル
Report
レポート内容(データやグラフ)の入ったファイル
図 9-6
レポート画面(ブラウザで表示)
646
レポーティング結果(レポート内容)は以下のような構成になります。
(1) 目次(左側)
(ア) はじめに
レポートタイトルの下の説明欄へのリンクです、左クリックで移動できます。
(イ) 各結果アイコン名
各結果にリンクされています。目次内のアイコン名を左クリックすると、そのア
イコンの情報へ移動できます。
(2) レポート内容(右側)
上から順に説明します
(ア) レポートタイトル
レポートの最初にタイトルが表示されます。
(イ) 各アイコンの説明
① 記述
レポーティング編集画面の記述の欄の内容が表示されます。
② オプション定義
下図のようなアイコンのパラメータ情報が表示されます。
647
③ 出力テーブル
編集画面にて出力テーブルにチェックした場合、指定した最大出力行数を上
限にして表が出力されます。各テーブルの表の下にそのデータへのリンクが
張られ、左クリックするとデータを保存することができます。下図のように
表示されます。
④ グラフ
編集画面にてグラフの欄にチェックした場合、アイコンの結果のグラフが表
示されます。
⑤ データ
アイコンへの入力データが、出力テーブルと同様の形式で出力されます。同
様に表の下にデータへのリンクがあります。
648
10. スクリプト
10.1. 概要
オブジェクトブラウザに含まれるデータ加工用のアイコンには、データの前処理に必要な
機能は備えられていますが、データに対する細やかな処理は含まれていません。より細や
かな作業を行うための機能として VAP ではスクリプト実行機能を提供します。
スクリプトを使うと、例えばデータ間の数値演算、マトリックス計算、文字操作、日付
から曜日への計算、データのグルーピングなどを行うことができます。
スクリプトの構文は S-PLUS の文法を簡略化したものになっており、S-PLUS に慣れて
いるユーザであれば導入は簡単です。本章では、例を通じてスクリプトの定義、実行方法
を紹介し、スクリプトの定義文、利用可能な関数などを紹介します。
649
10.2. 定義
スクリプトを定義するには、次のいずれかの方法でおこないます。すると、プロジェク
トボード上にスクリプトアイコン が作成されます。

ツールバーから ツール → 新規スクリプト を選択する。

プロジェクトを右クリックして、メニューから 新規アイコン作成 → スクリプト
を選択する。
図 10-1
スクリプト定義画面
スクリプト定義ウィンドウの機能詳細

定義
ここにスクリプトの定義を記述します。スクリプト入力を支援する、次の機能が使えま
す(Ctrl-J とは、キーボードのコントロールキーを押しながら J キーを押す操作を示して
います)
。尚、定義ウィンドウを右クリックすると、編集操作一覧が表示されます。
650
図 10-2
■
編集操作一覧画面
関数一覧 Ctrl-J
使用できる関数を選択します。関数を選択すると、その関数が、説明を記述したコメン
トとともに定義に入力されます。
図 10-3
■
関数一覧
列名参照 Ctrl-H
スクリプトに入力されているデータから列名を取得します。特定の列だけを計算対象に
する場合に有効です。ただし、他のアイコンからデータが入力されている場合にのみ有効
です。
651
図 10-4 列名参照
■
内容検索 Ctrl-F
スクリプト定義の中で、検索・置換をおこないます。
図 10-5
検索と置換
■ Redo 機能 Ctrl-R
スクリプト定義内で直前に行った処理を再度実行します。
■
コメントブロック F2 キー
スクリプト定義内の選択された複数行を同時にコメント(注釈)にします。
■
非コメントブロック F3 キー
スクリプト定義内の選択された複数行にわたるコメントを解除します。
■
自動インデント機能
652
Enter キー入力時に次の行を自動でインデントします。{}内に入るごとに 1 段インデン
トします。

入力データ名・出力結果名
スクリプトで入力データ、出力データとして扱う変数名を指定します。2 つ以上の入力、
出力を指定する場合は、リターンキーを 2 回連続で入力することによって、変数の入力欄
を増やします。

ウィンドウを最前面に表示
チェックすると、スクリプト定義ウィンドウは他のウィンドウの前面に表示されます。

結果表示・実行・OK・Cancel・保存 ボタン
実行ボタンを押すと、スクリプトが実行されます。出力データがある場合は、結果表示
ボタンが実行可能となり、結果表示ボタンを押すと出力結果を表示します。また、OK ボタ
ンを押すと、スクリプト定義の内容を保存し、定義画面を閉じます。
定義画面を閉じたりスクリプト定義の内容を保存した際に、保持している出力結果が保
存されているスクリプトにより生成されたものではない場合、結果が削除されます。
スクリプトからのヘルプ呼び出し
スクリプト定義画面から、直接ヘルプの該当するページを参照することができます。そ
の方法は次の 2 通りあります。
1. Ctrl-J でスクリプト関数一覧を表示させ、知りたい関数を選択して F1 ボタンを押す。
2. スクリプト定義画面に記述されている関数を選択して F1 ボタンを押す。
図 10-6
関数一覧からヘルプを参照
653
図 10-7
関数名からヘルプを参照
654
10.3. 実行と登録
■ スクリプトの実行
スクリプトアイコンの実行方法は、他の処理アイコンと同じで、アイコンの右クリック
メニューから実行を選択します(スクリプトではパラメータを必要としないため、実行、
再実行、ダブルクリックのいずれも同じ実行動作をします)
。
図 10-8
スクリプトの実行
実行内容の確認は、他の処理アイコンと同様に、データビューでおこないます。
655
図 10-9
スクリプト「変換」のデータビュー
■ スクリプトの登録
スクリプトアイコンの登録方法は、データやプロジェクトと同様オブジェクトブラウザ
のソリューションフォルダにドラッグ&ドロップして登録します。再利用は、オブジェク
トブラウザからドラッグ&ドロップしておこないます。よく使う処理や、スクリプト定義
の雛形を登録しておくと、非常に便利です。
656
図 10-10 スクリプトの登録
登録したスクリプトの編集をおこなうには、オブジェクトブラウザ上のスクリプトアイ
コンを右クリックし、メニューから編集を選択します。なお、スクリプトアイコンをプロ
ジェクトボードへ持込んだあとは、元となるオブジェクトブラウザにあるスクリプトアイ
コンの定義と連動しません。つまり、プロジェクトボード上のスクリプトアイコンの定義
内容を修正しても、オブジェクトブラウザ上のスクリプト定義は変更されません。
図 10-11
登録したスクリプトの編集
657
10.4. スクリプトの基本
スクリプトは複数の文で構成されます。文はセミコロン「;」で終了します。「//」で始ま
る行や、
「/*」と「*/」で囲まれた文はコメントと見なされ、処理時に無視されます。「//」
の有効範囲は行の末尾までです。さて、基本的なスクリプトを実行してみます。スクリプ
トアイコンを作成し、出力結果名を「Output」とし、スクリプト定義画面に次のように入
力してください。
println ("Hello, Visual Analytics Platform World!!");
// メッセージボードに表示
OK ボタンを押すと、スクリプトアイコン「表示」が作成されます。このアイコンを実行す
ると、メッセージボードに文字が出力されます。
図 10-12 メッセージ出力結果
メッセージウィンドウに " Hello, Visual Analytics Platform World!!" と表示されました。
しかし変数 Output に何も設定していないため、その旨のエラーメッセージが表示されてし
まいました。次に、入力データをそのまま出力結果にするスクリプトを作成してみます。
入力データ名を「Input」
、出力結果名を「Output」と定義し、スクリプト定義画面に次の
ように入力して下さい。OK ボタンを押すと、スクリプトアイコン「表示」が作成されます。
このアイコンを実行すると、メッセージボードに文字が出力されます。
658
Output = Input;
//入力データを出力結果に渡す
//テーブルの入出力を行っている(後述)
その後、データアイコンからスクリプトアイコンに向かって矢印をつなぎます。
図 10-13 スクリプトの実行例
スクリプトアイコンを実行すると、入力データがそのまま出力結果になります。このよう
にして、データの入出力を行うことが出来ます。以下では、実際のデータを扱う例を紹介
します。スクリプトが扱うデータは、テーブル形式のデータです。使用例中で用いられる
入力データ「菖蒲」は、以下の 5 列 9 行のテーブルです。
種類
がく長
がく幅
花びら長
花びら幅
Setosa
51
35
14
2
Versicolor
70
32
47
14
Versicolor
57
28
41
13
Setosa
49
30
14
2
Virginica
63
33
60
25
Virginica
58
27
51
19
Virginica
59
30
51
18
Setosa
47
32
13
2
Setosa
49
30
14
2
■テーブルの代入
代入先 = 代入元;
テーブルの代入を表します。代入先の列名は、基本的に代入元の列名を継承しますが、
テーブルの演算など継承されない場合は、代入先の列名は自動的に “A1”, “A2” ・・・ と
命名されます。ユーザが強制的に命名することもできます。
659
図 10-14 テーブルの代入例 1
図 10-15 テーブルの代入例 2
■テーブルの列参照
テーブルの列を参照する場合は、
テーブル名(”列名”, ・・・, “列名”);
または、
テーブル名(列番号, ・・・, 列番号);
によって行います。
660
図 10-16 テーブルの列参照例
■テーブルの生成
{ ・・・ }
1 列のデータは “{“ , “}” を囲むことで定義されます。また、NULL テーブル (a = {}; )
の記述も可能です。
図 10-17 テーブルの生成例
661
■ テーブルのリスト
スクリプトでは複数のテーブルをまとめてリストとして扱うことができます、これをテ
ーブルのリストと呼びます。ここでは単にリストと呼ぶことにします。リストに含まれる
テーブルのことをリストのメンバーと呼びます。以下にリストを扱う関数を列挙します。
list
リストの生成、結合
list_elem
リストのメンバー参照
list_size
リストのメンバー数
titles
メンバー名のテーブルを取り出す
read_list,dump_list
保存、読み込み
apply_map
各メンバーへのプロシージャ(procedure)の適応、結果はリスト
sys_proc
各メンバーへの処理アイコンの適応、結果はリスト
as.list
キー指定によるテーブルのリスト化
as.table
リストの各メンバーのファイルパスのテーブルを得る
cbind
メンバーの列方向への結合、結果はテーブル
row_append(rbind)
メンバーの行方向への結合、結果はテーブル
for 文
リストのメンバーをループ変数とする
662
10.5. テーブルの基本関数
■テーブルの基本情報
baseInfos(テーブル);
テーブルの列数、行数、文字列の種類数、数値列の統計量などを出力します。
titles(テーブル);
「テーブル」の列名を一列のテーブルとして返す。
a = baseInfos(菖蒲);
// テーブル菖蒲の基本情報
tits = titles(菖蒲);
new.tits = paste("新.", tits);
a(new.tits) = 菖蒲;
// 「titles(菖蒲)」は菖蒲の列名を含む 1 列テーブルを返す。
// 「paste」は文字列の結合関数: 文字"新."と tits の全内容を合成する
// tits の内容
Titles
種類
がく長
がく幅
花びら長
花びら幅
// new.tits の内容
A1
新.種類
新.がく長
新.がく幅
新.花びら長
新.花びら幅
663
// a の内容
新.種類
新.がく長
新.がく幅
新.花びら
新.花びら
長
幅
Setosa
51
35
14
2
Versicolor
70
32
47
14
Versicolor
57
28
41
13
Setosa
49
30
14
2
Virginica
63
33
60
25
Virginica
58
27
51
19
Virginica
59
30
51
18
Setosa
47
32
13
2
Setosa
49
30
14
2
count(テーブル);
テーブルに含まれる文字列の種類数を出力する。数値列は 0 とする。
counts(テーブル);
テーブルに含まれる文字列の全種類を出力する。数値列は出力しない。
strlen(テーブル);
テーブルに含まれる文字列各セルの文字数を出力する。数値列はそのままもとの内
容を出力する。
a = count(菖蒲);
// 文字列の種類数を出力する。数値列は 0 とする
// a の内容
種類.Cnt
がく長.Cnt
がく幅.Cnt
0
0
3
花びら長.Cnt
花びら幅.Cnt
0
a = counts(菖蒲);
// 文字列の全種類を出力する。数値列は出力しない。
// a の内容
種類
がく長
がく幅
花びら長
Setosa
Versicolor
Virginica
664
花びら幅
0
a = strlen(菖蒲);
// 文字列の各セルの文字数を出力する。
// 数値列の場合は、そのまま変更しないで、元の内容を出力する。
// a の内容
種類.Len
がく長
がく幅
花びら長
花びら幅
6
51
35
14
2
10
70
32
47
14
10
57
28
41
13
6
49
30
14
2
9
63
33
60
25
9
58
27
51
19
9
59
30
51
18
6
47
32
13
2
6
49
30
14
2
a = substring(菖蒲, 2, 5);
// a の内容
種類.Sub
がく長
がく幅
花びら長
花びら幅
etos
51
35
14
2
ersi
70
32
47
14
ersi
57
28
41
13
etos
49
30
14
2
irgi
63
33
60
25
irgi
58
27
51
19
irgi
59
30
51
18
etos
47
32
13
2
etos
49
30
14
2
// 文字列の 3 文字目から最後までをとってくるには
// strlen とあわせて、次のようにします。
a = substring( 菖蒲("種類"), 3, strlen(菖蒲("種類") );
665
■テーブルの部分抽出
特定の条件を満たす行を抽出するには、sel を用います。
sel( 条件, テーブル )
… 条件を満たす行に関して、テーブルの該当行を出力します。
sel( 条件, テーブル 1, テーブル 2 )
… 条件を満たす行はテーブル 1 を、満たさない行はテーブル2を出力します。
cell( テーブル, 列名(列番号),行番号)
テーブルに含まれるセルを出力します。
a = sel(row={1,3,5,7}, 菖蒲);
// 「row={1,3,5,7}」
:第1、3、4、7行の内容を取得し、a に代入
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
51
35
14
2
Versicolor
57
28
41
13
Virginica
63
33
60
25
Virginica
59
30
51
18
a= sel( 菖蒲("種類") != "Virginica", 菖蒲);
// 条件式「菖蒲("種類") != "Virginica"」は、
// 菖蒲の種類が、"Virginica"ではないもの
//
注:条件式に現れるテーブルは 1 列のテーブル(例:
「菖蒲("種類")」
)のみ有
効
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
51
35
14
2
Versicolor
70
32
47
14
Versicolor
57
28
41
13
Setosa
49
30
14
2
Setosa
47
32
13
2
Setosa
49
30
14
2
666
akind =菖蒲("種類");
a(〝x〝,"y","z") =
sel(akind == "Virginica" or akind == "Setosa", 菖蒲);
// 条件式: akind が"Virginica"、または、"Setosa" であるもの
// a の内容
x
y
z
Setosa
51
35
Setosa
49
30
Virginica
63
33
Virginica
58
27
Virginica
59
30
Setosa
47
32
Setosa
49
30
r1 = 菖蒲("花びら長","花びら幅");
r2 = 菖蒲("がく長","がく幅");
a("長さ", "幅") = sel( row = {1,3,6}, r1, r2 );
// 第1,3,6行の内容が、r1 より取得、その他の行は、r2 より取得
//
注:2つのテーブル(r1,r2)から選択する場合、
//
r1 と r2 の行数が等しく、列属性が等しい必要がある。
//
但し、後述するように例外として 2 つのテーブルの片方、または両方が
//
スカラの場合もある。
// a の内容
長さ
幅
14
2
70
32
41
13
49
30
63
33
51
19
59
30
47
32
49
30
667
a("種類") = sel( 菖蒲("種類") == "Virginica",
"Missing Data", 菖蒲("種類") );
// 両選択テーブルの片方がスカラ("Missing Data")の場合
// a の内容
種類
Setosa
Versicolor
Versicolor
Setosa
Missing Data
Missing Data
Missing Data
Setosa
Setosa
a("種類") = sel( 菖蒲("種類") == "Virginica",
"Missing Data", "Ok");
// 選択テーブル両方がスカラの場合は、結果の行数=条件式の長さとなる
// a の内容
種類
Ok
Ok
Ok
Ok
Missing Data
Missing Data
Missing Data
Ok
Ok
668
a("長さ") = sel( 菖蒲("がく長") > 50,
2000, 菖蒲("がく長"));
// 数値条件:がく長の内容が 50 以上のものを、2000 に置き換える
// a の内容
長さ
2000
2000
2000
49
2000
2000
2000
47
49
a={1:10};
rowSel={ 1,5,2,7 };
b= sel (row=rowSel, a);
c= sel (row=3, a);
//指定した行のレコードを抽出
// b の内容
OneCol
1
2
5
7
// c の内容
OneCol
3
669
a("One3") = cell(菖蒲, 1, 3);
b("がく長 1") = cell(菖蒲,"がく長",1);
// セル参照
//
cell(テーブル,列指定, 行指定)
// a = 菖蒲の1列、3 行目の内容
One3
Versicolor
// b = 菖蒲の「がく長」列、1 行
がく長1
51
■テーブル操作関数
■テーブルの結合
cbind(テーブル,テーブル,…);
テーブルの間で、列と列を合成する。行数が異なるテーブル間の合成は、行数が多いテ
ーブルに合わせるように、スペースを行数が短いテーブルの最後の一行の内容で埋める。
row_append(テーブル,テーブル,…);
テーブルの間に、行方向で合成する(行追加)。各テーブル間の列数及び列属性(文字、
整数、実数)が一致する必要がある。
a("No.","名前","年齢") =
cbind({1:4}, {"A","B","C","D"}, {15,20,13,17});
// {1:4} は整数 1 から4までの列を発生
//cbind は複数列を合成する。cbind の引数個数は 2 個以上、任意である
//a の内容
No.
名前
年齢
1
A
15
2
B
20
3
C
13
4
D
17
670
a("SeqNo.","V","H") = cbind( {1:nrow(菖蒲)}, 菖蒲(1,5) );
// 「nrow(菖蒲)」は菖蒲の行数を返す
// a の内容
SeqNo.
V
H
1
Setosa
2
2
Versicolor
14
3
Versicolor
13
4
Setosa
5
Virginica
25
6
Virginica
19
7
Virginica
18
8
Setosa
2
9
Setosa
2
2
a("X","Y","Z") = cbind({1:3}, {11:17:2}, {20:16:-1});
b = cbind(0, 1, 2);
c = row_append(a, b);
// 「11:19:2」 は増量=2 の数値列 {11,13,15,17,19}
// 「20:11:-1」は増量=-1 の数値列 {20,19,18,…11}
// 異なる行数のテーブルを cbind する場合は、
// 行数が少ないテーブルの最後の行からコピーして補填する。
// a の内容
X
Y
Z
1
11
20
2
13
19
3
15
18
3
17
17
3
17
16
// b の内容
A1
A2
0
A3
1
2
671
// c の内容
X
Y
Z
1
11
20
2
13
19
3
15
18
3
17
17
4
17
16
0
1
2
■テーブルの生成
rep(テーブル,繰り返し数,方向);
行/列方向に繰り返し生成を行う。方向オプションで生成する方向を指定する。
tprod(table, key, default)
table で指定した内容に対して、全ての可能なキーのパターンを生成する。key で指定
した元データに存在しないパターンには default 値を代入する。key が重複する場合は最
初に現れた行をパターンとして選択する。
// a の内容
大文字
小文字
値
A
a
1
B
b
2
A
c
3
B
a
4
A
b
5
B
c
6
b = tprod(a, {"大文字","小文字"}, -99);
// b の内容
大文字
小文字
値
A
a
1
A
b
5
A
c
6
B
a
4
B
b
2
B
c
-99
672
a = rep( 菖蒲, 2 );
// 菖蒲を縦方向に2つ生成
// a の内容
種類
148
Virginica
149
Virginica
150
Virginica
151
Setosa
152
Setosa
153
Setosa
■リスト形式とマトリクス形式
テーブルの列をリスト形式の指定と見なした場合は,それをマトリクスに変換すること
ができます.例えば,次のようなデータ(a)
C1
C2
C3
X
A
1
X
B
1
X
A
2
Y
A
2
Y
A
3
Y
B
3
C4
1.5
2.5
3.5
4.5
5.5
6.5
に対して,次の関数
key1 = a("C1", "C2");
key2 = a("C3");
content = a("C4");
b = list2matrix(key1, key2, content, 3333);
// 3333 はもとのデータに指定されていないものに代入する値
を実行すると,結果(b) は次のようなマトリクステーブルとなります
C1
C2
1
2
3
X
A
1.5
3.5
3333
X
B
2.5
3333
3333
Y
A
3333
4.5
5.5
Y
B
3333
3333
6.5
673
上記の逆変換も可能です.例えば,次の関数
key1 = b("C1","C2");
key2 = b( 3, 4, 5 );
c = matrix2list( key1, key2, "NC3", "NC4", 3333);
// 3333 は省略値
を実行すると,結果(c)は次のリストテーブルとなります.
C1
C2
NC3
NC4
X
A
1
1.5
X
A
2
3.5
X
B
1
2.5
Y
A
2
4.5
Y
A
3
5.5
Y
B
3
6.5
■行単位の移動
a = row_shift(菖蒲, 2);
//数値行を下方向へ移動する.
//a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
0
0
0
0
Versicolor
0
0
0
0
Versicolor
51
35
14
2
Setosa
70
32
47
14
Virginica
57
28
41
13
Virginica
49
30
14
2
Virginica
63
33
60
25
Setosa
58
27
51
19
Setosa
59
30
51
18
674
a = row_shift(菖蒲, -2);
// 数値行を上方向へ移動する.
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
57
28
41
13
Versicolor
49
30
14
2
Versicolor
63
33
60
25
Setosa
58
27
51
19
Virginica
59
30
51
18
Virginica
47
32
13
2
Virginica
49
30
14
2
Setosa
0
0
0
0
Setosa
0
0
0
0
b = {"Setosa","Virginica","AAAA","BBBB"};
a = fill_up_row(菖蒲, "種類", b);
//1列
// b に存在し,菖蒲の"種類"列にないものを一行追加して,補填する.
// a の内容:
種類
がく長
Setosa
がく幅
花びら長
花びら幅
57
28
41
13
...
..
.
...
..
.
...
..
.
...
..
.
...
..
.
AAAAA
0
0
0
0
BBBBB
0
0
0
0
■並べ替え
a = sort(菖蒲, "種類", "がく長", 0);
// 0: 昇順, 1: 降順
// 菖蒲を Key="種類"+"がく長" 昇順に並び替える
a = sort(菖蒲, 2, 1, {1,0});
//キー毎に昇・降順指定
// 菖蒲を Key="がく長"(降順)+"種類"(昇順)に並び替える
a = shuffle(菖蒲);
// 行をランダムに並び変える
675
a = transpose(a);
// テーブルを転置する:第1列(文字列)目の内容を結果テーブルの列タイトルとし,
// 列タイトルを結果テーブルの第 1 列とする.その他の内容はそれに従う.
// 入力 a の内容
a1
a2
a3
b1
1
11
b2
2
12
b3
3
13
b4
4
14
// 入力 b の内容
a1
b1
b2
b3
b4
a2
1
2
3
4
a3
11
12
13
14
// 注:
// 入力テーブル a の第1列は文字列であることが必要
// a の第1列に重複文字が存在する場合は,結果テーブルのユニーク列名にするため,
// 自動的に番号が付けられる
// a の第2列以後の列(内容)の型は一致することが必要
■置き換え
replace_col(テーブル, 列名, 1 列のデータ)
テーブルの内、指定した列名を持つ列を与えた 1 列のデータで置き換える。ただし、列
名は変わらず、内容のみが変更されます。
a("がく長") = 菖蒲("がく長") + 100;
Output = replace_col(菖蒲,"がく長",a); // がく長が 100 増える
Output = replace_col(菖蒲,2,a); // 列名の代わりに列番号を指定しても同じ
■列属性変換
as.integer(テーブル)
列属性を整数に変換。
実際には切り下げを行う。
「基本関数」で後述する「floor」と同じ動作をする。
//変換不能なものは、0 とする
676
as.real(テーブル)
列属性を実数に変換。
//変換不能なものは、0.0 とする
as.string(テーブル)
列属性を文字列に変換
a("元データ") = {1.1,2.5, 2.501, 3};
b("整数") = as.integer(a);
c("実数") = as.real(a);
d("文字列") = as.string(a);
e = cbind(a,b,c,d);
//e の結果
元データ
整数
実数
文字列
1.100
1
1.100
1.100000
2.500
2
2.500
2.500000
2.501
2
2.501
2.501000
3.000
3
3.000
3.000000
■数学関数
■基本演算子
足し算(+)|ひき算(-)|かけ算(*)|割り算(/)|指数算(^)
データ間数値演算を行う場合、第 1 オペランドの文字列のみが保存されます。
a( titles(菖蒲) ) = 菖蒲 + 1000;
// テーブル vs スカラの場合: 数値列の全セルに行う
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
1051
1035
1014
1002
Versicolor
1070
1032
1047
1014
677
Versicolor
1057
1028
1041
1013
Setosa
1049
1030
1014
1002
Virginica
1063
1033
1060
1025
Virginica
1058
1027
1051
1019
Virginica
1059
1030
1051
1018
Setosa
1047
1032
1013
1002
Setosa
1049
1030
1014
1002
a( titles(菖蒲) ) = 菖蒲 + 菖蒲("がく長");
// テーブル vs 1 列テーブルの場合: 数値列の行毎に行う
// 注:両テーブルの行数の一致が必要
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
102
86
65
53
Versicolor
140
102
117
84
Versicolor
114
85
98
70
98
79
63
51
Virginica
126
96
123
88
Virginica
116
85
109
77
Virginica
118
89
110
77
Setosa
94
79
60
49
Setosa
98
79
63
51
Setosa
a( titles(菖蒲) ) = 菖蒲 - 菖蒲;
// テーブル vs テーブルの場合: セル毎に行う
// 注:両テーブルの行数と列数の一致が必要
// a の内容
種類
がく長
がく幅
花びら長
花びら幅
Setosa
0
0
0
0
Versicolor
0
0
0
0
Versicolor
0
0
0
0
a = {2,3}^{4,5};
b = 3^{1,2,3};
//テーブルの要素同士の指数演算
678
// a の内容
A1
16
243
// b の内容
B1
3
9
27
■基本関数
※ 方向は列ごとに行う場合 "cw"、行ごとに行う場合 "rw"、
テーブル全体に対して行う場合は "all" を指定する。
max( テーブル,方向 );
最大値を求める。
min( テーブル,方向 );
最小値を求める。
sum_rate( テーブル,方向 );
行毎の各セル内容が全体に占める割合(%)を計算する
sum( テーブル,方向 );
和を求める。
prod( テーブル,方向 );
積を求める。
avg( テーブル );
平均値を求める。
abs( テーブル );
絶対値を求める。
sqrt( テーブル );
平方根を求める。
ceil( テーブル );
数値を切り上げる。
floor( テーブル );
679
数値を切り下げる。
mov_avg( テーブル,区間の大きさ);
移動平均値を求める。
a("全体最大") = max(菖蒲,"all");
// 全数値項目中、最大のもの
// a の内容
全体最大
70
a("長さ最小"," 幅最小") =
min(菖蒲("がく長","がく幅"),"cw");
// 列毎の最小のもの
// a の内容
長さ最小
47
幅最小
27
a("行最小") = min(菖蒲,"rw");
// 行毎の最小のもの
// a の内容
行最小
2
14
13
2
25
19
18
2
2
tits = {"がく長","がく幅"};
new.tits = paste("新.",tits);
a(new.tits) = sum_rate(菖蒲(tits),"rw");
output = cbind(菖蒲(tits), a);
// 行毎の各セル内容が全体に占める割合(%)を計算する
680
// a の内容
がく長
がく幅
新.がく長
新.がく幅
51
35
59.302
40.698
70
32
68.627
31.373
57
28
67.059
32.941
49
30
62.025
37.975
63
33
65.625
34.375
58
27
68.235
31.765
59
30
66.292
33.708
47
32
59.494
40.506
49
30
62.025
37.975
a( titles(菖蒲) ) = avg(菖蒲);
//列毎の平均、avg(菖蒲,"cw") と同様、文字列を0とする
//a の内容
種類
がく長
0
がく幅
55.89
30.78
花びら長
33.89
a("がく長") =菖蒲("がく長") - 50;
b("絶対値") = abs(a);
c = cbind(a,b);
//絶対値を返す
// a の内容
がく長
1
20
絶対値
1
20
7
7
-1
1
13
13
8
8
9
9
-3
3
-1
1
681
花びら幅
10.78
a("平方根") = sqrt (菖蒲("がく長"));
b = cbind(菖蒲("がく長"),a);
//平方根を返す(ただし,負の値は0になる)
// b の内容
がく長
平方根
51
7.141
70
8.367
57
7.55
49
7
63
7.937
58
7.616
59
7.681
47
6.856
49
7
a("余り") = mod(菖蒲("がく長"),3) ;
b = cbind(菖蒲("がく長"), a);
//整数で割り算をした余りを求める
//b の内容
がく長
余り
51
0
70
1
57
0
49
1
63
0
58
1
59
2
47
2
49
1
a("がく長") =菖蒲("がく長") / 3;
b("切り上げ") = ceil(a);
c = cbind(a,b);
682
//数値を切り上げる
// c の内容
がく長
切り上げ
17.000
17
23.333
24
19.000
19
16.333
17
21.000
21
19.333
20
19.667
20
15.667
16
16.333
17
a("がく長") =菖蒲("がく長") / 3;
b("切り下げ") = floor(a);
c = cbind(a,b);
//数値を切り下げる
// a の内容
がく長
切り下げ
17.000
17
23.333
23
19.000
19
16.333
16
21.000
21
19.333
19
19.667
19
15.667
15
16.333
16
a = mov_avg (菖蒲,5);
//移動平均値を返す
// a の内容
がく長.MA5
がく幅.MA5
花びら長.MA5
683
花びら幅.MA5
48.6
32.8
14
2
38.4
33.6
14.6
2.4
37.8
34.4
14.6
2.6
38.4
34.8
15
2.6
38
34.4
14.8
2.6
37.8
33.4
15
2.4
48.6
33
14.6
2
49
33
15
1.8
48.6
32.2
14.8
1.6
a = {1:5};
b = cumsum(a);
// 「cumsum」は累積合計を返す
// a の内容
OneCol
1
2
3
4
5
// b の内容
OneCol.Cumsum
1
3
6
10
15
■相関
cor_value(テーブル, 数値列 1 指定, 数値列 2 指定);
数値列 1 と 2 間の相関係数を出力します。
chi2_value(テーブル, カテゴリ列 1 指定, カテゴリ列 2 指定);
684
カテゴリ列 1 と 2 の間のカイ 2 乗値を出力します。
f_value(テーブル, カテゴリ列指定, 数値列指定);
カテゴリ列と数値列間の F 値を出力します。
※ 出力はすべてマトリックス形式で出力します。
a = cor_value(菖蒲, {2:4}, {2:4});
// a の出力
Correlation.TitleName
がく長
がく幅
花びら長
がく長
1
-0.008
0.854
がく幅
-0.008
1
-0.26
0.854
-0.26
1
花びら長
a = f_value(菖蒲, "種類", {2:4});
// a の出力
FValue.TitleName
種類
がく長
10.039
がく幅
0.478
花びら長
125.367
■乱数
乱数テーブルを生成します.
runif(個数, from 数値, to 数値);
「from 数値」から「to 数値」までの間に、一様分布の乱数を「個数」分生成する。
rnorm(個数, 平均μ,標準偏差σ);
正規分布(μ,σ)に従う乱数を「個数」分生成する。
ans("一様乱数.正数") = runif(1000, 0, 100);
// 一様分布:0~100 間の整数の乱数を 1000 個生成する
ans("一様乱数.実数") = runif(1000, 0.0, 1.0);
//一様分布: 0.0~1.0 間の実数の乱数を 1000 個生成する
685
ans("正規乱数") = rnorm(1000, 0, 1);
//正規分布: μ=0.0, σ=1 の正規分布から実数を 1000 個生成する
■行列演算
N 行 K 列のテーブルと K 行 M 列のテーブル間で行列掛算を行う場合は、記号 %*% を利
用します。
a = cbind({1}, {2}, {3}, {4}, {5});
b = 菖蒲("がく長") %*% a;
// a = 1 行*5 列、行列掛算、b = 9 行*5 列
// a の内容
A1
A2
1
A3
A4
2
3
A5
4
5
// b の内容
A1
A2
A3
A4
A5
51
102
153
204
255
70
140
210
280
350
57
114
171
228
285
49
98
147
196
245
63
126
189
252
315
58
116
174
232
290
59
118
177
236
295
47
94
141
188
235
49
98
147
196
245
a = cbind({1:3}, {2:4});
b = 菖蒲("がく長","花びら長","花びら幅") %*% a;
// a=3 行*2 列、行列掛算、b=9 行*2 列
// b の内容
A1
A2
85
152
686
206
337
178
289
83
148
258
406
217
345
215
343
79
141
83
148
b = 菖蒲("花びら幅") %*% 5;
//「5」は 1 行*1 列なので、b=9 行*1 列、
// b の内容(1 列)
{ 10, 70, 65, 10, 125, 95, 90, 10, 10}
■集合演算
belong(list, pat)
データ pat が 1 列のデータ list に含まれるかどうかを判定する。
戻り値は真偽値であり、
sel 関数と組み合わせて使用する。
samp = {"a","a","b","c","d","e","f","d"};
pat = {"a","d","e"};
output = sel( belong(samp, pat), samp); //ouput={a,a,d,e,d} となる
output = sel( belong(samp, "d"), samp); //ouput={d,d} となる
samp={1,3,2,3,4,7,8,8,7,2};
pat={7,2};
output = sel( belong(samp,pat), samp); //ouput={2,7,7,2} となる
output = sel( belong(samp,7), samp);
//ouput={7,7} となる
■データ操作関数
687
■文字列の操作
trim (テーブル);
文字列の先頭と末尾のスペースを同時に削除します.
paste(文字列 1, 文字列 2);
文字列を連結します。
split.str(テーブル,文字列 1,文字列 2);
1 列の文字データを 2 列文字データに分割する。出力は 2 列の表で出力する。
文字列1=分割文字、文字列2=結果の 2 列目に内容が無いときの埋める値。
replace.str(テーブル,文字列 1,文字列 2);
文字列の内容を置き換える。
文字列 1=置き換えられる文字、文字列 2=置き換える文字。
// a の内容
//4 行目の「 C 」は先頭と末尾に空白あり。
文字
A
B
C
b = strlen(a);
//空白を含む文字数をカウント
//b の内容
文字.Len
2
2
3
c = trim(a);
d = cbind(c, strlen(c));
//d の結果
文字
文字.Len
A
1
B
1
C
1
688
a = paste( 菖蒲("種類"), 菖蒲("がく長") );
// a の内容
A1
Setosa51
Versicolor70
Versicolor57
Setosa49
Virginica63
Virginica58
Virginica59
Setosa47
Setosa49
// 日付データに対する操作例
// 最初に現れる"_"が分割または置換の対象
data = { "2002_1102", "2002_12_01", "2002" };
Output1 = split.str( data, "_", "" );
Output2 = replace.str( data, "_", "年" );
// Output1
A1
A2
2002
1102
2002
12_01
2002
// Output2
A1
2002 年 1102
2002 年 12_01
2002
// split.str は、
// アソシエーション分析の結果に対して用いると有効です。
// 複数の条件の連なったルールを分解できます。
Out("前提 1","前提 2") = split.str( In("前提"), "+", "");
689
// 複数の文字列に対する置換例
// Input
Year
Month
Day
1982
Jan
3
1989
Dec
12
1993
Aug
27
2003
Jul
18
monE = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
monN = as.string( {1:12} );
Output("月") = replace.str( Input("Month"), monE, monN );
// Output
月
1
12
8
7
■時刻データの操作
weekday(テーブル,日付フォーマット)
weekday(テーブル,日付フォーマット,曜日名)
「テーブル」に含まれる文字列日付に対応する曜日を出力する。
seq_date(日付数値 From,日付数値 To,日付フォーマット)
「日付数値 From」から「日付数値 To」までの連続日付を出力する。 出力文字列の
フォーマットは、
「日付フォーマット」により指定される。
days(日付 From,日付 To,時刻フォーマット)
「日付 From」から「日付 To」までの日数を出力する。 「日付 From」の行数は「日
付 To」の行数と一致するか、「日付 From」、または「日付 To」の行数は1である。
※ 同種の関数として、years, months があります。
day_offset(日付 From,日数,時刻フォーマット)
「日付 From」から「日数」分をずらした日付を出力する。
690
seconds(時刻 From,時刻 To,時刻フォーマット)
「時刻 From」から「時刻 To」までの秒数を出力する。
「時刻 From」の行数は「時
刻 To」の行数と一致するか、
「時刻 From」、または「時刻 To」の行数は1である。
※ 同種の関数として hours, minutes があります。
second_offset(時刻 From,秒数,時刻フォーマット)
「日付 From」から「秒数」分をずらした時刻を出力する。
※ 同種の関数として hour_offset, minute_offset があります。
now(時刻フォーマット)
現在の時刻を指定された形式で出力する
♯日付フォーマット:
“YYYY/MM/DD”または、
“YY 年 MM 月 DD 日” のよう
に、YYYY または YY は年を、MM は月を、DD は日を表す。
♯時刻フォーマット:
“YYYY/MM/DD hh:mm:ss” のように、YYYY は年を MM
は月を、DD は日を表し、hh は時間を、mm は分を、ss は秒を表す。
b = {"99/12/21", "99/12/22", "99/12/23", "99/12/24",
"99/12/25", "99/12/26", "99/12/27", "aa99/12/28"};
a("Week.Day") = weekday(b, "YY/MM/DD");
// 日付文字列を対応する曜日に変換
// a の内容
// 最終行は不適切なフォーマットであるため、NA が出力されている
WeekDay
Tue
Wed
Thu
Fri
Sat
Sun
Mon
NA
691
b = { "1999 年 12 月 21 日", "1999 年 12 月 22 日",
"1999 年 12 月 23 日", "1999 年 12 月 24 日",
"1999 年 12 月 25 日", "1999 年 12 月 26 日",
"1999 年 12 月 27 日", "aa1999 年 12 月 28 日"};
WN = {"日", "月", "火", "水", "木", "金", "土", "Error"} ;
a("曜日") = weekday(b, "YYYY 年 MM 月 DD 日", WN);
// a の内容
曜日
火
水
木
金
土
日
月
Error
b = {"99/12/21", "99/12/22", "99/12/23", "99/12/24",
"99/12/25", "99/12/26", "99/12/27", "aa99/12/28"};
a("Week.Day") = weekday(b, "YY/MM/DD", {0:6,-1});
// 日付文字列を対応する曜日に変換
// a の内容
WeekDay
2
3
4
5
6
0
1
-1
692
b = {"99/12/21 12:04:05", "99/12/22 11:3:5",
"99/12/25 8:23:11", "99/12/28 22:11:5"};
a1 = days(b, "99/12/27 23:04:05", "YY/MM/DD hh:mm:ss");
a2 = days("99/12/22 23:04:05", b, "YY/MM/DD hh:mm:ss");
a3 = seconds(b, "99/12/27 23:04:05", "YY/MM/DD hh:mm:ss");
a4 = seconds("99/12/22 23:04:05", b, "YY/MM/DD hh:mm:ss");
// a1 の内容
A1
6
5
2
-1
// a2 の内容
A1
-1
// a3 の内容
A1
558000
475260
225654
-83220
// a4 の内容
A1
-126000
-43260
206346
515220
693
b = {"99/12/21 12:04:05", "99/01/22 11:3:5",
"99/12/25 8:23:11", "99/12/28 22:11:5"};
a1 = day_offset(b, 25, "YY/MM/DD hh:mm:ss");
a2 = day_offset(b, -5, "YY/MM/DD hh:mm:ss");
a3 = second_offset(b, 3600, "YY/MM/DD hh:mm:ss");
a4 = second_offset(b, -7200, "YY/MM/DD hh:mm:ss");
// a1 の内容
A1
2000/01/15 12:04:05
1999/01/16 11:03:05
2000/01/19 08:23:11
2000/01/22 22:11:05
// a2 の内容
A1
1999/12/16 12:04:05
1999/12/17 11:03:05
1999/12/20 08:23:11
1999/12/23 22:11:05
// a3 の内容
A1
1999/12/21 13:04:05
1999/12/22 12:03:05
1999/12/25 09:23:11
1999/12/28 23:11:05
// a4 の内容
A1
1999/12/21 10:04:05
1999/12/22 09:03:05
1999/12/25 06:23:11
1999/12/28 20:11:05
694
■カテゴリ化
grouping (テーブル,グループ分けの基準,ラベル);
グループ分けを行う。
result("種類","種類.Grp") = cbind(菖蒲("種類"), grouping (菖蒲("種類
"),{"Setosa","Versicolor","Virginica"},{"C1","C1","C2"}));
//グループラベルを付加する。
// result の内容
種類
種類.Grp
Setosa
C1
Versicolor
C1
Versicolor
C1
Setosa
C1
Virginica
C2
Virginica
C2
Virginica
C2
Setosa
C1
Setosa
C1
a = grouping( 菖蒲("がく長"), {55, 60, 70},{"小","中","大"});
b
= cbind( 菖蒲("がく長"), a);
// 数値列をグルーピングする
// 55 未満の数値に対しては「others」
、55~60 未満の数値に対しては「小」
// 60~70 未満の数値に対しては「中」
、70 以上の数値に対しては「大」とする
// b の内容
がく長
groupId
51
others
70
大
57
小
49
Others
63
中
58
小
59
小
47
Others
49
others
695
a = grouping( 菖蒲("がく長"), {55, 60:70:10},{"小","中","大"});
//上記と同じ効果
■入出力関数
■メッセージウィンドウ
メッセージの出力
println("X=",x, "Y=",y);
// 文字列,数値などをシステムのメッセージボックスへ出力
// x がテーブルの場合は,1列*1行目のセル内容が出力される
テーブルの出力
print(テーブル, 書式);
メッセージウィンドウにテーブルデータを出力する。書式は省略可能。
a( {"Name", "No", "Sin"} )
= cbind({"aaaaaaa", "b", "c"}, {1:10}, sin({1:10}));
print( a );
print( a, "%10d", "%20.5f" );
// "%3d" : d は整数の出力形式を表す
//
: 10 は列余白を表す
// "%7.2f" : f は実数の出力形式を表す
//
: .5 は小数点以下第 2 位まで表示することを表す。
696
■ファイル入出力
a = read_file("d:/pos.txt", "4,str,dbl,int,dbl");
//「d:/pos.txt」はヘッダー付きの CSV(コンマ区切り)形式ファイル
// 「4」は列の数、
「4」以後は順に列のタイプ
//
str = 文字列、dbl=実数列、int=整数列
//テキストの場合、列のタイプは省略("3,int,,str"など)も可能。その場合は、そ
の//列を読まない。
//テキストの場合、指定数が実際の列数より少なければ、後ろの列は読まない。
a = read_file("d:/pos.txt", "d:/pos.atr");
//「d:/pos.txt」はヘッダー付きの CSV(コンマ区切り)形式ファイル
//「d:/pos.atr」は属性ファイルで、その内容は、
「4,str,dbl,int,dbl」である
atr = {"str", "dbl", "int", "dbl"}; // 属性テーブル(1 列)
a = read_file("d:/pos.txt",atr); // 結果列の長さ=atr の行数
a = read_binary("d:/data/菖蒲.vdt");
//外部バイナリーファイルを読み込む
697
dump_to_file(菖蒲("がく長", "種類"),
"d:/test/foo.txt");
// 列の順番を変えて, CSV 形式ファイルへ出力
// dump_to_file, read_file は処理アイコン呼び出しで
// 作成した予測モデルを保存することもできる。
// sys_proc については後述する。
//Decision Tree
sys_proc(2,table,?result);
// モデルの保存
// 拡張子は「vModel」となっている必要がある
dump_to_file(result,"D:/Data/DecisionTree.vModel");
// モデルの読み込み
treeModel = read_file("D:/Data/OtherModel.vModel");
//予測
sys_proc(1, table, treeModel,
?result, ?summary, ?recall, ?precision);
■ファイル書式操作
format_file はファイルに対してある操作を行って、ファイルとして出力するための
関数である。ファイルの整形用の関数であり、データのインポートは別途 read_file などを
用いて行う。戻り値は整数で、いずれも成功の場合 1、失敗の場合 0 を返す。
引数の内、source, result, header, result, remain はファイル名(パス)を指
定する。また source は入力ファイル名、result は出力ファイル名である。
format_file("add header", source, result, header)
header の内容をヘッダーとして先頭に付加して出力する。header は省略可能。省略
した場合 "A1,A2,A3.."という列名ヘッダーを列数分だけ付加する。
format_file("get infomation", source, result)
ファイルの形式エラーチェックを行い、ファイルの列数、行数、列名を出力する。
format_file("split in row", source, result, blockSize)
698
format_file("split in column", source, result, blockSize)
source ファイルを行(row)、または列(column)で分割して result ファイルに出力す
る。実際のファイルの名前は result = "D:\Data\Output"の場合、Output1, Output2,.. と
なる。blockSize は1ファイル当りの行数(列数)
format_file("get one col", source, result, remain, col)
ファイルの col 列目だけを抽出する。残りの部分は remain に出力する。
format_file("read one block", source, result, numRow)
ファイルの先頭部分 numRow 行を取り出す
format_file("purify contents", source, result, seperator,
replaceChar, deleteSpace)
テキストファイルを整形する。以下を順に行う。
1.
ダブルクォータ内の "," を replaceChar に書き換える
2. ダブルクォータ内の "¥n" を replaceChar に書き換える
3. ダブルクォータ内のセパレータを replaceChar に書き換える
4. デリミタ(区切り記号)を seperator から ","(コンマ) に書き換える
5. ダブルクォータを削除
6. deleteSpace = 1 の場合は、セルごとに、両端の余分なスペースを削除する。
■制御関数
■条件分岐
if (条件式) {
…Block1…
}
または
if (条件式) {
…Block1…
} else {
…Block2….
}
「条件式」が True である場合は、Block1 に対応する命令文が実行され、
False の場合は、Block1 を実行せず、else があれば Block2 が実行される。
699
i =
a =
if (i
a =
}
5;
"何も実行されていない";
< 6) {
"Block1 が実行された";
// a の内容
A1
Block1 が実行された
i = 7;
a = "何も実行されていない";
if (i < 6) {
a = "Block1 が実行された";
}
// a の内容
A1
何も実行されていない
■ループ
(1)「while」ループ:
while (条件式) {
……
}
条件式が True である限り、
「……」を実行し続ける
(2)「for」ループ:
for (name in Expr) {
……
}
name が Expr の第一列の内容(0 行から)をまわして、「……」を実行する
700
// 列順反転
i = 1;
while ( i <= ncol(菖蒲) ) {
if (i == 1) {
a = 菖蒲(i);
} else {
a = cbind(菖蒲(i),a);
}
i = i + 1;
}
// a の内容
花びら幅
花びら長
がく幅
がく長
種類
2
14
35
51
Setosa
14
47
32
70
Versicolor
13
41
28
57
Versicolor
2
14
30
49
Setosa
25
60
33
63
Virginica
19
51
27
58
Virginica
18
51
30
59
Virginica
2
13
32
47
Setosa
2
14
30
49
Setosa
// 列順反転
fst = 1;
for ( i in titles(菖蒲) ) {
if (fst == 1) {
fst = 0;
a = 菖蒲(i);
} else {
a = cbind(菖蒲(i), a);
}
}
//a の内容:上記同様
701
■中断
形式
stop("message");
内容:
実行の中断。message=出力するメッセージ
後ろのアイコンに関しては実行しない。
モジュールの内部でおこなった場合は、次のループ処理に移る。
■サブルーチン
形式
(1) 定義
procId = procedure(x, …, &y, &z, …) {
… 関数定義本体 …
}
procId は任意の変数名
関数の引数に、
「&」が含まれるものは、関数の結果名となり、
含まれていないものは、関数の入力引数名となる
(2) 呼出
f( a, b, … , ?d, ?e, … );
f: 上記方法より定義された関数 ID
a,b,… 関数への入力引数(テーブル名)
d,e,… (? 付き) 関数の2つの結果がテーブル d と e に代入される。
(3) 繰返しループの呼び出し
形式
apply(procedureId, テーブル);
procedureId は1入力、1出力をもつ任意のサブルーチン名である
702
// サブルーチンのローカル変数、グローバル変数
// 変数の参照順序: ローカル→呼ばれたルーチン→……
proc1 = procedure(x, &y){
y = a + b + x; // この「a」は proc2 で定義された「a=2」を参照
// この「b」は 一番外側「b=2」を参照
a = 3;
// この「a」に対する設定は、proc1 の外の
//「a」に影響は及ばない
y = y+a;
// この「a」は proc1 内のもの「a=3」を参照
}
proc2 = procedure(x, &y){
a = 2;
proc1(x, ?y);
y = y + a;
// この「a」は proc2 で定義された「a=2」を参照
}
a = 1; b = 2;
proc2(10, ?c);
c = a + b + c;
// この「a」、「b」はそれぞれ
// proc2 を呼ぶ前に設定されたものを参照
// a の内容
A1
1
// b の内容
A1
2
// c の内容
A1
22
proc1 = procedure(x, &y){
703
y = cell(曜日テーブル, 1, x);
}
曜日テーブル = {"月","火", "水","木", "金", "土", "日" };
xs = {2, 4, 7, 1};
ys = apply(proc1, xs);
//ys の内容
AnsOfFun
火
木
日
月
704
10.6. スクリプトの特殊な使い方
スクリプトには、通常のデータ処理や数値演算とは異なる特殊な使い方がいくつか存在し
ます。以下では、その使い方について紹介します。
■コマンドラインプログラムの実行
呼び出し形式
sys_command (DOS コマンド);
cmd は DOS コマンド、例:
cmd = "d:\myApp.exe 3,5"
cmd = "d:\myApp.bat"
詳細は sys_command のヘルプを参照してください。
■外部 DLL の呼び出し
呼び出し形式
run_dll(dll 名, 関数名, 入力データ 1, ..., 入力データ N,?結果 1, ..., ?結果 M);
DLL 作成方法:
(VAP 内のフォルダ samples\rundll の main.cpp を参考にして下さい)
1) Microsoft Visual C++ Studio にて、メニューバー「プロジェクト」→「C/C++」
→「カテゴリ=コード生成」→「使用するランタイムライブラリ=マルチスレッド
(DLL)
) と選択して下さい。
2) main.cpp をコンパイルするときに、DtSheet.h と VmsRunStatus.h のインクルード
パスを指定して下さい。
3) main.cpp をリンクするとき、DtSheet.obj と VmsRunStatus.obj のリンクパスを指
定して下さい。
詳細は run_dll 関数のヘルプを参照してください。
705
■外部スクリプトの実行
VAP のスクリプトには外部のアプリケーションのスクリプトを実行する機能があります。
この方法を用いると、VAP のスクリプトと混在させて実行できるだけではなく、VAP のア
イコンを実行する形で外部のアプリケーションのスクリプトを実行可能です。実行可能な
アプリケーションは以下の通りです。

R
R を連携して利用する方法については、8.6 R 連携の項目を参照してください。

SAS (Base SAS Version 8 以上)

S-PLUS (S-PLUS8)
S-スクリプトアイコンを作成することでも実行可能ですが、スクリプトの中から呼び出
すには以下の呼び出し形式を使用してください。

MATLAB (MatLab 7.0.4)

Perl (対応する Perl: Active Perl )

http://www.activestate.com
Perl を起動するために、perl.exe へパス設定(セットアップ時、自動的に設定)が
必要です。
外部スクリプトを利用するには、まずスクリプト記述を変数に代入し、その変数を用いて
スクリプト呼び出しを行います
呼び出し形式
cmd = #begin
… スクリプト本体 …
#end;
run_script(cmd, 外部システム名, 入力テーブル, …, ?出力テーブル, …);
#begin ~ #end でスクリプトを記述(別の方法で定義することも可能)し、それを
run_script 関数で呼び出します。詳細は run_script 関数のヘルプを参照して下さい。
■スクリプトによるデータベースの操作
VAP のスクリプトからデータベースの操作を実行する機能があります。
706
呼び出し形式
run_sql_on_db(odbc_def, SQL 文);
SQL 文を DB へ発行する関数です。
read_table_from_db(odbc_def, テーブル名);
DB からテーブルを取得します。
write_table_to_db(odbc_def, テーブル名, data);
DB へ data の内容をテーブルに書き込みます。
詳しくは run_sql_on_db、read_table_from_db、write_table_to_db のヘルプを参照して下さ
い。
■アイコンの機能呼び出し
アイコンの右クリックメニューの「パラメータ取得」以下の「関数の入出力定義」もしく
は「全パラメータ定義」からパラメータを取得することができます。どちらも取得したパ
ラメータは実行可能なスクリプトの形になっており、スクリプト定義画面に貼り付けるこ
とで、処理アイコンの機能をスクリプトから利用することが可能になります。
図 10-18 アイコンのパラメータ取得
707
図 10-19 全パラメータ取得によるパラメータ取得結果
図 10-20 関数の入出力定義によるパラメータの取得結果
呼び出し形式
sys_proc(key,入力データ 1,…,入力データ N,?結果 1,…,?結果 M);
sys_proc_silent(key,入力データ 1,…,入力データ N,?結果 1,…,?結果 M);
708

key パラメータのユニーク番号:「##= Parameter for Process Icon ==」以下の
「key=…」 で指定された key 番号に対応するもの。もしくはアイコン名を指定
します。

入力データ 個数は、機能により異なりますが、必要なデータを並べて渡します。

結果 必要な結果となる変数名を指定します。(注:結果名の前にクエスチョンマ
ーク「?」が必要)
sys_proc と sys_proc_silent の違いは実行中にメッセージを画面に出力するかしないかです。
詳しくは sys_proc、sys_proc_silent のヘルプを参照して下さい。
全パラメータ取得
「全パラメータ取得」で取得されたパラメータは、常に、スクリプトの最後(命令の後)
に、
「##= Parameter for Process Icon ==」で始まります。一行は、次のような形式で一つ
パラメータを表します。
パラメータ名=パラメータ内容
ほとんどの場合は、パラメータ名は、GUI 表示時に使われるパラメータ名に対応します。
パラメータが長く、複数行にわたり、表示される場合は、
「$$$start」と「$$$end」で区切
ります。例えば、次のような「スクリプトアイコン」のパラメータの「定義」というパラ
メータは、
「$$$start」と「$$$end」で区切っています。
パラメータ記述例
sys_proc(1,table,?result); //Script(Script 定義)
##======== Parameter for Process Icon ========
## Script
function=Script
key=1
icon_name=Script 定義
memo=Script 定義
関数名=Script
タイプ=スクリプト
入力テーブル名=table
出力テーブル名=result
定義=
$$$start
a=table({1,2})+1;
result=a+sin(a);
$$$end
max_memory=200000000
709
全てのパラメータには、ヘッダーが含まれます。 ヘッダーは、
##== Parameter for Process Icon ==
で始まり、関数名、key 番号、アイコン名およびアイコン上に書かれたメモで構成されます。
ヘッダー以外に、
max_memory=…
←実行するために、使用するメモリサイズ(バイト数)
input=列名 1,属性,…列名 N,属性 ←入力データの列名と属性
が含まれます。データの列属性が、直接「文字列」、「整数」、「実数」と書くのではなく、
それぞれ、0、1、2で表します。たとえば、入力データに列 A、B、C、D が含まれて、そ
れぞれの列属性が文字、実数、整数、実数である場合は、input には次のように書きます。
input=A,1,B,3,C,2,D,3
機能を呼び出す前に、 sys_proc_opt 関数を用いることで、パラメータを動的に書き換え
ることができます。詳しくは sys_proc_opt のヘルプを参照して下さい。
アイコン名で指定する際の注意点
関数 sys_proc の key をパラメータの番号ではなくアイコン名で指定した場合、現在のプ
ロジェクト内の同名のアイコンのパラメータに応じてスクリプトが動作します。アイコン
名に重複がある場合、指定したアイコンとは異なる同名のアイコンが動作することがあり
ます。このようにアイコン名指定を利用する場合は、アイコンの名前を編集し固有にして
ください。
エクスポートしたプロジェクト内のアイコン名で指定
「エクスポート」→「アイコン定義」で外部にエクスポートしたプロジェクトのアイコ
ンも、アイコン名とフォルダパスを指定することで利用することができます。外部のアイ
コンを呼び出すには、
sys_proc({<アイコン名>,<フォルダのパス>},入力データ 1,…,入力データ
N,?結果 1,…,?結果 M);
とします。以下の例のように用います。
sys_proc({“集計その1”,“c:\VAP\project1.prj”},table,?result);
モデルファイルのエクスポート
スクリプトで作成したモデルは、出力として使用可能です。ただし、受け取る側もスク
710
リプトである必要があります。受け取る側のスクリプトは、他のモデルアイコンからのモ
デルでも可能です。
エクスポートした環境変数の導入
sys_proc でエクスポートしたスクリプトを呼び出しだとき、その中に get_prj_env が含
まれている場合、スクリプトをエクスポートしたときの環境変数の値を利用することがで
きる。get_prj_env が含まれていない場合は、呼んだ側の環境変数が使用される。
■入力画面呼び出し
スクリプトから実行毎に特定の変数への入力を変更したいときに使います。変数の種類
によって変数宣言の書式が違います。入力画面からそれぞれの変数に値を代入します。
呼び出し形式
guiInput( 画面タイトル, 変数,・・・ )
変数宣言の書式
変数名={"タブタイトル","コメント", “変数タイプ”,タイプ別設定,”要素数” };
ここで、要素数は選択可能な項目数を示します。ここで指定した数より多く選択しようと
すると、警告メッセージが表示されます。
タイプ別の宣言書式は以下
(強調文字は変数タイプのキーワード、色文字は変数別の宣言項目)
整数型
変数名={"タブタイトル","コメント", "整数","A:B","デフォルト値","要素数"};
A,B,デフォルト値,要素数は整数。A,B は変数の値の範囲。デフォルト値、要素数は省
略可能、省略された場合はデフォルト値が A、要素数が 1 になる。
実数型
変数名={"タブタイトル","コメント", "実数","A:B","デフォルト値","要素数"};
A,B,デフォルト値は実数、要素数は整数。A,B は変数の値の範囲。 デフォルト値、要
素数は省略可能、省略された場合はデフォルト値が A、要素数が 1 になる。
文字列型
変数名={"タブタイトル","コメント", "文字列","デフォルト文字列","要素数"};
711
デフォルト文字列、要素数は省略可能。
省略された場合はデフォルト文字列が空文字列“”、要素数が 1 になる。
ファイルパス型
変数名={"タブタイトル","コメント", "ファイル","デフォルトファイルパス","要素数"};
要素数は整数。デフォルトファイルパス、要素数は省略可能。省略された場合はデフ
ォルトファイルパスがシステムに依存、要素数が 1 になる。
ファイルパスを記述する場合、ディレクトリの区切り文字は”¥”で表現する。
Unix 系区切り文字”/”は区切り文字としない。
カテゴリ型
変数名={"タブタイトル","コメント", "カテゴリ","項目名"・・・,"要素範囲"};
要素範囲は整数。要素範囲は省略可能。省略された場合は 0~全項目の数だけ選択可能。
リストボックス型
変数名={“タブタイトル”,”コメント”,”リストボックス”,”初期値”,”項目名”,・・・};
初期値を省略することはできない。
コンボボックス型
変数名={“タブタイトル”,”コメント”,”コンボ”,”初期値”,”要素数”,”前説明文”,”項目
名”,・・・};
初期値や前説明文が複数あるときには「|」で区切る。初期値、要素数、前説明文につ
いては省略できない。
図 10-21 入力画面呼び出し例 1
712
図 10-22 入力画面呼び出し例 2
図 10-23 入力画面呼び出し例 3
図 10-24 ファイルパス型変数の宣言例
713
図 10-25 カテゴリ型変数の宣言例
図 10-26 リストボックス型変数の宣言例
図 10-27 コンボボックス型変数の宣言例
714
図 10-28 関係するものを同じページに表示する例
■スクリプトによるグラフ描画
データ&グラフビューアイコンと同じ処理を、スクリプトから行うことが可能です。
スクリプトからグラフ描画を行うには描画パラメータが必要ですが、データ&グラフビ
ューアイコンでまずグラフ描画を行ってからパラメータ取得(→参照)で取得できる実行
スクリプトに、必要な描画パラメータが含まれていますので、このスクリプトを用いれば
簡単にグラフ描画を行うことができます。
取得した描画パラメータは目的に応じて直接編集して変更するか、または sys_proc_opt
関数を用いて実行中に動的に変更を行ってください。save_plot_file_path という描画パラ
メータに png ファイルなどの画像ファイルのパスを設定するとグラフウィンドウを表示せ
ずにグラフをファイル出力することが可能です。
図 10-29 スクリプトによるグラフ描画
715
10.7. スクリプトの検索置換機能
プロジェクトは複数の既存のアイコンやユーザが定義したスクリプトアイコン(以下、
スクリプト)たちで構成されます。同一プロジェクト内の複数のスクリプトの中での検索、
置換ができます。以下の順に検索機能を紹介します。
1.
検索ウィンドウの表示方法と説明
スクリプトを選んで右クリックメニュー、ま
たは、Ctrl +F
2.
検索置換機能
全スクリプト一括検索、一括置換
3.
編集機能
検索ウィンドウでの編集機能
10.7.1. 検索ウィンドウの表示方法と説明
表示方法
検索ウィンドウは右クリックメニューの検索をクリックすることで表示されます。下図の
ようなウィンドウが表示されます。検索ウィンドウは常に一番手前に表示されます。
検索ウィンドウの説明
1.
検索ウィンドウ
検索バーと「次を検索」
、
「終了」のボタンがある
2.
置換ウィンドウ
検索バーと置換するワードの入力欄、「置換」、「すべて置換」、
「次を検索」
、
「終了」の
ボタンがある。タブ移動で検索ウィンドウから移る。
3.
アイコン名
”アイコン番号”-“プロジェクト名“-“スクリプトアイコン名”になります。
4.
スクリプト編集画面
アイコン名の下の欄は選ばれたスクリプトの編集画面になります。
5.
入力テーブル
選ばれているスクリプトへの入力データ名の一覧が表示されます。
6.
出力テーブル
選ばれているスクリプトの出力結果名の一覧が表示されます。
716
図 10-30 検索ウィンドウ画面
10.7.2. 検索置換機能
検索
検索は検索バーに検索したいワードを入れて「次を検索」を押すと、カーソルのある場所から
検索し、はじめに出てくる場所に移動します。さらに「次を検索」を押すと、次に移動します。
置換
検索バーに置換したいワードを入れて、置換の欄に置換したいワードをいれる。
「次を検索」
を押すと、
カーソルがはじめの候補に移動する。そこで「置換」を押すと、置換される。
「すべて置換」
は全スクリプトにある検索ワードを一括で置換したいワードに置換する。
10.7.3. 編集機能
検索ウィンドウではスクリプトの編集も可能です。アイコン名のプルダウンメニューか
ら編集したいスクリプトを選び、編集します。「終了」ボタンを押した後、編集内容の反映
をスクリプトごとに選択できます。編集を有効にするためには、反映するにチェックをし
なければなりません。全件選択では編集した全スクリプトをチェックします。全件非選択
では全スクリプトのチェックをはずします。OK で選択したスクリプトに反映されます。
717
図 10-31 編集内容の反映選択画面
718
10.8. スクリプト関数・演算子一覧
関数名
分類
内容
CONST_INT_MAX
定数
整数の最大値
CONST_INT_MIN
定数
CONST_PI
定数
π値
CONST_REAL_MAX
定数
実数の最大値
CONST_REAL_MIN
定数
♯begin ~♯end
文字列操作関数
abs
数値列操作関数
acos
数値列操作関数
aggregate
テーブル操作
集計する
and
演算子
論理積をとる
anonymize
テーブル操作
匿名化する
apply
実行制御
プロシージャをテーブルに適用する
apply_map
実行制御
リストのメンバーにプロシージャを適応
as.bd
テーブル操作
テーブルを BDM(ビッグデータモ
ジュール)形式へ
as.integer
テーブル操作
as.list
リスト操作
as.real
テーブル操作
as.string
テーブル操作
as.table
テーブル操作
asin
数値列操作関数
atan
数値列操作関数
整数の最小値、欠損値と扱われ is.na
にて NA と判定される
実数の最小値、欠損値と扱われ is.na
にて NA と判定される
改行、カンマなどを含む任意の文字列
の先頭と最後を指定する
与えられた数値データの絶対値を算
出する
与えられた数値データの逆余弦を算
出する
テーブルの内容を整数タイプに変換す
る
リストにする
テーブルの内容を実数タイプに変換す
る
テーブルの内容を文字列タイプに変換
する
少量のテーブルを簡易に定義する
与えられた数値データの逆正弦を算
出する
与えられた数値データの逆正接を算
719
出する
与えられた数値データの平均値を算
avg
数値列操作関数
baseInfos
テーブル操作
belong
演算子
bind_bd_with_key
テーブル操作
二つキー列で分類された BDM を一
つに束ねる
break
実行制御
繰り返しループの実行から抜け出す
cbind
テーブル操作
ceil
数値列操作関数
実数の切り上げ
cell
テーブル操作
テーブルの一つセルを取得する
cells
テーブル操作
複数セル内容を取得する
chain_table
テーブル操作
テーブルのマージを簡略化、高速化
char
文字列操作関数
chi2_value
乱数、統計関数
cluster_dynadic_data
クラスタ分析
combination
テーブル操作
comment
その他
出する
テーブルの基本集計情報を算出する
テーブル中の文字列の存在を確認す
る
複数テーブルを列方向で一つテーブ
ルに合成する
十進数の ASCII コードから、一文字の
文字列を作成する
テーブルの文字列(複数可)と文字列
(複数可)間のカイ 2 乗値を求める
ハードクラスタリング化
1 列テーブルデータの組合せ(順序無
視)
スクリプトに、説明文を導入するコメン
ト文を挿入する
continue 以後の繰り返しループの実行
continue
実行制御
をスキップして、次の一巡のループか
ら継続実行させる
copy_file
外部ファイル、フォルダ
HDD 上のファイルのコピーを行う
copy_folder
外部ファイル、フォルダ
HDD 上のフォルダ間のコピーを行う
テーブルの文字列(複数可)と文字列
cor_ind
乱数、統計関数
(複数可)間の相関を表す独立係数を
求める
テーブルの文字列(複数可)と数値列
cor_ratio
乱数、統計関数
(複数可)間の相関を表す相関比を求
める
720
テーブルの数値列(複数可)と数値列
cor_value
乱数、統計関数
(複数可)間の相関を表すピアソンの
積率相関係数を求める
与えられた数値データの余弦を算出
cos
数値列操作関数
cosh
数値列操作関数
count
文字列操作関数
counts
文字列操作関数
cumsum
数値列操作関数
累積和関数
date_proc_info
日付
文字列の日付を数値列に分解する
date_proc_offset
日付
日付にオフセットを加える
date_proc_period
日付
日付と日付の間の期間を計算する
day_offset
日付
days
日付
delete_file
外部ファイル、フォルダ
HDD 上のファイルを削除する
delete_folder
外部ファイル、フォルダ
HDD 上のフォルダを削除する
delete_prj_env
環境
環境変数を削除する
diff
テーブル操作
階差をとる
する
双曲線余弦関数
テーブルの各文字列に含まれる文字
の種類数
テーブルの各文字列に含まれる文字
の全種類を取得する
日付を表す文字列とその日付からの
間隔日数より、日付を算出する
日付を表す文字列二つから、日付間
の間隔日数を算出する
HDD 上のフォルダに含まれるファイ
dirp
外部ファイル、フォルダ
ル、または、サブフォルダのフルパス
一覧を取得する
HDD 上のフォルダに含まれるファイ
dirs
外部ファイル、フォルダ
ル、または、サブフォルダの名前一覧
を取得する
行と行の間の距離を計算する
dist_compute
数値列操作関数
dump_list
リスト操作
dump_procedure_def
外部ファイル、フォルダ
dump_to_file
外部ファイル、フォルダ
リストを外部ファイル(HDD)に出力す
る
721
ユーザ定義関数を HDD にエクスポート
する
テーブルを外部ファイル(HDD)へ出力
する
dyadic_soft_clustering
クラスタ分析
eval
実行制御
exp
数値列操作関数
二項ソフトクラスタリングを実行する
parse の結果である計算オブジェクト
を実行する
ネイピア数の指数関数
テーブルの文字列(複数可)と数値列
f_value
乱数、統計関数
(複数可)間の関連性を表す f 値を求
める
file_exist
外部ファイル、フォルダ
fill_up_row
テーブル操作
filling_missing_data
テーブル操作
ファイルの存在をチェックする
不足パターンをダミーデータで補完し
たデータを作成する
欠損値を自動補填する
アソシエーション分析結果(ルール)を
filter_by_rule
ルールテーブル
用いて、与えられたデータから、ルー
ルの条件に合致する行を抽出する
floor
数値列操作関数
実数の切捨て
folder_exist
外部ファイル、フォルダ
フォルダの存在をチェックする
二項ソフトクラスタリングの結果を用い
folding_in_dyadic_model クラスタ分析
て継続学習を行う
繰り返しループ実行
for
実行制御
format_date
日付
format_file
外部ファイル、フォルダ
format_str
文字列操作関数
文字列を整形する
function_in_parallel
実行制御
任意のスクリプト関数を並列実行する
日付文字列を他の日付形式に変換す
る
HDD 上のテキストファイルに対し、整
形、分割などを行う
VAP のルートディレクトリの temp フォ
get_a_temp_file
環境
ルダ の下の一時ファイル名を取得す
る
VAP のルートディレクトリの temp フォ
get_a_temp_folder
環境
ルダ の下の一時フォルダ名を取得す
る
get_file_info
外部ファイル、フォルダ
get_prj_env
環境
get_scr_env
環境
任意のファイルの属性を取得する
VMStudio のプロジェクト毎の環境変数
情報を取得する
スクリプト実行時の環境変数情報を取
722
得する
get_scr_input_table
その他
get_script_def
その他
get_usr_env
環境
get_win_env
環境
grouping
テーブル操作
guiInput
その他
hist
テーブル操作
hour_offset
日付
hours
日付
hsmm_decode
時系列操作
hsmm_estimate
時系列操作
入力テーブルを取得する
この関数を含むスクリプトの定義内容
を取得する
ユーザ毎の環境変数情報を取得する
Windows(OS)の環境変数情報を取得
する
数値データのカテゴリ化、カテゴリデー
タのグループ化を行う
ユーザ入力画面(GUI)を表示し、オプ
ション選択または、テキスト入力を行う
数値データのヒストグラム(度数分布
表)を算出する
日付を表す文字列とその日付からの
間隔時間数より、日付を算出する
日付を表す2つの文字列から、日付間
の間隔時間数を算出する
隠れセミマルコフモデルを用いて、観
測値に状態の割り当てを行う
隠れセミマルコフモデルの学習しモデ
ルパラメータの推定を行う
隠れセミマルコフモデルの対数尤度
hsmm_eval
時系列操作
(モデルの当てはまりの良さ)を算出す
る
隠れセミマルコフモデルを用いて、平
hsmm_infer
時系列操作
hsmm_predict
時系列操作
hsmm_simulate
時系列操作
ifelse
実行制御
条件分岐
is.list
リスト操作
リストかどうかを判定する
is.na
テーブル操作
NA の判定を行う
is.null
テーブル操作
滑化、フィルタ、予測を行う
隠れセミマルコフモデルを用いて次の
時刻の状態を推定する
隠れセミマルコフモデルから観測デー
タを生成する
テーブルは null (行数=0)であるか
どうかをチェックする条件文(if )にの
723
み使用可能
is.substr
演算子
部分文字列の探索
is.substr.reg
演算子
正規表現での部分文字列の探索
list
リスト操作
リストを作る
list_elem
リスト操作
リストのメンバー参照
list_size
リスト操作
リストのメンバー数を返す
list2matrix
テーブル操作
load_procedure_def
外部ファイル、フォルダ
log
数値列操作関数
自然対数、ネイピア数を底とする対数
lower_case
文字列操作関数
文字列を小文字化する
make_folder
外部ファイル、フォルダ
HDD 上に新規フォルダを作成する
make_indicator
文字列操作関数
make_sample
テーブル操作
make_rp_matrix
乱数、統計関数
matrix2list
テーブル操作
max
数値列操作関数
リスト形式テーブルをマトリクス形式テ
ーブルへ変換する
ユーザ定義関数を外部ファイルからの
インポートする
カテゴリ列から、ダミーの 0-1 変数(カ
テゴリの指示変数)を作成する
サンプルを作る。
ランダム次元圧縮のための乱数行列
生成
マトリクス形式テーブルをリスト形式テ
ーブルへ変換する
与えられた数値データの最大値を算
出する
与えられた数値データの平均値を算
mean
数値列操作関数
出する 結果は、avg と同様、avg の別
名
テーブル操作
マージする
merge_sorted_vdt
テーブル操作
二つキー順にソートされたテー
ブルをマージする
min
数値列操作関数
minute_offset
日付
minutes
日付
merge
与えられた数値データの最小値を算
出する
日付を表す文字列とその日付からの
間隔分数より、日付を算出する
日付を表す2つの文字列から、日付間
の間隔分数を算出する
724
割り算の余りを求める
mod
数値列操作関数
months
日付
mov_avg
数値列操作関数
移動平均を求める
move_file
外部ファイル、フォルダ
HDD 上のファイルの移動を行う
move_folder
外部ファイル、フォルダ
HDD 上フォルダ間の移動を行う
moving.ave
数値列操作関数
移動平均を求める
ncol
テーブル操作
テーブルの列数を取得する
not
演算子
論理否定
now
日付
nrow
テーブル操作
テーブルの行数を取得する
numbering
テーブル操作
テーブルのならびに順位づけをする
optimize
最適計算
or
演算子
order
テーブル操作
日付を表す2つの文字列から、日付間
の間隔月数を算出する
与えられた日付の形式に従って、現在
の時刻を文字列として算出する
大規模最適化問題における近似解の
組を求める
論理和をとる
入力テーブルの行番号をソート順番に
出力する
スクリプト定義された文字列、または、
parse
実行制御
外部スクリプトファイルを構文解釈し
て、計算オブジェクトを作成する
複数の文字列を一つの文字列に結合
paste
文字列操作関数
pow
数値列操作関数
指数関数
predict_dyadic_data
クラスタ分析
関連性のランキングを作成する
print
表示
する
テーブル内容を VAP のメッセージボッ
クスに表示する
テキストファイルの内容(形式不問)を
print_text_file
表示
VMS のメッセージウィンドウに表示す
る
対象内容を VAP のメッセージボックス
println
表示
prob_beta
確率分布関数
ベータ分布の確率分布関数
prob_chisq
確率分布関数
カイ二乗分布の確率分布関数
prob_exp
確率分布関数
指数分布の確率分布関数
の一行に表示する
725
prob_f
確率分布関数
F 分布の確率分布関数
prob_gamma
確率分布関数
ガンマ分布の確率分布関数
prob_norm
確率分布関数
正規分布の確率分布関数
prob_pois
確率分布関数
ポアソン分布の確率分布関数
prob_t
確率分布関数
t 分布の確率分布関数
prob_unif
確率分布関数
一様分布の確率分布関数
procedure
実行制御
ユーザ定義関数、サブルーチン
procedure_in_parallel
実行制御
ユーザ定義関数を並列実行する
prod
数値列操作関数
quantile
数値列操作関数
query_dyadic_data
クラスタ分析
ranking
テーブル操作
テーブルのキー毎に順位付けを行う
rbind
テーブル操作
row_append と同じ
read_binary
外部ファイル、フォルダ
read_file
外部ファイル、フォルダ
read_from_text_file
外部ファイル、フォルダ
read_list
リスト操作
与えられた全列の数値データの掛算
結果を求める
分位点の値を求める
二項ソフトクラスタリングを用いた未知
のデータに対するクラスタの推定
HDD 上の VAP バイナリ形式ファイル
(複数指定可)を読む
HDD 上の外部ファイル(複数指定可)を
読む
テキストファイルから、ひとつの文字列
として取得する
リストを読み込む
ODBC 経由で、データベースから、ま
read_table_from_db
データベース
たは、直接 Access からテーブルを取
得する
remove_dup
テーブル操作
rep
テーブル操作
replace.all.str
文字列操作関数
replace.str
文字列操作関数
replace_cell
テーブル操作
replace_col
テーブル操作
replace_reg
文字列操作関数
重複を削除する
与えられたテーブルを複数個複製し、
行方向で合成する
文字列の文字を置換する
文字列の文字を置換する(はじめの1
つのみ)
指定したセルの内容を置換する
与えられたテーブルの指定した複数列
を別の列に置き換える
正規表現にマッチした部分文字列を新
726
文字列に置き換える
return
実行制御
ユーザ定義関数を終了させる
rnorm
乱数、統計関数
正規分布に従った乱数を生成する
row
演算子
行番号の指定
row_append
テーブル操作
row_shift
テーブル操作
rule_predict
ルールテーブル
rule_table_or
ルールテーブル
run_dll
外部ルーチン
外部 dll のプログラムを呼び出す
run_script
外部ルーチン
外部スクリプト定義を実行する
複数テーブルを行方向で一つテーブ
ルに合成する
テーブルを縦方向に指定した行数分
移動する
ルールテーブルを用いて、予測を行う
2 つのルールテーブルを1つのルール
テーブルに統合する
ODBC 経由、または、Access に対し
run_sql_on_db
データベース
て、SQL 文を発行し、DB 側で実行させ
る
runif
乱数、統計関数
一様分布に従った乱数を生成する
search_reg
文字列関数
正規表現にマッチした全ての文
字列をそれぞれ列に分けて返す
second_offset
日付
seconds
日付
search_reg
文字列操作関数
正規表現にマッチした全ての文
字列をそれぞれ列に分けて返す
sel
テーブル操作
テーブルの行選択を行う
sel_case
テーブル操作
テーブルの行選択を行う
日付を表す文字列とその日付からの
間隔秒数より、日付を算出する
日付を表す2つの文字列から、日付間
の間隔秒数を算出する
整数で表す2つの日付の間に含まれ
seq_date
日付
る全日付を指定された日付フォーマッ
トに従って、算出する
set_prj_env
環境
set_random_seed
乱数、統計関数
shuffle
テーブル操作
プロジェクト毎の環境変数情報を設定
する
乱数のシード値を設定する
テーブルの行の並びをランダムに変え
る
727
sin
数値列操作関数
sinh
数値列操作関数
sort
テーブル操作
sparse_matrix_product
演算子
split.all.str
文字列操作関数
split.path
文字列操作関数
split.str
文字列操作関数
sqrt
数値列操作関数
与えられた数値データの正弦を算出
する
双曲線正弦関数
テーブルの行の並びを指定されたキ
ー列順に変える
リスト形式の疎行列同士の行列積
文字列を指定された区切り文字によっ
て、複数の文字列に分割する
ファイルパス名を親フォルダパス名と
ファイル名に分割する
文字列を指定された区切り文字によっ
て、二つ文字列に分割する
平方根関数
実行に必要な CPU 時間/経過時間を
start_run_time_counter
その他
測るために、タイマーカウンターをスタ
ートする
stop
現在実行中のスクリプトを強制終了さ
実行制御
せる
実行に必要な CPU 時間/経過時間を
stop_run_time_counter
その他
測るために、タイマーカウンターをスト
ップする
strlen
文字列操作関数
文字列に含まれる文字数を算出する
substring
文字列操作関数
文字列の部分列を抽出する
sum
数値列操作関数
与えられた数値データの合計を算出
する
与えられた数値データの各セルの行、
sum_rate
数値列操作関数
または、列方向の割合(%)を算出す
る
sys_command
Windows(DOS)アプリケーションを起
外部ルーチン
動する
Windows(DOS)コマンド及びアプリケ
sys_command_batch
外部ルーチン
ーションを起動するためのバッチファイ
ルを作成し、それを実行する
sys_funs
VAP のシステム機能(集計)を実行す
外部ルーチン
る
728
sys_info
VAP の環境情報を取得する
環境
処理アイコン機能などを呼び出すため
sys_options
外部ルーチン
のパラメータ定義(Parameter for
Process Icon)を導入する
処理アイコンの機能をスクリプトから実
sys_proc
外部ルーチン
sys_proc_map_reduce
外部ルーチン
sys_proc_opt
外部ルーチン
sys_proc_pallarel
外部ルーチン
sys_proc_silent
外部ルーチン
table_diff
テーブル操作
table_view
表示
tan
数値列操作関数
正接関数
tanh
数値列操作関数
双曲線正接関数
titles
テーブル操作
テーブルの列名(タイトル)を取得する
行
Map/Reduce 機能を呼び出す関数
処理アイコン機能の実行パラメータ変
更
並列処理をする
処理アイコンの機能をメッセージを表
示せずに実行する
2つのテーブルが等しいか確かめる
データ&グラフビューを立ち上げて、
指定されたテーブルを表示する
キー列(複数可)で指定した内容に対
tprod
テーブル操作
して、全ての可能なキーのパターンを
生成する
アソシエーション分析結果をルールテ
transform_assoc_rule
ルールテーブル
transform_tree_rule
ルールテーブル
transpose
テーブル操作
trim
文字列操作関数
ts_pattern_adjust
時系列操作
パターンを正規化、標準化などする
ts_pattern_dist
時系列操作
パターン間の距離関数
ts_plr_dist
時系列操作
線分化された時系列の距離関数
ts_plr_plot
時系列操作
ts2matrix
時系列操作
ーブル形式に変換する
決定木分析結果をルールテーブル形
式に変換する
テーブルの行と列を入れ替える(転置
する)
文字列の両端にあるスペースを削除
する
線分化された時系列のグラフ描画用
データを作成
時系列をマトリックス形式にする
729
ts2pattern
時系列操作
時系列からパターンをつくる
ts2plr
時系列操作
時系列を線分化する
types
テーブル操作
upper_case
文字列操作関数
テーブルの列タイトル、列属性を取得
する
文字列を大文字化する
二項ソフトクラスタリングで作成したモ
updating_dyadic_model
クラスタ分析
デルに対して、クラスタ数やデータを変
更して継続学習、更新を行う
var
数値列操作関数
2 乗和を標本数-1 で割る分散
var_b
数値列操作関数
2 乗和を標本数で割る分散
weekday
日付
while
実行制御
繰り返しループ実行
work_directory
外部ファイル、フォルダ
作業フォルダのパスを設定する
write_table_to_db
データベース
write_to_text_file
外部ファイル、フォルダ
years
日付
日付を表す文字列から、対応する曜日
を算出する
ODBC 経由 DB または Access に、テー
ブルを書き込み
テキストファイルへ書き込み
日付を表す2つの文字列から、日付間
の間隔年数を算出する
730
11. 使い方に関するお問い合わせ
年間保守にご加入の方は、E-Mail による使い方サポートサービスを
ご利用いただけます。
[email protected]
上記アドレスまで、下記を明記の上お問い合わせください。

ご利用の製品名

バージョン

シリアル ID

ご登録者様のお名前

ご質問事項
ご質問に関わるデータやプロジェクトファイルなどは、直接メール添付をしないようお願
いいたします。
(容量により、エラーとなる場合がございます)
データおよびプロジェクトファイルをお送りいただく場合にはいったんお送りいただく旨
を E-Mail にてお知らせいただければこちらよりセキュアなデータ転送サービスご利用につ
いてご案内をいたします。
E-Mail でのお問い合わせについては、回答は一営業日以内に行います。もし回答がない場
合、送信いただいた E-Mail がエラーとなっている場合があります。お手数ではございます
が、今一度、宛先のメールアドレス等をご確認ください。
どうしても原因が分からない場合は、下記までお電話にてご連絡下さい。
(使い方のご質問そのものは、お電話ではお受けしておりませんので、ご注意ください)
(株)NTT データ数理システム 営業部
03-3358-6681
731
索引
Aggregate, 304
Radial Basis Function Network, 345, 379,
Bagging, 346, 438, 439, 440, 446
381, 383, 384, 394, 425, 441
BIRCH, 501, 502
S-PLUS グラフ表示, 565, 575, 589, 607
Boosting, 346, 421, 422, 423, 424, 436,
S-PLUS 連携, 604
Support Ball Machine, 345, 390, 391, 393,
437, 438
ClusterValidation, 525, 526, 527
394, 395
Support Vector Machine, 345, 384, 385,
DataGraph Viewer, 130, 132
Decision, 74, 160, 345, 346, 347, 350,
386, 387, 390, 394, 395, 425, 441, 517
352, 353, 358, 359, 365, 366, 367, 368,
VAP, 9
369, 370, 394, 396, 397, 398, 401, 402,
Visual Analytics Platform, 9
425, 431, 434, 441, 465, 468, 469, 475,
アイコンと処理フロー, 90
476, 482, 483, 484, 485, 486, 698
アイコンのコピー・貼り付け, 91
Decision Tree, 74, 160, 345, 346, 347,
アイコンの移動, 31
350, 352, 353, 358, 359, 365, 366, 367,
アイコンの機能呼び出し, 87, 707
368, 369, 370, 394, 396, 397, 398, 401,
アイコンの削除, 34, 37, 57, 91, 92
402, 425, 431, 434, 441, 464, 465, 468,
アイコンの状態と色, 95
469, 475, 476, 482, 483, 484, 485, 486,
アイコンの挿入, 93
698
アイコンの導入と削除, 55, 92
Excel 連携, 623
アソシエーション分析, 263, 402, 513,
Feature Selection, 308, 309, 310, 346,
536, 537, 538, 539, 544, 545, 546, 547,
547
548, 593, 689, 722, 729
K-means 法, 503
アドオンフォルダ, 28
K-NN 分析, 345, 373, 374, 375
インタラクティブルール分析, 539, 540,
NA, 173, 179, 313, 572, 691, 723
541
Naive Bayes, 345, 394, 415, 416, 418, 419,
エクスポート, 25, 40, 83, 84, 85, 86, 87,
425, 431, 434, 441
119, 144, 710, 711, 721
Neural Network, 250, 345, 375, 376, 377,
エラーメッセージ, 24, 50, 571, 658
オブジェクトブラウザ, 8, 21, 24, 26, 27,
378, 379, 380, 394, 410, 412, 413, 414,
425, 441, 508
30, 38, 40, 55, 66, 67, 71, 73, 74, 80,
nuSVM, 345, 387, 388, 390, 394, 395
82, 83, 84, 87, 90, 100, 123, 150, 262,
One Class SVM, 517, 518, 519, 520
609, 611, 613, 618, 621, 637, 649, 656,
One Class SVM 判定, 519
657
OPTICS, 505, 506, 507
オブジェクトブラウザのフォルダと操作
732
一覧, 38
データ&グラフビュー, 99, 100, 584, 587
クラスアソシエーション, 546, 547, 548
データインポート, 54, 58, 59, 68, 71, 151,
クラスタ分析, 263, 501, 506, 720, 722,
152, 620, 621
データの変更, 97
725, 726, 730
グラフ表示, 10, 268, 270, 321, 335, 565,
データの保存, 71
データハンドリング, 11, 715
575, 589, 592, 593, 597, 607, 608
クリーニング, 11, 150, 151
データビューアー, 279, 399
グルーピング, 11, 153, 154, 155, 649,
データファイル, 38, 52, 53, 55, 59, 73,
695
148, 158, 241, 623, 628
クロス集計, 241, 243, 244, 245, 317, 324,
データフォルダ, 27, 52, 66, 73, 74, 137
データベース, 28, 30, 52, 71, 603, 609,
332, 333, 335, 336, 343, 599
サマリ, 241, 242, 246, 247, 424, 425, 431,
611, 612, 613, 615, 616, 617, 618, 619,
438, 440, 441, 446, 572, 575
620, 621, 706
サンプリング, 11, 62, 63, 64, 156, 157,
データベースフォルダ, 28
169, 170, 171, 172, 409, 412, 438, 439,
データベース連携, 609, 616
445
データ管理, 52, 151
システム処理メッセージ, 50
データ操作, 11, 28, 38, 150, 687
スクリプト, 11, 29, 30, 34, 38, 39, 41, 43,
データ操作フォルダ, 28, 150
44, 46, 53, 57, 62, 69, 70, 86, 87, 91,
データ操作関数, 687
92, 114, 116, 117, 128, 161, 162, 163,
データ探索, 262, 263
268, 269, 270, 284, 358, 359, 368, 369,
データ探索フォルダ, 262, 263
370, 402, 412, 421, 430, 431, 432, 433,
データ表示, 10, 59, 66, 100, 357, 583
434, 435, 436, 437, 475, 476, 484, 485,
テーブルのリスト, 662
486, 592, 603, 606, 607, 614, 617, 620,
テーブル操作関数, 670
621, 622, 632, 633, 634, 635, 636, 637,
テーブル表示, 10, 73, 100
638, 643, 649, 650, 651, 652, 653, 655,
ネットワークグラフ表示, 593, 597
656, 657, 658, 659, 662, 705, 706, 707,
ネットワーク階層化, 513, 514
709, 710, 711, 715, 716, 717, 719, 720,
ハードクラスタリング, 528
722, 723, 725, 727, 728, 729
はじめに, 8, 528, 647, 717
スクリプトによるグラフ描画, 715
バッチファイルの作成, 143
スクリプトの基本, 658
バッチ処理, 11, 142, 143, 145, 148, 149,
スクリプト関数一覧, 653, 719
620, 625, 627, 628
ソート, 11, 45, 158, 159, 276, 309, 341,
パラメータ毎実行, 248
パラメータシート, 627, 628
725
ソリューション, 9, 28, 637, 656
ビジュアル集計, 317, 318, 319, 323, 324,
ソリューションフォルダ, 28
325, 336, 337, 338
733
ファイル分割, 11, 102, 160, 249, 250,
705
メモの作成, 105, 106
400, 401
ファイル分割を用いたモデル検証, 400
メモの削除, 108
フィルタの使用例, 162
モジュール, 73, 114, 119, 120, 121, 122,
フィルタリング, 11, 92, 161, 170, 239,
123, 124, 125, 126, 127, 128, 129, 130,
240, 519, 599
132, 133, 135, 136, 137, 138, 139, 141,
フォルダの新規作成, 30, 31
409, 410, 411, 412, 413, 415, 702
プロジェクト, 8, 9, 11, 24, 25, 26, 29, 30,
モジュールのループを用いたモデル統合,
34, 35, 38, 39, 40, 43, 45, 46, 47, 48,
409
50, 55, 56, 57, 58, 66, 67, 73, 74, 75,
モジュールの新規作成, 119
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
モデル, 74, 75, 76, 160, 253, 263, 308,
87, 88, 89, 90, 91, 98, 101, 104, 105,
310, 345, 346, 348, 349, 350, 351, 354,
108, 109, 115, 119, 123, 125, 128, 129,
355, 358, 359, 360, 361, 363, 364, 366,
137, 142, 143, 144, 365, 366, 410, 411,
368, 370, 371, 373, 375, 380, 387, 389,
412, 413, 418, 480, 482, 589, 604, 606,
392, 394, 395, 396, 397, 398, 399, 400,
609, 611, 613, 615, 616, 618, 621, 623,
401, 403, 404, 405, 406, 407, 408, 409,
626, 632, 637, 639, 641, 642, 650, 656,
410, 411, 412, 413, 414, 415, 418, 419,
657, 705, 710, 716, 722, 727
420, 421, 422, 423, 424, 425, 426, 428,
プロジェクトの管理, 39, 78
429, 430, 431, 433, 434, 438, 439, 440,
プロジェクトフォルダ, 29, 40, 45, 80,
441, 442, 446, 467, 468, 470, 472, 474,
123
476, 477, 482, 483, 484, 486, 487, 519,
プロジェクトボード, 24, 25, 26, 35, 40,
529, 552, 566, 567, 570, 572, 573, 698,
45, 47, 48, 55, 56, 57, 58, 67, 73, 85,
710, 730
モデルアイコン, 74, 75, 76, 366, 482,
86, 91, 101, 105, 109, 123, 142, 143,
366, 418, 482, 604, 609, 611, 613, 615,
483, 711
616, 617, 618, 621, 623, 632, 637, 650,
モデルとして One Class SVM を利用する,
657
519
プロジェクト実行メッセージ, 50
モデルファイル, 74, 75, 76, 366, 482,
プロパティ, 39, 41, 50, 126, 131, 133,
483, 710
モデル統合, 76, 345, 394, 404, 405, 409,
134, 137, 138, 139, 413, 587, 597, 623,
624
410, 411, 412, 413, 414, 415
マージ, 11, 138, 139, 140, 164, 165, 166,
ユーザインターフェイス, 24
ユーザフォルダの指定, 14
309, 343, 387, 390, 520, 533, 720, 724
マトリックス形式, 247
リスト化, 175, 178, 179, 180, 302, 662
メニューバー, 14, 20, 24, 39, 49, 50, 71,
ルールベース予測, 401, 403, 404, 546
レポーティング機能, 639, 640
78, 81, 82, 84, 85, 87, 587, 606, 629,
734
レポート表示, 601
時系列アソシエーション分析, 544, 545,
横展開, 175, 176, 177, 178
546
回帰分析, 373, 375, 379, 384, 386, 387,
時系列処理, 263, 264, 268, 269, 270, 273,
390, 395, 396
284
階層型クラスタリング, 513, 517, 520,
自己組織化マップ, 508, 509, 510, 511,
521, 524
512
外部連携, 52, 603
実行と登録, 655
完全削除, 57, 92, 110
主成分分析, 551, 552, 554, 555, 556, 558
関連性ダイアグラム分析, 542, 543
集計, 10, 11, 44, 97, 103, 117, 118, 143,
起動, 12, 13, 14, 15, 16, 18, 21, 22, 131,
241, 242, 243, 244, 245, 246, 247, 263,
145, 148, 318, 324, 325, 426, 442, 599,
313, 315, 317, 318, 319, 321, 322, 323,
604, 620, 629, 633, 634, 635, 637, 706,
324, 325, 326, 327, 329, 330, 331, 332,
728
333, 334, 335, 336, 337, 338, 341, 343,
共通フォルダ, 30, 32, 34, 35, 36, 37, 38,
344, 360, 399, 533, 550, 587, 598, 599,
87, 119
600, 710, 719, 720, 728
共通フォルダから取り込み, 36
処理フローの自動実行, 94, 95
共通フォルダにコピー, 35, 87, 119
数学関数, 677
共通フォルダの操作, 30, 34
制御関数, 699
群間比較, 310, 311
正規化, 11, 155, 168, 253, 729
計算例, 396, 400
切り取り, 31, 35
欠損値の検出, 151
設定の変更, 629
欠損値の補完, 152
選択範囲のフローの移動, 109
欠損補填, 177, 263, 264
選択範囲内のアイコンの位置揃え, 111
決定木の印刷, 371, 487
選択範囲内のフローの移動, 109
交差検証, 346, 350, 419, 420
選択範囲内のフローの削除, 110
行選択, 11, 235, 292, 300, 612, 619, 727
選択範囲内のフローの複製, 109
項目カウンタ, 241, 242, 243
全処理アイコン結果の削除, 98
再実行, 43, 97, 98, 99, 142, 148, 589, 620,
組み込み関数, 29
層別サンプリング, 11, 169
655
再配置, 11, 175, 176, 178, 180, 181
相関, 263, 304, 306, 308, 549, 552, 560,
削除, 14, 15, 18, 19, 27, 28, 33, 34, 37, 38,
561, 562, 563, 564, 565, 566, 567, 572,
55, 57, 83, 91, 92, 93, 97, 98, 99, 108,
684, 720, 721
109, 110, 112, 113, 238, 418, 597, 620,
多変量解析, 263, 549, 551
622, 623, 625, 635, 653, 688, 699, 721,
多目的変数決定木, 346, 354, 464, 470
726, 729
対応分析, 549, 550
使用例, 126, 162, 395, 405, 410, 659
単一参照, 164, 165
735
定義, 24, 25, 26, 41, 46, 53, 86, 87, 120,
入出力の編集, 121
121, 122, 128, 142, 143, 147, 169, 251,
入出力関数, 696
286, 354, 389, 392, 416, 421, 424, 435,
入力画面呼び出し, 711, 712, 713
436, 440, 470, 538, 546, 571, 604, 606,
表示フォルダ, 28
613, 614, 621, 622, 632, 633, 634, 636,
評価の出力, 399
637, 643, 647, 649, 650, 651, 652, 653,
分類分析, 74, 160, 263, 266, 308, 345,
656, 657, 658, 661, 702, 703, 706, 707,
375, 379, 390, 421, 424, 439, 440
708, 709, 710, 716, 719, 721, 723, 724,
矢印線のつなぎ方, 92
725, 726, 727, 729
矢印線の削除, 93
貼り付け, 26, 31, 32, 35, 55, 57, 70, 90,
予測, 76, 250, 263, 346, 351, 352, 353,
91, 104, 109, 110, 125, 619, 620, 621,
354, 366, 373, 375, 378, 379, 383, 387,
707
390, 394, 395, 396, 397, 398, 399, 400,
転置, 175, 176, 676, 729
401, 402, 403, 404, 406, 407, 408, 409,
統計量, 236, 263, 272, 304, 310, 312, 346,
419, 421, 423, 424, 431, 432, 434, 438,
417, 547, 663
439, 440, 446, 464, 468, 469, 470, 483,
同時実行ユーザ数の制限, 18
539, 546, 549, 566, 569, 570, 571, 572,
匿名化, 11, 173, 174, 719
573, 698, 727
二項ソフトクラスタリング, 527, 528,
列選択, 68, 158, 276, 277
列属性変更, 11, 167
529
日付時刻処理, 11, 230
日付選択, 11, 239
入出力の定義, 120
736
Fly UP