Japanese

SAS Administrators
SAS Viyaの新しい権限設定方法

このブログでは、SAS Viyaで提供される各種機能やリソースへのアクセス制限を設定する方法を紹介します。 ユーザーやグループが行うことができる(あるいは参照することができる)内容はルールによって設定されます。ルールは以下の権限要素によって構成されています。: ・プリンシパル:ユーザーまたはグループ。 ・ターゲット:サービス、フォルダ、レポートなどのリソース。 ・権限:アクセスのタイプ(たとえば、読み取りまたは書き込み)。 ・設定:アクセスが提供されているかどうかの表示、たとえば許可または禁止。 ルールのターゲットは、uniform resource identifier(uri)を使用して識別されます。URIは、フォルダやレポート、データプランなどのコンテンツ、またはデータのインポートなどの各種の機能などを表すことができます。 SAS Viyaでのuriの例をいくつか紹介します。 ・データプラン:/ dataPreparationPlans / plans / 810e2c6b-4733-4d53-94fd-dfeb4df0de9e ・フォルダ:/ folders / folders / e28e35af-2673-4fc7-81fa-1a074f4c0de9 ・機能性:/ SASVisualAnalytics / ** 以下の例では、「レポート開発者」カスタムグループを作成し、そのグループのユーザーのみがSAS Visual Analyticsでレポートを作成することができるように設定しています。 カスタムグループを作成します。 ルールを使用して、そのグループに使用機能に対する権限を設定します。 1. カスタムグループを作成 SAS Viyaの環境の管理(SAS Environment Manager)上で、管理者(管理者のみがユーザーとグループを管理できます)が、ユーザー>カスタムグループ>カスタムグループの新規作成を選択します。 カスタムグループの新規作成画面で、「名前」にグループ名、「ID」に一意のID、「説明」に必要に応じて説明を記載します。 新しいグループが作成されたら、編集ボタンをクリックして、新しいメンバーをグループに追加します。 ユーザーまたは他のグループを新しいグループのメンバーとして追加することができます。 2.ルールを使用して、そのグループに使用機能に対する権限を設定 「レポート開発者」グループのみがSAS Visual Analyticsの機能にアクセスできるようにルールを作成、または更新します。まず、SAS Visual Analyticsに現在適用されているルールを見ていきます。 環境の管理(SAS Environment

Data Visualization
セルフサービスBI&AIの決定版SAS Visual Analytics 8.3 on SAS Viya新機能概要

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サーバ上のコンテンツにアクセスするための強力なモバイルアプリを作成することが可能です。

Artificial Intelligence
SAS Viya: DLPyを用いたディープラーニングの判断根拠情報出力

ディープラーニング&画像処理用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サイトをご覧ください。  

Advanced Analytics | Analytics | Artificial Intelligence | Machine Learning
「Pipefitter」の応用 ~CNN(特徴抽出器)+機械学習(分類器)でCNNの欠点を補完

前回は、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

Advanced Analytics | Analytics | Artificial Intelligence | Machine Learning
機械学習のパイプラインを簡素化するPython向けパッケージ「Pipefitter」

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 1

Analytics
小林 泉 0
SAS Global Forum ユーザーおよびSAS社員による最新のSAS活用ノウハウ

SASの提供する機能、製品、コーディング上の利用の仕方、便利なSASマクロ等々は非常に幅広く、日々お客様と接している我々であっても全ての情報を持つことはできません。そのため、我々はWWのSAS利用ナレッジをこのSAS Global Forumにおける発表論文に頼ることが頻繁にあり、社内のナレッジシェアリングで参照することもしばしばです。f 今年4月に開催されたSAS Global Forum 2018の発表資料/論文を検索 2017以前の発表資料/論文を検索 なんと1976年からあります! 是非、ご活用いただければと思います。

Machine Learning
SAS Viya:ディープラーニング&画像処理用Python API向けパッケージ:DLPy

SASでは、従来からSAS Viyaの機能をPythonなど各種汎用プログラミング言語から利用するためのパッケージであるSWATを提供していました。 これに加え、よりハイレベルなPython向けAPIパッケージであるDLPyの提供も開始され、PythonからViyaの機能をより効率的に活用することが可能となっています。 ※DLPyの詳細に関しては以下サイトをご覧ください。 https://github.com/sassoftware/python-dlpy DLPyとは DLPyの機能(一部抜粋) 1.DLPyとは DLPyは、Viya3.3以降のディープラーニングと画像処理(image action set)のために作成された、Python API向けハイレベルパッケージです。DLPyではKerasに似たAPIを提供し、ディープラーニングと画像処理のコーディングの効率化が図られています。既存のKerasのコードをほんの少し書き換えるだけで、SAS Viya上でその処理を実行させることも可能になります。 例えば、以下はCNNの層の定義例です。Kerasに酷似していることがわかります。 DLPyでサポートしているレイヤは、InputLayer, Conv2d, Pooling, Dense, Recurrent, BN, Res, Proj, OutputLayer、です。 以下は学習時の記述例です。 2.DLPyの機能(一部抜粋) 複数のイルカとキリンの画像をCNNによって学習し、そのモデルにテスト画像を当てはめて予測する内容を例に、DLPyの機能(一部抜粋)を紹介します。 2-1.メジャーなディープラーニング・ネットワークの実装 DLPyでは、事前に構築された以下のディープラーニングモデルを提供しています。 VGG11/13/16/19、 ResNet34/50/101/152、 wide_resnet、 dense_net また、以下のモデルでは、ImageNetのデータを使用した事前学習済みのweightsも提供(このweightsは転移学習によって独自のタスクに利用可能)しています。 VGG16、VGG19、ResNet50、ResNet101、ResNet152 以下は、ResNet50の事前学習済みのweightsを転移している例です。 2-2.CNNの判断根拠情報 heat_map_analysis()メソッドを使用し、画像の何処に着目したのかをカラフルなヒートマップとして出力し、確認することができます。 また、get_feature_maps()メソッドを使用し、CNNの各層の特徴マップ(feature map)を取得し、feature_maps.display()メソッドを使用し、取得されたfeature mapの層を指定して表示し、確認することもできます。 以下は、レイヤー1のfeature mapの出力結果です。 以下は、レイヤー18のfeature mapの出力結果です。 2-3.ディープラーニング&画像処理関連タスク支援機能 2-3-1.resize()メソッド:画像データのリサイズ 2-3-2.as_patches()メソッド:画像データ拡張(元画像からパッチを生成) 2-3-3.two_way_split()メソッド:データ分割(学習、テスト) 2-3-4.plot_network()メソッド:定義したディープラーニングの層(ネットワーク)の構造をグラフィカルな図として描画 2-3-5.plot_training_history()メソッド:反復学習の履歴表示

Machine Learning
SAS Viya: ディープラーニングと機械学習の判断根拠情報

前回の「ディープラーニングの判断根拠」ブログでは、PythonからSAS Viyaの機能を活用するためのパッケージであるSWATを使用した例を説明しましたが、今回は、以下2点に関してご紹介します。 SAS ViyaのよりハイレベルなPython APIであるDLPyを使用した画像認識モデルの判断根拠情報 機械学習の判断根拠情報 1.SAS ViyaのよりハイレベルなPython APIであるDLPyを使用した画像認識モデルの判断根拠情報 この例では、複数のイルカとキリンの画像をSAS Viyaのディープラーニング(CNN)で学習させ、そのモデルに以下の画像を当てはめて、これがイルカなのか否かを判別するものです。 実際、この画像はイルカであると判定されたんですが。 SAS Viyaでは、その判断根拠となり得る情報の一つとして、入力画像のどこに着目したのかを以下の通り出力し、確認できるようになっています。 DLPyでは、get_feature_maps()メソッドでfeature mapを取得し、feature_map.display()で指定したレイヤーの内容を表示することができます。 以下は、レイヤー1のfeature mapです。 以下は、レイヤー18のfeature mapです。 白色の濃淡で、判別に影響を与えている箇所を確認することができます。 さらに、SAS Viyaでは、画像認識モデルの判断根拠情報を可視化する手法の一つである、Grad-CAMと同様に、画像の何処に着目したのかを、カラフルなヒートマップとして出力し、確認することもできるようになっています。 しかも、heat_map_analysis()メソッドを使用して、以下の通り、たった1行書くだけでです。 青、緑、赤の濃淡で、判別に影響を与えている箇所を確認することができます。 DLPyの詳細に関しては、以下をご覧ください。 https://github.com/sassoftware/python-dlpy 2.機械学習の判断根拠情報 もちろんディープラーニングだけではなく、従来からの機械学習のモデルによって導き出された予測や判断に関しても、それがなぜ正しいと言えるのか、具体的に言えば、なぜAさんはこの商品を買ってくれそうだと判断されたのか、なぜこの取引データは疑わしいと判断されたのか、を説明する必要性があるわけです。特に説明責任が求められるような業務要件においては、 ということでSAS Viyaの次期版には機械学習の判断根拠情報、モデル内容を説明するための機能が実装される予定です。 まず、影響度が最も高い変数は、という問いに対しては、従来からの変数の重要度で確認することができます。これをさらに一段掘り下げたものが、Partial Dependence (PD)です。 日本語では「部分従属」と言いますが。重要度の高い変数は、予測に対して、具体的にはどのように作用しているのかを知ることができます。 そしてこのPDを元にさらに一段掘り下げたものが、Individual Conditional Expectation (ICE)になります。 また、これらとは別に、なぜその予測結果に至ったのかを説明するテクニックとしてLocal Interpretable Model-agnostic Explanations (LIME)を活用することができます。 SAS Viyaベースの製品であるSAS Visual Data Mining and

SAS Events | Students & Educators
SAS Global Forum Academic Summit レポート

4月8日から9日まで、米国コロラド州デンバーにおいて、年次のSASグローバルイベント「SAS Global Forum」が開催されました。 今年のSAS Global Forumには、2月に開催された和歌山県データ利活用コンペティションにてSAS賞を受賞した専修大学のチームを招待しました。 SAS Global Forumでは、毎回、学生・教員が参加するAcademic Summitが開催されますが、今年も4月8日に開催された本イベントをレポートいたします。

Data Visualization
SAS Visual Analyticsで地図上にカスタム境界線(領域)を描いて分析―(続編)

前回、この機能を紹介した際には、海外に実在する施設や地図上での活用例をご覧いただきました。 その続編となる今回は、以下の2点に関してご紹介します。 (尚、以下のデモ画面に表示されている数値(座席数、利用率、収益率、等)はすべてダミーデータです)   1.日本地図上に実在する施設に対するカスタム境界線分析 2.カスタム境界線機能で、こんなことまでできるなんて…   1.日本地図上に実在する施設に対するカスタム境界線分析 私は埼玉県さいたま市に在住しているのですが、だからというわけではありませんが、今回は、埼玉スタジアムの座席レイアウトを地図上の埼玉スタジアム上に描画してみました。(図1.参照) 図1.埼玉スタジアム地図上に描画された、観客席レイアウト 図1.では、「客席別利用率」ページが表示されています。 左側には客席ゾーン別の座席数が棒グラフで表示され、右側には、スタジアムの客席レイアウトが表示され、利用率によって色分けされています。また、棒グラフ上でゾーンCが選択され、スタジアム内の対応する客席の部分がハイライトされている状態です。 もちろん、SAS Visual Analytics(以降、VA)の標準機能を使用して、特定の客席エリアをクリックし、そのエリアのチケット料金や、収益の推移、などの詳細情報をポップアップで表示させることも可能です。 右側の地図が本当に埼玉スタジアムのある地点なのかを分かりやすく見ていただくために、図2.ではズームアウトしたものも載せました。埼玉スタジアムは国道122号線沿いにあるんですね。 図2.図1.から地図を少しズームアウトした状態 以下の図3.は同じレポート内の「ゾーン別客席マップ」ページです。棒グラフのゾーン別の色に合わせて、客席エリアの色を合わせたものです。 図3.「ゾーン別客席マップ」ページ   2.カスタム境界線機能で、こんなことまでできるなんて… 実は、VAの地図描画用オブジェクトである、「ジオマップ」では、地図を非表示にすることができます。 あれ?、地図描画用の機能なのに、地図を非表示にする意味あるの?と思われるかと思いますが、これがあるんですね。 その一例をご紹介します。 以下の図4.は、とある列車の車両内の座席別収益率を分析するレポートです。座席ごとの収益率が色分けで表示されています。(座席別に収益率を把握する必要があるかどうかは別のお話ですが) 図4.列車内座席別収益率レポート この座席レイアウトも「ジオマップ」オブジェクトを使用し、地図上に描画されているものなのですが、地図は境界線(領域)を描くためには必要ですが、この例のような場合は、描いた後は地図が必要ないので非表示にしているわけです。地図を非表示にしていること以外は、その他の例と同様に、チャートやアナリティクスとのインタラクション等はもちろん可能です。 上記の図4.でも、座席別収益率の棒グラフ上で、最も収益率の低い座席(右端の棒)を選択し、該当の座席位置をハイライト表示しています。 SAS Visual Analytics on SAS Viyaでは、こんなこともできるんですね。 例えば、人体図の中の内臓別の疾患状況をビジュアルに分析する、工場内プラントの設備(工程)ごとの稼働状況を図解でビジュアルに可視化し分析する、店舗内の商品陳列棚別の在庫状況や売上状況を図解でビジュアルに可視化し分析する…なんていうこともできそうですね。

Data Visualization
SAS Visual Analyticsで地図上にカスタム境界線(領域)を描いて分析

みなさんご存知の通り、SAS Visual AnalyticsはセルフサービスBI&Analyticsツールで、ビジネスユーザー自身で簡単にレポートやダッシュボードを作成することができます。その際、標準で備わっている数多くのチャートオブジェクトを使用することができますが、お客様要件によっては、標準のチャートタイプだけでは表現できないものもあります。それに答えるためにSAS Visual Analytics 8.2(以下VA)には大きく2つの機能が用意されています。 データドリブンコンテンツ 地図上のカスタム境界線描画 1番目の「データドリブンコンテンツ」とは、サードパーティのビジュアライゼーション・ライブラリ(D3.js, C3, Google Chart Toolsなど)と連携することで、チャートタイプやビジュアルのバリエーションを大幅に拡張可能な機能ですが、 今回は、2番目の「地図上のカスタム境界線描画」機能に関してご紹介します。 VAに標準搭載のチャートオブジェクトには地図描画のための「ジオマップ」オブジェクトが含まれています。この機能を活用することで、例えば、地図上で隕石落下地点と被害の度合いを分析(図1.参照)したり、都道府県別の売上や店舗別の顧客数などをビジュアライズし、分析(図2.参照)することができます。 図1.隕石落下地点と被害の度合い分析ダッシュボード 図2.店舗別の売上と利益をバブルのサイズと色で表示 地図描画のタイプとしては、図1の「座標」、図2の「バブル」以外に「領域」を選択可能です。 「座標」とは、地図上の該当ポイントに円形や星形などのアイコンを表示するものです。 そして、「領域」では、基本的に地図上の国の境界線や、その一つ下のレベルである州や都道府県の境界線領域を描画します。例えばアメリカの州や日本の都道府県の領域を指定した値に基づき色分けして表示するものです。(図3.参照) 図3.都道府県ごとの売上分析 さらに、地図上に表示するこの「領域」をカスタムで描画することが可能で、これを「カスタム境界線(領域)」描画機能と呼んでいます。 この機能を活用することで、例えば、特定施設内の人や物の動線を描画したり、家屋ごとのソーラー発電量を実際の地図上に描画することなども可能になります。 その基本的な手順を、アメリカにあるコロラド・コンベンション・センター(以下CCC)内のミーティングフロアにある各種の会議室領域の描画を例に、以下に示します。 図4. VAレポート上に表示された完成版(部屋ごとの面積などを色分けして描画することができます) CCCのフロアレイアウト画像を入手し、市販ツールあるいはオープンソース製品を使用し、Esri shapeファイルを作成 Esri ShapeファイルをVA環境にインポート インポートしたデータに基づきカスタム境界線(領域)をレポート上に描画   1. CCCのフロアレイアウト画像を入手し、市販ツールあるいはオープンソース製品を使用し、Esri Shapeファイルを作成 この例では市販のEsri Desktopツールを使用し、CCCのサイトから入手したフロアレイアウトの画像をEsri地図上に重ね(図5.参照)、部屋の輪郭をなぞって描き(図6.参照)、結果をEsri Shapeファイルとして保存(図7.参照)します。(詳細に関しては、使用するツールのマニュアルを御覧ください。) 図5. Esri地図上のCCCのある地点の上に、CCCのフロアレイアウト画像を重ねる 図6. 部屋の輪郭をなぞって描く(描いた領域ごとにIDを設定しておきます。この例ではRoomID) 図7. 結果をEsri Shapeファイルとして保存 2. Esri ShapeファイルをVA環境にインポート VA環境に実装されているマクロ%SHPIMPRTを使用し、Esri ShapeファイルをSAS Datasetに変換(以降Shapeデータ)し、VA環境(インメモリー)にロードします。 詳細は、以下サポートサイトにあるSAS Viya管理者(Administration)マニュアルを御覧ください。 https://support.sas.com/documentation/onlinedoc/viya/index.html

Machine Learning
Makoto Unemi (畝見 真) 0
ディープラーニングの判断根拠

予測モデル生成において、従来は、人が考えてデータの中から特徴を抽出する必要がありましたが、ディープラーニングでは、この特徴を自動的に抽出して学習することが可能になっています。 半面、どのように特徴が抽出されているのかに関しては、基本的にはブラックボックスであり、説明責任が求められるような業務要件では、その分析結果を業務に活用することが難しい場合もあります。 しかし、近年ディープラーニングから出てきた結果の根拠=判断根拠を可視化する手法がいくつか考案されてきています。 関連情報サイト: https://qiita.com/icoxfog417/items/8689f943fd1225e24358 https://pair-code.github.io/saliency/ http://blog.brainpad.co.jp/entry/2017/07/10/163000 SAS Viyaでは、各種のディープラーニング(DNN, CNN, RNN)を用いた学習が可能ですが、今回はCNNを用いた画像認識において、判断根拠となり得る情報の出力に関してご紹介します。 この例は、複数のイルカの画像をCNNで学習し、対象の画像(写真)がイルカなのかどうかを判別するものです。 モデルを作成後、以下の画像をモデルに当てはめてスコアリングを実施。 この画像は「イルカ」だと判定されたのですが、その判断根拠の一つとして、以下のように、この画像のどの部分がより重要であると判断されているのかを可視化することが可能になっています。 【レイヤー1のfeature map】 【レイヤー18のfeature map】 SAS Viyaでは、モデルのスコアリング時のオプションとして、指定したレイヤ(層)の特徴マップ(feature map)を画像として指定ライブラリに出力することが可能です。 >> スコアリング用のアクション:”dlScore” の layerOut={出力先ライブラリとテーブル名} オプションと layers={出力対象レイヤ名} オプション >> 上図はライブラリに出力された画像(feature map)を表示したものです。

Learn SAS
動画で学ぶSAS ~チュートリアル・ビデオのご紹介~

SAS University Edition や SAS OnDemand for Academics は、教育・研究・学習目的に無償で使えるソフトウェアですが、使い方の学習には教材が必要だという方もおられると思います。もちろん、SASはソフトウェアに関する膨大なドキュメントをご用意していますが、「どこから始めたらいいの?」「英語ではちょっと…」という声もあるでしょう。 SAS Japanでは、SAS入門者の方向けに日本語字幕をつけたチュートリアル・ビデオ群をご用意しています。このビデオは、ほとんどが5~10分の短いもので、SASとは何かから始まり、SAS University Edition や SAS OnDemand for Academics のインターフェイスである SAS Studio の解説、他の環境との差、データへのアクセス、データの操作、グラフの作成、基本的な統計解析、時系列分析の手法をサンプルデータを使いながら説明しています。サンプルデータは、標準でSASに付属しているものや、オンラインドキュメントを参考にして作成するものなどがあり、どなたでも、どんな環境でも学習を開始することができます。 これらの SAS Studio の使用法の解説では、主に「タスク」とよばれる機能を用いた操作を行います。「タスク」は、「棒グラフの描画」や「分散分析」などの機能をプログラミングなしで利用するためのインターフェイスで、データやパラメータをマウス等で指定することで、SASのプログラム・コードが自動生成されます。もちろん、SASの機能を最大限引き出すために、ゼロからプログラムを書くことも可能です。自動生成されたプログラムを参考にしながら、SASプログラミングを学習することにも適しています。 実は、これらの日本語字幕付きのビデオは、SASのチュートリアル・ビデオのごく一部で、SAS Video Portal にはより多くのビデオが用意されています。ここでは、SAS製品の紹介や、操作法・プログラミングのチュートリアルに加え、SASのアナリティクスが実際の活用事例を紹介する Analytics in Action ビデオもご覧になれます。音声は英語のみですが、英語や日本語の字幕を表示できるものもあります。まずはビデオから、SASアナリティクスの世界を覗いてみませんか?

Analytics | Learn SAS | Students & Educators
SAS OnDemand for Academics 授業利用では使用できる製品が追加されます

前回、SAS OnDemand for Academics (SODA) の Course 機能を活用することで、授業準備の手間が軽減されることをご紹介しましたが、実は、Cource 登録にはもう一つのメリットがあります。 SODA は、SAS Studioを基本のインターフェイスとしていますが、Course 登録により使用できる製品が増えます。 SAS Enterprise Guide : ポイント&クリック操作によるWindowsアプリケーション SAS Enterprise Miner : GUIによるデータマイニング・ツール SAS Forecast Server : 時系列予測の自動作成ツール これらは、統計の学習よりも、実際のビジネス等の現場で素早く統計手法を適用するためのツールで、基礎を学習した上で、より応用に際して活用できるものです。

Analytics | Learn SAS | Students & Educators
SAS OnDemand for Academics を利用して授業準備の手間を削減しよう!

統計ソフトを大学等の授業で用いる際に問題となるのが、統一的な環境を用意することの難しさです。受講者全員が同じバージョンのソフトウェアを同じ設定で利用し、同じ場所にあるデータにアクセスするような環境を準備しないと、個々の環境の差異から発生する問題に対処するだけで授業時間が終わってしまうでしょう。 また、統計ソフトを利用した演習講義では、プログラミングが必要になる場面が多いと思います。しかし、少ない授業時間を割いてプログラミングに慣れていない学生にコーディングを教えることは、本来その講義で教えるべき内容を削ってしまいかねません。 ご存知の方も多いと思いますが、SASでは、教育・研究および個人学習目的の利用に限り、無償ソフトウェアを提供しています。ダウンロードしてローカルPCの仮想マシンにセットアップするタイプの SAS University Edition と、クラウド上のアプリとして実行するタイプの SAS OnDemand for Academics がありますが、後者を使うと、上述した統計ソフトを利用した講義における統一環境の準備の問題およびプログラミングの問題を解決することができます。 SAS OnDemand for Academics (以下、SODAと略します) の特徴は以下のとおりです。 クラウド上で実施するソフトウェアなので、インターネット接続さえあれば、PC環境を統一させる必要がありません。 教員はWebページ上で「Course」を作成することができ、学生がその「Course」に登録することで、教員が用意したデータに学生の環境からアクセスすることができます。 ポイント&クリックで操作できるインターフェイスにより、プログラミングせずに統計やデータマイニングの機能を利用することができます。   SODAの利用手順: まずはSODAに登録します。登録の方法は、SlideShareの資料を参考にしてください。(※Analytics Uのページがなければ、SODAのページにアクセスし、上記のスライド4から開始してください。) 教員の方は「Course」を作成してください。こちらのページのInstructorsセクションのドキュメントおよびビデオ「Upload Your Course Data」「Invite Students to Your Course」を参考にしてください。 学生は教員から「Course」に参加するためのリンクを取得し、こちらのページのStudentsセクションを参考にCourseに参加してください。   SODAを利用すれば、無料で環境構築・プログラミング教育のためのコスト・リソースを削減し、統計スキルの教育・学習に集中できます。Let’s teach & learn data science!    

Internet of Things
小林 泉 0
SASラボ通信: SAS製品がモーターと会話する?

今回は、仕事納めの時期で少し自分たちの時間が確保できたので、かねてよりTO-DOになっていた、弊社のSAS Event Stream Processing(以下SAS ESP)という製品を用いた「予防保全ソリューション」のためのリアリティのあるデモ環境構築をした様子をご報告します。 このデモは、リアルな電動モーターを使用して、その際の各部位の振動や温度をリアルタイムに計測しSASのリアルタイム処理エンジンで取得・表示・加工・スコアリングするというデモで、インテル様のご協力を得てリアルな機器をつなぎ合わせ、そこにSAS ESPをインストールしていきました。   SAS六本木ヒルズ・ラボ 今回は、モーターが音を出すということと、部品やらなにやら散らかす必要があったため、SAS六本木オフィスのカスタマーエリアに常設されているラボスペース(仮称:SAS六本木ヒルズ・ラボ)を使用して行いました。このラボスペースは、その名の通り様々な実験的な取り組みのためのスペースです。お客様とのブレインストーミングや、学生が課外研究としてやってきて弊社エンジニアと一緒に研究をしたり、あるいは、企業のデータサイエンティストが、弊社の新製品を試しにやってきたりしています。過去ののブログに登場する筑波大学の学生たちも、SASグローバルのコンテストに応募するための分析作業や英語でのポスター作成をこちらの環境に詰めて作業されていました。 ラボを活用した筑波大学学生の話① ラボを活用した筑波大学学生の話② ラボを活用した筑波大学学生の話③   デモキットを組み上げる 今回のデモ環境のアーキテクチャはこちらです。 ますは、組み立てです。 電動モーター。本物ですので回転数を上げると少しうるさいです。 そのモーターに3箇所振動をセンシングするセンサーをつけます。こららはUSB経由でIoTゲートウェイにやってきます。 また、モーターを制御する設定値、モーターの温度の値は別経路でイーサネット経由やCOMポート経由でIoTゲートウェイにやってきます。 オフィスで動かすので直流を交流に変換する必要があったり、普段見ることのないコネクタの形状に戸惑ったりしながら、工作感覚で組み立てました。 IoTゲートウェイにはインテル・プロセッサが搭載されており、Ubuntuの上にSAS ESPをインストールしました。 今回は、弊社のSAS ESP製品の専門家のOさんと一緒に作業したため、思いのほか早く完成しました。こちらは、SAS ESPがハンドリングしているリアルタイムデータをSAS ESP付属のビューワーで簡易的に確認している画面です。3箇所に設置した振動センサーからのリアルタイムデータハンドリングしている様子を示しています。 今回は、仕事納めのためここで時間切れです。年明けには、SAS ESPの真髄であるオンライン学習の処理を設定したり、弊社のSAS Visual Data Mining & Machine Learingで作成したモデルをこのストリーミング処理エンジンにデプロイするなどして、「エッジ・アナリティクス」デモを完成させ、セミナーやイベント会場などで皆様にご覧いただけるようにしていく予定です。   SASのリアルタイム・アナリティクス SASのリアルタイム・アナリティクスソリューションである、SAS ESPについては、2017年5月に開催されたSAS Forum Japanのスーパーデモを録画した下記二つの動画もご参照ください。

Students & Educators
日米の「STEM教育」はどれだけ違う?

みなさんは「STEM」という言葉をご存知でしょうか。 これは、Science, Technology, Engineering, Mathematics の頭文字を合わせた言葉で、いわゆる「理系」から医学・薬学を除いたものをイメージすれば分かりやすいでしょう。 近年、ビッグデータ、データサイエンス、人工知能という言葉がバズ・ワード化していますが、それらを扱う人材の確保のために、「STEM人材育成」「STEM教育」の重要性が叫ばれています。日本は、米国に比べてこれらのデータ活用分野の遅れがあると言われていますが、STEM教育についてはどうでしょうか。 平成28年の日本の学生数の分布を見ると、工学16%、理学3%の19%の学生がいわゆる「STEM学部」に在籍していると言えます。一方、全米教育統計センターのデータを見ると、2014-2015年の学部の学位数は、8.5%がNatural science and mathematics (理学に相当)、9.2%がComputer science and engineering (工学に相当) となっています。全学生に対するSTEM教育を受ける学生の割合としては、日本と米国であまり差は無いようですが、工学と理学の割合が大きく異なり、日本は圧倒的に工学のほうが多くなっています。これは、日本が「ものづくりの国」である(あった!?)ことに由来するかも知れません。 閑話。 意外かもしれませんが、STEMには「心理学」も含まれています。「心理テスト」や「カウンセリング」のイメージが強い心理学ですが、実は、これらは心理学の一部分で、特に「実験心理学」と呼ばれる領域では、人間(場合によっては動物)の心理・行動について実験によりデータを集め、統計学を駆使して解析を行います。データサイエンティストをお探しの人事担当者さま、心理学専攻の学生は狙い目かも!? 閑話休題。 データを見る限り、日本でSTEM教育を受ける学生の割合は、米国と比較して圧倒的に少ないわけではないようです。OECDにおける学習到達度調査でも、義務教育修了段階の科学リテラシーや数学的リテラシーは、日本は国際的に上位グループに属しています。それでは、ビジネスにおけるデータ活用分野で、STEM人材活用が遅れているとされる理由は何でしょうか。 もしかしたら、それは大学の質にあるのかもしれません。米国ノースカロライナ州立大学の Master of Science in Analytics (MSA) では、アナリティクスの即戦力となる人材育成を進めています。まず注目していただきたいのは、就職に関するレポートをはっきりとデータで示していることです。特に、この修士号を取ることの投資対効果(ROI)を算出し、「21ヶ月で元が取れる」「3年のROIは$127,500」と、このプログラムに参加することの意味を、就職先を見据えて提示しています(上記レポートp.10)。逆に言えば、MSAに入学する学生は、アナリティクスの世界で活躍することを最初から目指しており、学習のモチベーションは非常に高いと想像できます。 もちろん、就職先で発揮できるスキルを養成することだけが大学の役割ではありません。しかしながら、多くの学生がアカデミックな研究の道ではなくビジネスの世界に進む以上、このような大学も一定数存在してもよいように思います。 また、この修士コースで特筆すべきは、Practicum という実践的プロジェクトがカリキュラムに含まれていることです。このプログラムでは、2017年現在、110以上のスポンサーが156ものプロジェクトを提案しています。スポンサーは実際の企業における具体的な課題をデータとともに提供し、学生は4-5名のチームとなってこの課題に8ヶ月かけて取り組み、最終的なレポートをスポンサーの前でプレゼンテーションします。このような実践的なプロジェクトを通して、学生はデータ分析のスキルと課題解決の方法を学びます。 日本においても、筑波大学ではこのような実践的な産学連携講義の取り組みを開始しており、SAS Japanでも昨年より分析環境の提供による教育支援をしています。データサイエンティストの育成を目指す大学教職員の皆様、実践的データ活用の講義を始めてみませんか? SAS Japan がサポートいたします。

Artificial Intelligence | Machine Learning
Makoto Unemi (畝見 真) 0
SAS Viyaを「無償」で「実データ」で「体感」してみよう!

2017年12月にSAS Viyaの最新版3.3がリリースされました。 これに伴い、皆様には、大幅に拡張されたSAS Viyaの機能を存分に体感いただくために今版から、皆様がお持ちの「実データ」でSAS Viyaベースのすべての製品を自由に触っていただけるようになりました。 ぜひ、ご利用ください! 利用手順に関しては、以下のブログをご覧ください。 SAS Viyaを体感してみよう! ~SAS Viya無償試用版利用ガイド~

Machine Learning | Programming Tips
Makoto Unemi (畝見 真) 0
SAS Viyaにディープラーニングが登場! さっそく画像分類してみた。

SAS Viyaがリニューアルされまして、ついにディープラーニングが登場しました! SAS ViyaのディープラーニングではオーソドックスなDeep Neural Network(DNN)から、画像認識で使われるConvolutional Neural Network(CNN、畳込みニューラルネットワーク)、連続値や自然言語処理で使われるRecurrent Neural Network(RNN、再帰的ニューラルネットワーク)まで利用可能になります。 ディープラーニングを使うことのメリットは、従来の機械学習やニューラルネットワークが苦手としている画像や文章を認識し、高い精度で分類や推論することが可能になります。 高い精度というのは、ディープラーニングのモデルによっては人間の目よりも正確に画像を分類することができるということです。 例えばコモンドールという犬種がありますが、この犬はモップのような毛並みをしていて、人間ではモップと見間違えることがあります。 これは犬? それともモップ? こういう人間だと見分けにくい画像に対しても、ディープラーニングであれば、人間よりも正確に犬かモップかを見分けることができるようになります。 というわけで、今回はSAS Viyaのディープラーニングを使って画像分類をしてみたいと思います。 ディープラーニングの仕組み 画像分類のディープラーニングではCNNを使います。 CNNは画像の特徴を探し出す特徴抽出層と特徴から画像を分類する判定層で構成されています。   特徴抽出層は主に畳込み層とプーリング層で構成されています。 畳込み層で入力画像に対し、ピクセルの特徴(横線の有無とか斜め線とか)を探し出し、プーリング層で重要なピクセルを残す、という役割分担です。 判定層は、特徴抽出層が見つけた特徴をもとに、画像の種類を分類します。 例えば犬と猫の分類であれば、特徴抽出層が入力画像から、面長で大きな鼻の特徴を見つけだし、犬と分類します。   または、丸っこい顔立ちと立った耳の特徴を見つけだし、猫と分類します。   SAS Viyaで画像を扱う SAS ViyaディープラーニングでCifar10をネタに画像分類をしてみたいと思います。 Cifar10は無償で公開されている画像分類のデータセットで、10種類の色付き画像60,000枚で構成されています。 各画像サイズは32×32で、色はRGBです。 10種類というのは飛行機(airplane)、自動車(automobile)、鳥(bird)、猫(cat)、鹿(deer)、犬(dog)、蛙(frog)、馬(horse)、船(ship)、トラック(truck)で、それぞれ6,000枚ずつ用意されています。 画像は総数60,000枚のうち、50,000枚がトレーニング用、10,000枚がテスト用です。   画像データは以下から入手することができます。 https://www.cs.toronto.edu/~kriz/cifar.html さて、Cifar10を使って画像分類をしてみます。言語はPython3を使います。 SAS Viyaで画像分類をする場合、まずは入手したデータをCASにアップロードする必要があります。 CASはCloud Analytics Servicesの略称で、インメモリの分散分析基盤であり、SAS Viyaの脳みそにあたる部分です。 SAS Viyaの分析は、ディープラーニング含めてすべてCASで処理されます。 CASではImage型のデータを扱うことができます。 Image型とは読んで字のごとくで、画像を画像フォーマットそのままのバイナリで扱えるということです。

Machine Learning
SAS Japan 0
機械学習アルゴリズム選択ガイド

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはHui Liによって執筆されました。元記事はこちらです(英語)。 この記事では、関心対象の課題に適した機械学習アルゴリズムを特定・適用する方法を知りたいと考えている初級~中級レベルのデータ・サイエンティストや分析担当者を主な対象者としたガイド資料を紹介し、関連の基本知識をまとめます。 幅広い機械学習アルゴリズムに直面した初心者が問いかける典型的な疑問は、「どのアルゴリズムを使えばよいのか?」です。この疑問への答えは、以下を含む数多くの要因に左右されます。 データの規模、品質、性質 利用できる計算時間 タスクの緊急性 データの利用目的(そのデータで何をしたいのか?) 経験豊富なデータ・サイエンティストでも、どのアルゴリズムが最も優れたパフォーマンスを示すかは、複数の異なるアルゴリズムを試してみなければ判断できません。本稿の目的は、特定の状況にのみ有効なアプローチを紹介することではなく、「最初に試すべきアルゴリズム」を何らかの明確な要因にもとづいて判断する方法についてガイダンスを示すことです。 機械学習アルゴリズム選択チートシート この機械学習アルゴリズム選択チートシートは、幅広い機械学習アルゴリズムの中から特定の課題に最適なアルゴリズムを見つけ出すために役立ちます。以下では、このシートの使い方と主要な基礎知識をひと通り説明します。 なお、このチートシートは初心者レベルのデータ・サイエンティストや分析担当者を対象としているため、推奨されるアルゴリズムの妥当性に関する議論は省いてあります。 このシートで推奨されているアルゴリズムは、複数のデータ・サイエンティストと機械学習の専門家・開発者から得られたフィードバックやヒントを取りまとめた結果です。推奨アルゴリズムについて合意に至っていない事項もいくつか残っており、そうした事項については、共通認識に光を当てながら相違点のすり合わせを図っているところです。 利用可能な手法をより包括的に網羅できるように、手元のライブラリが拡充され次第、新たなアルゴリズムを追加していく予定です。 チートシートの使い方 このシートは一般的なフローチャートであり、パス(楕円形)とアルゴリズム(長方形)が配置されています。各パスでYES/NO、または高速性/正確性を選びながら最終的に到達したものが推奨アルゴリズムとなります。いくつか例を挙げましょう。 次元削減を実行したいものの、トピック・モデリングを行う必要がない場合は、主成分分析を使うことになります。 次元削減が不要で、応答があり、数値を予測する場合で、高速性を重視するときには、デシジョン・ツリー(決定木)または線形回帰を使います。 次元削減が不要で、応答がない場合で、階層構造の結果が必要なときには、階層的クラスタリングを使います。 場合によっては、複数の分岐に当てはまることもあれば、どの分岐にも完璧には当てはまらないこともあるでしょう。なお、利用上の重要な注意点として、このシートは、あくまでも基本的な推奨アルゴリズムに到達できることを意図しているため、推奨されたアルゴリズムが必ずしも最適なアルゴリズムでない場合もあります。多くのデータ・サイエンティストが、「最適なアルゴリズムを見つける最も確実な方法は、候補のアルゴリズムを全て試してみることだ」と指摘しています。 機械学習アルゴリズムのタイプ このセクションでは、機械学習の最も一般的なタイプを取り上げ、概要を示します。これらのカテゴリーについて十分な知識があり、具体的なアルゴリズムの話題に進みたい場合は、このセクションを飛ばし、2つ先のセクション「各種アルゴリズムの概要と用途」に進んでいただいてかまいません。 教師あり学習 教師あり学習アルゴリズムは、実例のセット(入力データと出力結果)を基に予測を行います。例えば、過去の販売データを用いて将来の価格を推定することができます。教師あり学習では、ラベル付きのトレーニング用データからなる入力変数と、それに対応する望ましい出力変数があります。アルゴリズムはトレーニング用データを分析し、入力を出力にマッピングする関数を学習します。この関数は、トレーニング用データにおける入力/出力の関係を一般化することによって推定されます。この関数に新しい未知の入力データを与えると、それに対応する出力が算出され、その出力が未知の状況における結果の予測値となります。 分類:データを用いてカテゴリー変数を予測する場合、教師あり学習は「分類」と呼ばれます。これは例えば、画像にラベルや標識(例:犬または猫)を割り当てるようなケースです。ラベルが2つしかない場合は「2値(バイナリ)分類」、3つ以上のラベルがある場合は「マルチクラス分類」と呼ばれます。 回帰:連続値を予測する場合、その教師あり学習は「回帰問題」となります。 予測:過去と現在のデータを基に将来を予測するプロセスであり、最も一般的な用途は傾向分析です。具体例として一般的なのは、当年度および過去数年の販売実績を基に次年度の販売額を推定することです。 半教師あり学習 教師あり学習を行う上での課題は、ラベル付きデータの準備に多大な費用と時間がかかりかねないことです。ラベル付きデータが限られている場合には、ラベルなしの実例データを用いて教師あり学習を強化することができます。これを行う場合は、機械にとって完全な「教師あり」ではなくなるため、「半教師あり」と呼ばれます。半教師あり学習では、ラベルなしの実例データと少量のラベル付きデータを使用することで、学習精度の向上を図ります。 教師なし学習 教師なし学習を実行する場合、機械にはラベルなしのデータのみが与えられます。学習の目的は、クラスタリング構造、低次元の多様体、スパース(疎)ツリーおよびグラフなど、データの基底をなす固有パターンを発見することです。 クラスタリング:あるグループ(=クラスター)内の実例データ群が、その他のグループ内の実例データ群との間と比べ、(所定の基準に関して)高い類似性を示すような形で、実例データセットをグループ化します。この手法は、データセット全体を複数のグループにセグメント化する目的でよく使われます。グラスタリングの実行後に各グループ内で分析を実行すると、固有パターンを容易に発見できることが多々あります。 次元削減:検討の対象とする変数の数を減らします。多くの用途では、生データに極めて多次元の特徴が含まれており、一部の特徴は目的のタスクに対して冗長または無関係です。次元削減は、データに潜む真の関係性を発見するために役立ちます。 強化学習 強化学習は、環境からのフィードバックを基に「エージェント」(課題解決の主体者。例:ゲームのプレイヤー)の行動を分析および最適化します。機械は、取るべきアクションの選択肢を事前に教えられるのではなく、どのようなアクションが最大の報酬(例:ゲームのスコア)を生み出すかを発見するために、さまざまなシナリオを試行します。他の手法には見られない強化学習ならではの特徴は「試行錯誤」と「遅延報酬」です。 アルゴリズム選択時の考慮事項 アルゴリズムを選択する際は、正確性、トレーニング時間、使いやすさという3つの側面を常に考慮する必要があります。多くのユーザーは正確性を第一に考えますが、初心者は自分が最もよく知っているアルゴリズムに意識が向きがちです。 データセットが与えられたとき最初に考える必要があるのは、どのような結果になるにせよ、何らかの結果を得る方法です。初心者は、導入しやすく結果が素早く得られるアルゴリズムを選ぶ傾向がありますが、分析プロセスの最初の段階ではそれで問題ありません。まずは、何らかの結果を得て、データの概要を把握することを優先します。その後、データに対する理解を深め、結果をさらに改善することを目指し、より高度なアルゴリズムを試すことに時間を費やせばよいのです。 ただしこの段階でも、最高の正確性を示した手法が必ずしもその課題に最適なアルゴリズムであるとは限りません。通常、アルゴリズムから本来の最高パフォーマンスを引き出すためには、慎重なチューニングと広範囲のトレーニングが必要になるからです。 各種アルゴリズムの概要と用途 個別のアルゴリズムについて知識を深めることは、得られる結果と使い方を理解するために役立ちます。以下では、チートシートに掲載されている中でも最も基本的なアルゴリズムの詳細と、それらを使用すべき状況に関するヒントをまとめます。 線形回帰とロジスティック回帰 線形回帰は、連続従属変数 (y) と1つ以上の予測変数 (X) との関係をモデリングするためのアプローチです。この場合、(y) と

Artificial Intelligence | Machine Learning
小林 泉 0
人工知能:ブームと現実を切り分けて認識するために

現在大きなブームとなっているAIですが、行き過ぎた期待と警戒がその現実を見誤らせ、企業における経営課題の解決において、タイムリーな価値創出を停滞させている場面も見受けられます。現実を正しく捉えるための記事を、SASの上級副社長およびCTOであるオリバー・シャーベンバーガー(Oliver Schabenberger)が書いていますので、今回はそれを日本語訳してお届けします。 === 私たちはエキサイティングな時代に生きています。私たち人間と機械、オブジェクト(物体)、モノとの関係は急速に変化しつつあります。 洞窟で暮らしていた頃から、人間は受動的な(自動的に動くわけではない)道具と自分の声に自らの意思を託してきました。今日では、マウスとキーボードは操作したとおりに動きますし、Amazon Echoなどのスマートデバイスは、照明の点灯のような単純なタスクや、より複雑なタスク(例:人間の質問にアナリティクスを用いて応答する)の実行を手助けしてくれます。 しかし、人工知能(AI)の発展により、潮目が変わる可能性があります。機械は受動的なオブジェクトから、人間の生活に自らを織り込む能動的な存在へと変貌を遂げることができるのでしょうか? 機械が人間を動かすようになるのでしょうか、それとも人間が機械を動かし続けるのでしょうか? オブジェクトが「あなたの代わりに〇〇を済ませました」と人間に報告するようになるのでしょうか、それとも、人間が今後も何をすべきかをオブジェクトに指示し続けるのでしょうか? あらゆるモノがよりスマート、よりインテリジェントになっていく中、私たち人間は、自律型のインテリジェンスが取り仕切る生活空間の「囚われ人」となってしまう恐れはないのでしょうか? そのような状況に私たちはどこまで近づいているのでしょうか? AIの現状 あなたがもし、機械が世界を征服するのではないかと夜な夜な心配しているとしたら、どうぞぐっすり眠ってください。今現在使われているテクノロジーでは、決してそうした事態は起こりません。昨今では、少しでも賢い動作や想定外の動作をすれば何でもAIと呼ぶのがトレンドのようですが、多くは実際にはAIではありません。私の電卓は、私よりも計算能力が優れていますが、AIではありません。決定木もAIではありませんし、SQLクエリの条件句もAIではありません。 しかし、AIへと向かうトレンド、すなわち「機械、デバイス、アプライアンス、自動車、ソフトウェアに更なるスマート性を組み込む」というトレンドが存在するのは事実です。 人間よりも圧倒的な正確さでタスクを実行できるアルゴリズムの開発には、驚異的な進展が見られます。少し前までコンピューターには囲碁は無理と思われていたにもかかわらず、今や機械が人間を打ち負かし、人間には敵わないレベルへと突き進んでいます。また医療分野では、医用画像から特定タイプのガンを発見するアルゴリズムの正確性が、放射線科医と同等レベルに達しており、まさに患者の人生を一変させるような成果です。 これらのアルゴリズムが超人的な能力を示すのは、与えられた仕事を高い信頼性および正確性で、不眠不休で反復実行するからです。とはいえ、人間のように思考または行動できる機械を生み出す段階からは程遠いのが現状です。 現在のAIシステムは、人間が行うタスクを「コンピューター化された賢い方法」で実行するようにトレーニングされますが、トレーニングの対象は1つのタスクのみです。囲碁をプレイできるシステムは、ソリティアやポーカーをプレイすることができず、そのスキルを習得することもありません。自律走行車を運転するソフトウェアは、家の照明を操作することができません。 これは、この種のAIが力不足ということではありません。むしろ、あらゆる用途に高い専門性を提供できるため、多くの業種、恐らく全ての業種に変革をもたらすポテンシャルを秘めていると言えます。しかし、AIで何を成し遂げることができるかに関しては、先走りは禁物です。トレーニング用データにもとづき、教師あり手法を用いてトップダウン方式で学習するシステムは、データの内容を超えて成長することができません。つまり、こうしたシステムには創造、革新、推論(論理的に思考)は不可能です。 「信頼の飛躍的拡大」を選ぶかどうかは人間次第 たとえアルゴリズムがインテリジェンスを持つ日が来るとしても、必ずしも私たちの人生をアルゴリズムに委ねる必要はありません。アルゴリズムの利用を意思決定支援システムに留める、という選択も可能です。その対極にあるのは、あらゆる意思決定を人間の代わりにアルゴリズムに行わせるという選択であり、これは「(人間の機械に対する)信頼の飛躍的拡大」の究極と言えます。 そこには、意思決定において人間の介入は一切ありません。機械の自律性を手放しで受け入れて初めて、「真のAI」を受け入れる準備が整ったことを意味すると筆者は考えます。しかし、アルゴリズムが信頼できる偏りのない意思決定を行えるようになり、それがひいては人間に最大の利益をもたらすことが実証されうるとして、自分の人生の手綱を渡し、自分は何も入力せずにアルゴリズムに意思決定を行わせることを、あなたは心地よく感じるでしょうか? 自由に判断させた場合、機械はどれほど的確に振る舞うと期待しますか? 機械がどれほど短時間で仕事を学習すれば満足でしょうか? そして、学習を重ねる中、機械はいつモラルを獲得するのでしょうか? こうした質問を不快に感じるとしても、ご安心ください。あなただけではありません。筆者は、ソフトウェア・エンジニアがプログラミングしたモラルや発展途上のアルゴリズムが学習したモラルの不完全さのせいで命を失うよりは、自分自身の愚かさのせいで命を失う方を選びます。 インテリジェンスという幻想は今現在、完全に人間の掌中にあり、当面は人間のコントロールなしでは存在しえません。 当面私たちがAIに望めるのは、つい感心してしまうほどの賢さです。その他はブームに便乗した大騒ぎに過ぎないでしょう。 将来への準備 現在のような形のAIにはインテリジェンスがあるのでしょうか? そうではないと筆者は考えます。 インテリジェンスと呼ぶためには、何らかの形の創造性、革新性、直感力、自主的な課題解決力、感受性が必要です。私たちが今現在、ディープ・ラーニングにもとづいて構築しているシステムは、こうした特性を備えることができません。AIがいつインテリジェンスを獲得するのか、その時期をここで予測するつもりはありません。数十年前には「その段階に近づいており、数十年後には機械が人間のように行動したり思考したりするようになる」と考えられていましたが、そうはなっていません。今日のテクノロジーでは、依然としてこの問題を解決できないのです。 人類が「真のAI」の時代に到達するためには、破壊的なテクノロジー・シフトを経なければなりません。人類はその解決策をまだ発見していないと考えます。ただし、その探究を続けていることは確かです。

Data Visualization
Makoto Unemi (畝見 真) 0
SAS Visual Analytics 8.2 新機能概要

2017年11月にリリース予定の「SAS Visual Analytics 8.2」に搭載予定の新機能概要をご紹介します。 【SAS Visual Analytics 8.2 新機能概要】 サードパーティ・ビジュアライゼーション D3.jsやC3、あるいはGoogleチャートの機能を活用し、VAに標準装備のチャートタイプでは表現できない、より柔軟で洗練されたチャートを描画し、レポートに組み込むことが可能です。 新規追加ビジュアライゼーション バブルチェンジプロット、平行座標プロット、スケジュールチャート、など、新たに9種類のチャートオブジェクトが追加されます。 オブジェクト間の自動リンク&フィルタ設定 レポート内の全てのオブジェクトを自動的に連係させることで、効果的でインタラクティブなレポートを簡単に作成可能です。その際、一方向のフィルタなのか双方向のフィルタなのかを指定することができます。 レポート自動保存&復元 作成中のレポートは定期的に自動保存されます。これによって、仮に保存し忘れてログオフしたとしても、再ログオン時に前の状態を復元することができます。 カスタム領域塗りつぶし VA7.4と同様に、地図上にカスタムで指定した領域を塗りつぶして描画することが可能です。 地図機能拡張 Esri地図データとの連係機能が拡張され、デモグラフィック情報の活用が可能になります。例えば地図上に表示されている自店舗群を選択し、周辺住民の平均年収や年齢などの情報を把握でき、より効果的なロケーションアナリティクスが可能になります。  

SAS Events | Students & Educators
SAS Global Forum 2018 Student Ambassadors の申込が締切間近です!

Student Ambassadors 先週、ワシントンDCで開催されたAnalytics Experience 2017には、筑波大学の学生3名が参加し、ポスター発表を行いました。学生による参加レポートは直近のブログ記事でも紹介しています。[レポート1] [レポート2] [レポート3] このように、SASでは、ビジネスやアカデミアのユーザーが一堂に会するグローバルイベントで、学生が自身の分析・研究・提案を発表する機会を提供しています。ビジネスやアナリティクスの専門家からのフィードバックを得ることで、自身のアイデアを深めると同時に、SASネットワークを広げることができます。特に、SASの最大のカンファレンスであるSAS Global Forumでは、SASソフトウェアを活用した研究発表を行う学生の中から「学生大使」 (Student Ambassadors) を任命し、他の参加者に紹介するとともに、SAS Global Forumに無料で招待しています(旅費や宿泊代もサポートされます!)。Student Ambassador Programの詳細については、こちらをご覧ください。 次回のSAS Global Forum 2018は米国コロラド州デンバーにて2018年4月8日から11日まで開催されます。今回は24名のStudent Ambassadors が選ばれる予定です。 応募方法: 投稿ページからSAS Global Forumにabstractを投稿し、submission numberを取得 応募ページからStudent Ambassadorsに応募 詳細はこちらをご覧ください。 締切は10月12日です。まずはabstractを投稿しましょう! 投稿・論文作成にあたり、SASの分析 環境や発表準備のご支援が必要な場合は、弊社でサポートいたします。Abstractを投稿された場合および、ご質問・ご要望などは下記のメールアドレスまでご連絡ください。 JPNAcademicTeam@sas.com 前回のAmbassadorの発表内容については、こちらから検索して参考にしてください。 なお、選ばれた一部の投稿は、Model Assisted Statistics and Applications (MASA): An International Journal Special Issue, IOS Press に論文を掲載することができます。トピックは、アナリティクス、ビジネス・インテリジェンスまたはビジネス・アナリティクスである必要があります。

Students & Educators
小林 泉 0
筑波大学学生によるAnalytics Experience 便り(3日目)

現地時間 2017/9/18,19,20 にてSASの秋のグローバルイベントである、「Analytics Experience 2017 (以下AX2017)」がアメリカ合衆国ワシントンDCで開催中です。最終日も、日本から参加している筑波大学理工学群社会工学類経営工学主専攻4年生の村井諒さん,小林大悟さん,白鳥友風さん3名による参加レポートを掲載します。   AX2017で印象に残ったセッションの紹介 by 筑波大学学生 AX2017の3日目が終わりました。今回は、この3日間で体験した様々なセッションの中で、私たち3人がそれぞれ印象に残ったセッションについてご紹介させていただきます。   1.Tools of the Trade: How and What to Pack in an Analytics Student’s Toolbelt(村井諒) 2.Keep the Bus Rolling : Improving Bus Stop assignment in Boston Public Schools(小林大悟) 3.How to Win Friends and Influence Executives: A Guide to Getting Your

SAS Events | Students & Educators
小林 泉 0
筑波大学学生によるAnalytics Experience 便り(2日目)

現地時間 2017/9/18,19,20 にてSASの秋のグローバルイベントである、「Analytics Experience 2017 (以下AX2017)」がアメリカ合衆国ワシントンDCで開催中です。前回に引き続き、今回は、日本から参加している筑波大学理工学群社会工学類経営工学主専攻4年生の村井諒さん,小林大悟さん,白鳥友風さん3名による参加レポート2日目を掲載します。 e-Poster部門@AX2017 発表への道のりby 筑波大学学生 昨日に引き続き、アナリティクスの最先端を行く発表が次々に行われていく中、私たちは今回の参加目的である二日目正午のStudent e-Poster部門の発表に臨みました。 イベントセッション情報:「Optimization of discounts at a retail store based on POS data keeping customer purchasing experience」 Student e-Posterは、学生がSASの製品を用いてアナリティクスの価値および可能性を提供する場です。学生たちは自身が作成したポスターを基に参加者にプレゼンテーションを行います。このセッションでは一方的な発表ではなく、ポスターを見に来たデータサイエンスに携わる教育関係者や企業関係者の方々と対話形式で発表の内容に関する意見を交換します。 今回のポスター発表は筑波大学理工学群社会工学類経営工学主専攻の目玉授業であるマネジメント実習で行った発表の内容を基に行ったものです。マネジメント実習では、学生がデータサイエンティストとして実データの分析から経営改善案の作成までを行う講義であり、ビジネスにおけるデータサイエンスの重要性を学ぶことができます。講義は10週にわたって行われ、プロのデータサイエンティストの方々からアドバイスを受けながら、アナリティクスを通じて改善案を練っていきます。これらの一連の取り組みは、同大学主催のビジネスデータ分析コンテストと平行して行われ、最終発表ではデータの提供企業の経営層の方を前に発表をし、その場で表彰が行われ、かつフィードバックを受けるという内容です。 参考:「SAS、大学におけるデータ・アナリティクス教育の質的向上のため、筑波大学に分析環境を提供」 私たちはSAS Enterprise Guideを用いて、小売店のPOSデータから価格と販売数量の関係を分析し、販売数に寄与しない値引きを明らかにすることで、コストを削減して経営改善を図る手法を提案しました。 今回のStudent e-Posterでは、先に上げたSAS Enterprise Guideや、より高度な分析を行うことができるSAS Enterprise Minerを使用してアナリティクスを行った他大学の学生によるポスターが多数展示され、データサイエンスに携わる方々に自分たちのポスターの内容を説明しました。聴講者の中には、ビジネスの第一線で活躍されている方も見受けられました。 このような環境でのポスター発表を通して、大学の実習講義では得ることの出来なかった、ビジネスに携わるデータサイエンティストとして重要な『最大限に利益を追求する姿勢』を学び取ることが出来ました。 発表中に企業の方から受けた質問の中には、「この手法をいかにして自分たちのビジネスに活かせるか」、「なぜ価値のない値引きだけに着目したのか」、「もっと利益を生み出すためにはまだできることがあると思うが、なぜそれをしなかったのか」といったものがありました。 これらの質問は、実習内では気づけなかった、利益を最大限に追求するビジネスの姿勢に基づいたものです。 事実私たちが提案した、無駄な値引きを明らかにすることによりコストを削減する手法は、経営改善を果たす上での一つの手段でしかありません。 私たちは無駄なコストの削減にのみ注目した価格最適化を行いましたが、価格の最適化は、無駄なコストの削減だけでなく、販売点数の増加や、時間とともに変化する顧客の性質なども踏まえて行うことができるはずです。 私たちは経営改善可能性として「無駄な値引きを減らす」という一つの案にたどり着いた結果、いかに無駄な値引きを無くすかということに固執していました。これは目標が、「経営改善」から「経営改善のための分析」にいつの間にか変わってしまい、分析すること自体に集中しすぎてしまったからです。特に私たちのようにビジネスの経験が少ない日本の学生はこのような方向に進んでしまう傾向があると思います。実際のビジネスにおいては、何が必要なのか、何ができるのかを常に意識し、そのうえでアナリティクスを活用することが重要だと考えられます。このことからビジネスにおいて、取りうる選択肢を柔軟に取捨選択し、最大の利益を求める姿勢を保ち続けることの大切さを実感しました。 このことを私たち学生が日本のデータサイエンス教育から学び取ることができれば、ビジネスに携わるデータサイエンティスト育成がさらに有意義なものになっていくだろうと感じました。 イベントも残り1日となりました。明日も様々なセッションを通し、学び取れることはすべて学び取るという心持で最終日に臨みたいです。

SAS Events | Students & Educators
小林 泉 0
筑波大学学生によるAnalytics Experience 便り(1日目)

現地時間 2017/9/18,19,20 にてSASの秋のグローバルイベントである、「Analytics Experience 2017 (以下AX2017)」がアメリカ合衆国ワシントンDCで開催中です。今回は、日本から参加している筑波大学理工学群社会工学類経営工学主専攻4年生の村井諒さん,小林大悟さん,白鳥友風さん3名による参加レポート1日目を掲載します。 Academic Summit@AX2017 レポート by 筑波大学学生 今回私たち3人が参加しているAX2017の1日目は、AM11:00にスタートしたGeneral Sessionをはじめ、様々な講演が行われました。 中でも最後時間帯である19:00から催されたAcademic Summitについてご紹介させていただきます。 Academic Summitは、AX2017に出席しているデータサイエンスに精通する学生が、学生間や企業の方々との交流を深めるイベントです。このサミットでは、SAS Executive Vice President およびSAS Chief Technology OfficerであるDr.Oliver Schabenberger氏の基調講演や、Gather IQという、クラウドソーシングによってあるトピックに関する問題の解決を図るアプリの説明、女性の技術職としてのキャリアを支援する制度、学生によるアナリティクスのコンテストであるShootout Competition における入賞チーム3組についての紹介がされ、最後に自由な交流の時間が設けられました。 Schabenberger氏は純粋数学を学んだのち、データサイエンスの道へと進むことになった経緯や、現在SAS社が注目しているAmbient AnalyticsとDeep Learningについての説明、さらに自分自身を成長させるための教訓などをお話ししてくださいました。 またGather IQは、SAS社のミッションの一つである社会貢献のためのアナリティクスの価値を非営利で提供するということを体現していたと感じました。 このイベントの最後には自由にコミュニケーションをとる時間が設けられ、参加者の皆様は積極的に情報交換を行っていました。何より印象に残ったのは、同年代で飛び級で大学院に進学した人や、SASR Enterprise Minerを使いこなしモデリングを行っていた人がいたこと、さらに、参加者全員が英語で円滑にコミュニケーションを行っていたことです。 同年代の海外の学生たちがデータサイエンスに対して抱いている思いや、それに臨んでいく姿勢、自身のキャリアに対する考えなどを聞くことで、自分たちがこれからどうやってこの分野で戦っていくべきなのか、そのために何をするべきかなど、改めて深く考えさせられました。 また、意見交換をした際、私たちは英語の能力が十分でなかったということ以前に、初対面の人に話しかけることを躊躇してしまい、インターナショナルな場で積極的にコミュニケーションをとることの難しさを痛感しました。このようなためらいを減らし、自分から積極的に意思疎通を図っていくことの大切さを感じました。 残る二日間、データサイエンスに関する知識やノウハウだけでなく、グローバル人材にとって必要な素養も学んでいけたらと思います。  

Advanced Analytics | Programming Tips
Makoto Unemi (畝見 真) 0
SAS Viyaで線形回帰

SAS Viyaで線形回帰を行う方法を紹介します。 言語はPythonを使います。 SAS Viyaで線形回帰を行う方法には大きく以下の手法が用意されています。 多項回帰: simpleアクションセットで提供。 一般化線形回帰または一般線形回帰: regressionアクションセットで提供。 機械学習で回帰: 各種機械学習用のアクションセットで提供。 今回は単純なサインカーブを利用して、上記3種類の回帰モデルを作ってみます。   【サインカーブ】 -4≦x<4の範囲でサインカーブを作ります。 普通に $$y = sin(x) $$を算出しても面白みがないので、乱数を加減して以下のようなデータを作りました。これをトレーニングデータとします。 青い点線が $$y=sin(x)$$ の曲線、グレーの円は $$y=sin(x)$$ に乱数を加減したプロットです。 グレーのプロットの中心を青い点線が通っていることがわかります。 今回はグレーのプロットをトレーニングデータとして線形回帰を行います。グレーのプロットはだいぶ散らばって見えますが、回帰モデルとしては青い点線のように中心を通った曲線が描けるはずです。 トレーニングデータのデータセット名は "sinx" とします。説明変数は "x"、ターゲット変数は "y" になります。 各手法で生成したモデルで回帰を行うため、-4≦x<4 の範囲で0.01刻みで"x" の値をとった "rangex" というデータセットも用意します。 まずはCASセッションを生成し、それぞれのデータをCASにアップロードします。 import swat host = "localhost" port = 5570 user = "cas" password = "p@ssw0rd"

Machine Learning
小林 泉 0
機械学習のパラメータをオートチューニングしよう(回帰編)!

先日投稿した「機械学習のパラメータをオートチューニングしよう(分類編)!」の続きです。 今回は回帰分析をオートチューニングします。 あらまし 機械学習の課題はパラメータチューニングで、手動で最高のパラメータを探そうとすると、とても時間がかかり効率的ではありません。 SAS Viyaではパラメータチューニングを自動化するオートチューニング機能を提供しています。 オートチューニング機能を使うことで、限られた時間内、条件下で最高のパラメータを探索し、予測モデルを生成することができます。   今回やること 今回はオートチューニングを使って数値予測モデルを生成します。 使うデータは架空の銀行の金融商品販売データです。顧客の取引履歴と営業履歴から構成されており、新たな金融商品の販売数を予測するデータとなっています。 内容は以下のようになっており、約5万行、22列の構成です。 1行1お客様データとなっていて、顧客の口座情報や取引履歴、営業履歴が1行に収納されています。 ターゲット変数はcount_tgtで、これは各顧客が購入した金融商品数を表しています。 ほとんどが0(=未購入)ですが、購入されている顧客の購入数を予測するモデルを生成します。 今回はランダムフォレストを使って予測したいと思います。 ランダムフォレストは別々の決定木を複数作り、各決定木の予測値をアンサンブルして最終的な予測値とする機械学習の一種です。   まずは手動で予測 SAS Viyaでランダムフォレストを使って予測モデルを生成するにあたり、まずはCASセッションを作ってトレーニングデータとテストデータをインメモリにロードします。 # PythonからCASを操作するためのSWATライブラリをインポート import swat   # 接続先ホスト名、ポート番号、ユーザー名、パスワードを指定 host = "localhost" port = 5570 user = "cas" password = "p@ssw0rd"   # mysessionという名称のCASセッションを作成 mysession = swat.CAS(host, port, user, password)  

Machine Learning
小林 泉 0
機械学習のパラメータをオートチューニングしよう(分類編)!

機械学習で予測モデルを作るとき、課題のひとつにパラメータのチューニングがあります。 パラメータとはどういう設定値や制限値で機械学習の予測モデルを作るのかを示すものです。 料理に例えると、チャーハンを作る過程が機械学習のアルゴリズムだとすると、どういう具材をどのくらいの量入れるのかがパラメータです。 お米の品種や卵の有無、豚肉か鶏肉か、調味料の種類や量がパラメータになります。チャーハンの良し悪しはこれらパラメータの良し悪しに左右されます。おいしいチャーハンを食べるためには、具材をベストな組み合わせと量で投入する必要があります。 昼食においしいチャーハンを食べたので、チャーハンでたとえました。 話を戻すと、機械学習の決定木の深さであったり、ニューラルネットワークのニューロン数であったり、パラメータは自分で設定する必要があります。機械学習では複数のパラメータを組み合わせて、ベストなレシピを作らねば良い予測モデルは作れません。   SAS Viyaでは各種機械学習アルゴリズムを提供していますが、各機械学習にそれぞれのパラメータが用意されています。料理に例えると、メニューにチャーハンのみならず餃子、ラーメン、寿司、ステーキ、チーズケーキがあるようなものです。シェフ(≒データサイエンティスト)は全てのベストなレシピ(≒パラメータ)を探索せねばならず、労力がいります。 しかし! SAS Viyaには更に便利な機能として、オートチューニングというものが用意されています。 オートチューニングは最も良いパラメータを短い時間で探索してくれる機能です。料理に例えると、究極のチャーハンレシピをViyaが自動的に作ってくれる機能です。夢のようですね。 オートチューニングでは機械学習のパラメータを変えながら複数の予測モデルを作り、最も良い予測モデルのパラメータを探してくれるというものです。決定木だけでもパラメータは10種類以上あるのですが、それらの最良な値をみつけてくれます。 パラメータチューニングを行う際、最も安易な探索方法は各パラメータの全パターンを試すことです。全パターンを試せば、その中から最も良いものはたしかにみつかります。しかし欠点はパラメータチューニングに長い時間がかかってしまい、現実的な手法ではありません。 SAS Viyaのオートチューニングはより賢いパラメータ探索のアルゴリズムを4種類用意しています。 遺伝的アルゴリズム(Genetic Algorithm, GA):パラメータを遺伝子と見立てて、淘汰、交叉、突然変異を組み換えすことでパラメータを探索する。 ラテン超方格サンプリング(Latin HyperCube Sampling, LHS):層別サンプリングの一種で、各パラメータをn個の区間に分割し、区間からランダムに値を取り出してパラメータを探索する。 ベイズ最適化(Bayesian Optimization):説明変数と予測の間にブラックボックス関数があると仮定し、ブラックボックス関数のパラメータの分布を探索する。 ランダムサンプリング(Random Sampling):ランダムにパラメータの値を選択して探索する。 探索アルゴリズムを詳しく説明していると終わらないので説明を短くまとめました。SAS Viyaではいずれかのアルゴリズムを利用してオートチューニングを実行することができます。   今回はPythonからSAS Viyaを操作して、オートチューニングを試してみたいと思います。 まずはPython SWATをimportし、CAS Sessionを生成してデータをロードします。 # PythonからCASを操作するためのSWATライブラリをインポート import swat   # mysessionという名称のCASセッションを作成 mysession = swat.CAS(host, port, user, password)   #

Machine Learning
SAS Viyaのチートシートを作ってみました。

SAS Viyaでは購入前に使い勝手を試していただくため、無償使用版を提供しています。 https://www.sas.com/ja_jp/software/viya.html#preview もう試していただいた方もいらっしゃるかもしれませんが、SAS StudioやJupyter Notebook、Visual AnalyticsからSAS Viyaを操作して、データマイニングや機械学習を便利に試していただくことが可能です。 この無償使用環境では動作確認済みのデモプログラムを提供していますので、機械学習やプログラミングに不慣れでも迷うことはありません。   しかし機械学習を実業務で使い始めようとすると、どのプロシージャやメソッドを使えば良いのか、わからなくなることが多々あります。 SAS Viyaでは機械学習ユーザに不足ないよう、多種多様なプロシージャを提供していますが、プロシージャが増えるとどの場面でどれを使うんだっけ?と迷ってしまいます。   そこで、SAS Viyaのチートシートを作ってみました。 このチートシートを使えば、用途にあわせて必要なプロシージャを選択していくことができます。 SAS Viyaが提供するプロシージャから重要なものを掲載しています。   SAS ViyaはSAS PROCとActionsetという2種類のプログラミング仕様があります。 チートシートもPROC用とActionset用で2種類作りました。   PDF版は以下にありますので、ぜひご参照ください。 viya_cheat_sheet_20170721_jp