SAS Japan
活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全てSAS Visual Analytics on SAS Viya(以降VA)の次期版8.3に搭載予定の新機能をダイジェストで紹介します。 レポート作成効率の向上 レポート表示能力の拡張 表形式オブジェクトの機能拡張 SAS Mobile SDK 1.レポート作成効率の向上 レポート作成や設定は1度だけ、後はこれを再利用し、レポート作成の効率を向上 1-1.レポートデータビュー 従来からVAではレポート作成・編集時、左側に表示される「データ」リスト画面内で、必要な階層項目や計算項目の作成、カスタムカテゴリーの作成、不要な項目の非表示、などを設定し、このデータビューに基づいてレポートを作成してきました。 VA8.3では、同じデータソースに基づく複数の異なるデータビューを定義し、これを異なるレポート間、ユーザー間で共有し、再利用することができるようになります。 同じデータソースに基づく、異なるレポートを作成する際の効率が大幅に向上します。 1-2.共通フィルター 従来は、オブジェクトごとに右画面内で設定できるフィルター(オブジェクトフィルター)を使用する場合、例えば、レポート内に3つのチャートオブジェクト(円グラフ、クロス表、棒グラフ)があり、円グラフと棒グラフにだけ同じ条件で絞り込みをかけたい場合は、円グラフと棒グラフの両オブジェクトにそれぞれ同じフィルターを設定する必要がありました。 VA8.3では、作成したフィルター定義を複数の異なるオブジェクトに再適用することが可能になります。さらに、このフィルター定義は共通フィルターとしてデータビューに保存し、「1-1.」項で紹介したように、レポート間、ユーザー間でも共有し、再利用が可能になります。 1-3.絞り込み条件保持 従来、レポート参照者がレポートを表示し、好みの条件を選択し、レポート表示内容を変更した場合、そのレポートを一旦閉じた後、再度同じ内容を参照したい場合は、再度同じ作業を繰り返す必要がありました。 しかし、VA8.3では、レポート参照時にレポートに対して行った最終操作結果状態を保持することが可能となり、レポート再表示時に、同じ作業を繰り返す必要が無くなります。 1-4.格子ガイド利用 VA8.3では、レポート作成・編集時に、背景にグリッドを表示し、レポートページ内のお好みの位置に、オブジェクトを正確かつ素早く配置することが可能になります。 2.レポート表示能力の拡張 レポートが、あなたに、ストーリーを語ります。 2-1.再生可能ダッシュボード 再生可能なダッシュボードを使用することで、レポート参照者は、静的ではなく動的なダッシュボードをフルスクリーンで体験することができます。 会議の場などで、PowerPointのスライドショーのように、BIレポートを効果的に表示することも可能です。 あなたが設定したタイミングで、設定した順序で、レポートページ単位やページ内オブジェクト単位で、ダッシュボード内容が自動再生されます。 2-2.レポート自動リフレッシュ機能拡張 従来のVAでは、レポート全体を最短1分間隔で自動リフレッシュすることが可能でしたが、VA8.3では、レポートのページ単位、ページ内のオブジェクト単位に、最短1秒間隔で自動リフレッシュが可能になります。 これによって、リアルタイムBIレポートモニタリングが実現されます。 例えば、ページ内の折れ線グラフは1秒間隔で、リアルタイムなデータの変動を表示し、棒グラフは2分間隔で、別のデータの更新状況を表示する、といったことが可能になります。 3.表形式オブジェクトの機能拡張 そのままでは、数値の羅列で、ビジネス状況を直感的に捉えるのは難しいリスト表やクロス集計表の表現力が拡張されます。 3-1.表のセル内にグラフ表示 表のセル内に、数値だけでなく、棒グラフやヒートマップなどを表示することができます。 このビジュアライゼーションによって、問題点を迅速に特定し、データの傾向を直感的に捉えることが可能になります。 3-2.数値の表示桁数短縮 表のセル内に表示する数値の桁数が多い場合に、ワンタッチで短縮形表示に変更することが可能になります。これによって、表示スペースを節約して、表を読み易くできます。 4.SAS Mobile SDK iOS用SAS SDKおよびAndroid用SAS SDKを使用して、SAS Viyaサーバ上のコンテンツにアクセスするための強力なモバイルアプリを作成することが可能です。
ディープラーニング&画像処理用Python API向けパッケージ:DLPyでは、DLPyの基本的な機能を紹介しました。その中で、ディープラーニングの判断根拠となり得る情報、つまり入力画像のどこに着目しているのかをカラフルなヒートマップとして出力することができるheat_map_analysis()メソッドに触れました。 今回は、heat_map_analysis()メソッドを使用して、ヒートマップを出力する際に指定可能な有効なオプションに関していくつか紹介します。 GPU活用 ヒートマップ解析時の判別(予測)処理再実行回避 ヒートマップ出力対象画像タイプ(正・誤判別)指定 ヒートマップ出力対象画像指定 1.GPU活用 SAS Viyaのディープラーニングでは、ネットワークの層ごとにGPUを使用するかどうかの指定が可能ですが、ヒートマップを出力する際にも、指定したテストデータをモデルに当てはめての予測処理は実行されることになるので、同様にGPUを使用することが可能です。 GPUを使用することで、ヒートマップ出力の時間を短縮することができます。 2.ヒートマップ解析時の判別(予測)処理再実行回避 最初にheat_map_analysis()メソッドを実行する際には、モデルにテストデータを当てはめて判別(予測)処理が行われますが、以降、heat_map_analysis()メソッドを使用して、必要な判断根拠情報を再出力する際には、最初の実行時に計算された値を再利用するので、都度再計算(判別・予測処理)は行わず、より効率的、迅速に、ヒートマップを出力することができます。 「1.GPU活用」でのheat_map_analysis()メソッドではパラメータとして「data=te_img」が指定され、モデルにテストデータを当てはめていましたが、下記の再実行の例では、このパラメータは指定されず、結果のメッセージにも「Using results from model.predict()」と、実行済みの計算結果が使用されている旨が表示されています。 3.ヒートマップ出力対象画像タイプ(正・誤判別)指定 ディープラーニングのモデルにテストデータを当てはめて判別(予測)した結果として、正しく判定された画像と間違った判定が下された画像があります。 heat_map_analysis()メソッドの「img_type」パラメータを使用し、正:”C”(Correct Classification), 誤:“M”(Miss Classified), すべて:“A”(All)、を指定して該当画像の判断根拠情報を出力することが可能です。 以下は、誤判別された画像(img_type=‘M’)の判断根拠情報出力例です。 画像のどの部分に着目して、間違った判断に至ったのかを確認することができるので、モデル精度を改善するためには、学習用にどのような画像が必要なのかといった、示唆も与えてくれます。 4.ヒートマップ出力対象画像指定 heat_map_analysis()メソッドの「filename / image_id」パラメータを使用し、特定の画像を指定して、出力することも可能です。 以下は、画像ファイルリストの上位2つの画像のヒートマップをファイル名指定で出力している例です。 以下は、画像ファイルリストの先頭の画像のヒートマップをID指定で出力している例です。 上記例の詳細に関しては、こちらのGitfubサイトをご覧ください。 DLPyの詳細に関しては、こちらのGithubサイトをご覧ください。
前回は、SASの「Pipefitter」の基本的な使用方法を紹介しました。続く今回は、基本内容を踏まえ、ひとつの応用例を紹介します。 SAS Viyaのディープラーニング手法の一つであるCNNを「特徴抽出器」として、決定木、勾配ブースティングなどを「分類器」として使用することで、データ数が多くないと精度が出ないCNNの欠点を、データ数が少なくても精度が出る「従来の機械学習手法」で補強するという方法が、画像解析の分野でも応用されています。 以下は、SAS Viyaに搭載のディープラーニング(CNN)で、ImageNetのデータを学習させ、そのモデルに以下の複数のイルカとキリンの画像をテストデータとして当てはめたモデルのpooling層で出力した特徴空間に決定木をかけている例です。 In [17]: te_img.show(8,4) 以下はCNNの構造の定義です。 Build a simple CNN model In [18]: from dlpy import Model, Sequential from dlpy.layers import * from dlpy.applications import * In [19]: model1 = Sequential(sess, model_table='Simple_CNN') Input Layer In [20]: model1.add(InputLayer(3, 224, 224, offsets=tr_img.channel_means)) NOTE: Input
SASでは、Python向けパッケージ/ライブラリとして、機械学習のパイプラインの実装を簡素化する「Pipefitter」を提供しています。 SASの「Pipefitter」パッケージは、SAS Viyaまたは、SAS v9の反復可能なワークフローの一つの段階として、データ変換とモデルフィッティング向けパイプラインを開発するためのPython APIを提供します。 このパッケージを使用すると、SASでデータを操作して、次のような処理を実装できます: ・欠損値補完 ・デシジョンツリー、ニューラルネットワーク、およびその他の機械学習テクニックを使用したパラメータ推定値の適合 ・ハイパーパラメータチューニングを使用したモデル選択の高速化 ・スコアリングとモデル評価 「Pipefitter」のもう一つの重要な特徴は、SASが提供する他の2つのPythonパッケージの能力に基づいていることです。 SWAT: SAS Viyaプラットフォームのインメモリー分析エンジンであるSAS Cloud Analytic Services(CAS)を活用し様々なデータ操作や分析を可能にするPython向けパッケージ SASPy: SAS9.4の機能を活用し、分析、データ操作、および視覚化を行うためのPython向けパッケージ ロジスティック回帰でのパラメータ推定などのパイプライン処理は、SASPyを介してSAS 9で、SWATを介してCASで同じように実行されるように設計されています。 以下は、タイタニック号の乗船者データに基づくパイプラインの例です。 まず、KaggleのサイトからPandas DataFrameにデータをダウンロードします。 In [1]: import pandas as pd In [2]: train = pd.read_csv('http://s3.amazonaws.com/assets.datacamp.com/course/Kaggle/train.csv') In [3]: train.head() Out[3]: PassengerId Survived Pclass \ 0 1 0 3 1 2