Search Results: viya (259)

Data Management
Makoto Unemi (畝見 真) 0
クラウド上のSAS Viyaから、オンプレミス上にあるデータへ、セキュアにアクセス

近年、クラウドファーストを唱える企業が増加し、データ分析のために、クラウド上に展開されている分析サービスを活用したり、クラウド上に独自に分析アプリケーションを構築するケースも増えています。 しかし、クラウド上にある分析サービスやアプリケーションで分析する対象のデータは、オンプレミス上に蓄積されているケースが大半であり、クラウドからこれらのデータにアクセスできるようにするための作業や環境設定は面倒かつ非効率で、膨大なデータをクラウドとやり取りするなどの運用コストも大きく、かつセキュリティのリスク回避も考慮しなければなりません。 こうした課題を解決するために、SAS ViyaではSAS Cloud Data Exchange (CDE)を提供しています。 SAS Cloud Data Exchange (CDE) は、プライベート/パプリックのクラウド上にあるアプリケーション(=SAS Viya)からファイヤーウォールの後ろにある、顧客のオンプレミス上にあるデータに安全かつ確実にアクセスし、大量のデータをクラウドへ高速に転送することを可能とするデータ接続機能です。 CDEは、SAS Viyaのセルフサービス・データ準備向け製品であるSAS Data Preparationに含まれる機能です。 CDEを使用すれば、クラウド上にあるSAS Viyaからオンプレミス上にある様々なデータソース(Oracle, Teradata, Hadoop etc.)へ最小限の手順で容易かつセキュアにアクセスすることが可能になります。 サポート対象データソース: ・DB2, ODBC, Apache Hive, Oracle, Redshift, SQL Server, Postgres, SAP HANA, Teradata, SAS Data Sets CDEでは、最小限の一つのポート(Https port)を使用し、オンプレミス上にあるデータソースにアクセスするための資格情報(ユーザーID /パスワード)も保護された領域に格納し、使用するため、安全性が高められています。 また、クラウド上のSAS Viyaが複数のワーカーノードで分散構成されている場合には、オンプレミス上のデータを並列で高速にSAS Viya環境へロードすることが可能です。 利用手順概要は以下の通りです。 オンプレミス側にSAS Data Agent

Data Visualization
SAS Visual Analytics on SAS Viya: こんな「かっこいいダッシュボード」でビジネス戦略練るのも面白い!

机上で男女が世界地図を広げて、何かの打ち合わせをしています。 航空会社A社の企画担当が、競合他社の路線を分析しているのか? それとも、これから二人で行く海外旅行のプランを立てているのか? いえいえ、これはSAS Visual Analyticsで作成されたダッシュボードの画面です。 このダッシュボードの構成は以下の通りです。 ・使用しているデータ:OpenFlightsで公開されている世界の空港の利用状況のデータ ・真ん中の世界地図:「ネットワークダイアグラム」オブジェクトを使用し、背景に地図を表示して、路線を描画 バブルの大きさは、利用頻度を表しています。 ・左側の棒グラフ:利用頻度の高いトップ10の航空会社 ・右下と左下の数値:「キーの値」オブジェクトを使用し、注目すべき指標をクローズアップしています。例えば右下の値は、利用頻度が最も高い空港名とその数を示しています。 ・人の手や机、カメラ、パソコン等は背景に使用している画像です。 今、このダッシュボードでは、左側の棒グラフ上で「Air China」が選択され、ネットワークダイアグラムと2つの指標はAir Chinaに自動的に絞り込まれた内容が表示されています。 でも、まだ、これは張りぼて? と思っていませんか。 以下は、左側の棒グラフ上で「US Airways」を選択した状態です。 ネットワークダイアグラムや2つの指標の内容が変わっているのがわかりますね。 ご覧の通り、インタラクティブなダッシュボードです。 みなさんも、こんなクールなダッシュボードで戦略を練ってみれば、新たなアイデアが湧いてくるかもしれませんね。 このブログは、SAS CommunityサイトのVisual Analytics ギャラリーに公開されている内容に基づいています。

Advanced Analytics | Analytics | Machine Learning
SAS Viya:ビジュアルパイプラインで予測モデル生成(自動特徴量エンジニアリングテンプレート編)

ビジュアルパイプラインで予測モデル生成(テンプレート使用編)では、SAS ViyaのModel Studioを使用し、標準で実装されているパイプラインのテンプレートを使用して、予測モデルを自動生成する手順を紹介しました。 今回は、標準実装のテンプレートに含まれている、「自動特徴量エンジニアリングテンプレート」を紹介します。 「特徴」=入力=変数(独立変数、説明変数)であり、 特徴量エンジニアリングとは、予測モデルの精度を高めるために、学習用の生データに基づき、特徴を変換したり、抽出したり、選択したり、新たな特徴を作り出す行為です。 以下は、特徴量エンジニアリングの例です。 ・郵便番号などの高カーディナリティ名義変数のエンコーディング(数値化) ・間隔尺度の変数の正規化、ビニング、ログ変換 ・欠損パターンに基づく変換 ・オートエンコーダー、主成分分析(PCA)、t-SNE、特異値分解(SVD)などの次元削減 ・季節的な傾向を把握するために、日付変数を別々の変数に分解して曜日と月と年の新しい変数を作成 より良い「特徴」を作り出し、選択することで、予測モデルの精度が向上するだけでなく、モデルを単純化し、モデル解釈可能性を高めるのにも役立ちます。 しかし、従来、予測モデリングのプロセスにおいて、データサイエンティストは、その多くの時間を特徴量エンジニアリングに費やしてきました。しかも、特徴量エンジニアリングの良し悪しは、データサイエンティストのスキルに大きく依存してしまいます。 こうした課題に対処するために、SAS Viyaでは、自動特徴量エンジニアリングテンプレートを提供しています。このテンプレートを使用することで、特別なスキルを必要とせず、特徴量エンジニアリングにかける時間を短縮し、より精度の高い予測モデル生成が可能になります。 以下が、SAS ViyaのModel Studioに実装されている「自動特徴量エンジニアリングテンプレート」です。 このテンプレートは、大きく3つのステップで構成されています。 高カーディナリティ変数に対するエンコーディング(数値化) 最良変換、PCA / SVD、オートエンコーダーを使用して新たな特徴を作成 特徴エンジニアリング未/済みデータに基づく予測モデルの精度比較 ステップ1.高カーディナリティ変数に対するエンコーディング(数値化) このステップの最初のノードは、「SASコード高カーディナリティ」という名のSASコードノードです。 SASコードノードを使用することで、SASプログラムをパイプラインに組み込むことができます。 このノードを選択し、右側画面内でコードエディタ:「開く」をクリックすると、その内容を確認できます。 このSASコードノードでは、最初に、20〜1,000レベルのカーディナリティの高い変数(固有値が多すぎる名義変数)を識別します。minlevelsとmaxlevelsの値を更新することで、この範囲を簡単に変更することもできます。次に、数値変換(TRANSFORM = LEVELENCODE)を指定し、これらの変数に対してのみレベル(水準)エンコーディングを行います。実際に変換を行うためには、「データマイニングの前処理」にある「変換」ノードを実行する必要があるため、「変換」ノードが接続されています。 レベルエンコーディングでは、名義を数値に変換します。これは、カーディナリティの高い変数を扱う場合に特に便利です。これらの変数は、ほとんどの機械学習アルゴリズムにおいてコンピューティングリソースの負荷をあげてしまうことが多いからです。最初に名義変数のレベルをアルファベット順に並べ替え、各レベルに昇順に数字(1から始まる)を割り当てます。 ステップ2.最良変換、PCA / SVD、オートエンコーダーを使用して新たな特徴を作成 ステップ2では、以下の3つの異なる自動特徴量エンジニアリング手法が適用されます。 変換-最良(Best):このノードは、「データマイニングの前処理」にある「変換」ノードを使用して、すべての間隔変数に対して「最良(Best)」の変換を行います。この方法では、各間隔変数に対して、ランク付け基準(ターゲットとの相関など)に基づいて、単一変数の変換(逆変換、標準化、センタリング、ログ変換など)を比較し、最も高いランク付けを持つ変換を選択します。 特徴抽出- PCA:このノードは、「データマイニングの前処理」にある「特徴抽出」ノードを使用して、間隔入力変数に対する自動特徴抽出手法として「自動」を指定しています。「自動」では、間隔入力変数の総数が500以下の場合は、主成分分析(PCA)が適用され、それ以外の場合は、特異値分解(SVD)が適用されます。 特徴抽出-自動エンコーダ:このノードでは、オートエンコーダを用いて特徴抽出を行います。この手法では、特徴抽出にすべての入力変数(間隔と名義)を使用します。オートエンコーダーは、入力データを再構成するために使用できる特徴のセットを学習することを目的とした教師なし学習技術です。手短に言えば、ニューラルネットワークは、ターゲット(出力)ニューロンを入力ニューロンと等しく設定することによって訓練されるものです。 このノードでは、中間隠れ層が10に設定されているので、10個の新しい特徴が作成されます。 ステップ3.特徴エンジニアリング未/済みデータに基づく予測モデルの精度比較 最後のステップでは、勾配ブースティングを用いた5つの異なる予測モデルが生成されます。 ・高カーディナリティー変数のレベルエンコーディング+特徴抽出(PCA)を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディング+特徴抽出(オートエンコーダー)を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディング+変換-最良を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディングを施したデータに基づくモデル ・元のデータ(特徴量エンジアリングを施していない)に基づくモデル 5つのモデルを生成後、パフォーマンスを比較します。勾配ブースティングは、非常に効果的な教師あり学習アルゴリズムであり、予測精度の面で他のアルゴリズムより優れていることが多いため、使用しています。

Advanced Analytics | Analytics | Machine Learning
SAS Viya: ビジュアルパイプラインで予測モデル生成(テンプレート使用編)

ビジュアルパイプラインで予測モデル生成(基本編)では、SAS ViyaのModel Studioを使用し、パイプラインを一から作成し、予測モデルを生成する手順を紹介しました。 今回は、前回からの続きとして、予め用意されているパイプラインのテンプレートを使用した、モデル生成手順を紹介します。 パイプライン・テンプレートの選択と実行 実行結果(モデル精度)の確認 1.パイプライン・テンプレートの選択と実行 パイプラインの追加アイコンをクリックすると、 「パイプラインの新規作成」ダイアログが表示されます。 パイプラインの名前を入力し、「テンプレート」から「テンプレートの参照…」を選択すると、 標準で実装されているテンプレートのリストが表示されます。 この中から使用したいテンプレートを選択し、「OK」をクリックします。今回は、「分類尺度のターゲット変数の高度なテンプレート」を使用します。 さらに、「保存」をクリックすると、 選択したパイプラインの内容が表示されます。 このテンプレートでは、以下の7つのモデルを生成し、結果を比較することができます。 ・データに対する前処理(欠損値補完と変数選択)後に、ロジスティック回帰(ステップワイズ法)とニューラルネットワークでモデル生成 ・データに対する前処理(欠損値補完)後に、ロジスティック回帰(増加法)でモデル生成 ・データに対する前処理無しで、勾配ブースティング、フォレスト、ディシジョンツリーでモデル生成 ・上記6つのモデルのアンサンブルモデルの生成 ※テンプレートに使用されている機能ノードごとの詳細なオプション内容は右側画面内で確認でき、必要に応じて変更可能です。また、パイプライン内への機能ノードの追加・削除・変更などカスタマイズも可能です。 ※一から作成したパイプラインや、既存テンプレートをカスタマイズしたパイプラインを、その企業独自のテンプレートとして共有し、活用することができます。 ※一つのプロジェクト内に、複数のパイプラインを作成し、結果を比較することができます。 パイプラインの実行アイコンをクリックし、実行します。実行中の機能ノードは時計アイコンがクルクル回転し、正常に完了すると緑のチェックマークが表示されます。 2.実行結果(モデル精度)の確認 パイプラインの実行が完了したら、ビジュアルパイプラインで予測モデル生成(基本編)と同様に、「モデルの比較」ノードのスノーマンアイコンをクリックし、メニューから「結果」を選択し、このパイプラインの実行結果を確認することができます。 また、一つのプロジェクト内で、複数のパイプラインを作成している場合には、パイプライン間でモデル精度を比較し、プロジェクト内でのチャンピオンモデルを確認することができます。 画面上部の「パイプラインの比較」をクリックします。 パイプライン2の勾配ブースティングのモデルの精度が最も高い、チャンピオンモデルであることが示されています。 以上が、パイプラインのテンプレートを使用して、予測モデルを生成する際の手順です。 コーディングスキルを持たないビジネスユーザーでも、まず、学習用のデータを選択し、予測対象の項目を選択し、テンプレートを選んで実行するだけで、精度の高いの予測モデルを自動生成することができるということです。 ※ビジュアルパイプラインのテンプレートを使用したモデル生成は、SAS Viya特設サイトにある動画でもご覧いただけます。  

Advanced Analytics | Analytics | Machine Learning
SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)

AIプラットフォームであるSAS Viyaでは、SAS言語のみならず、PythonやR、Java、Luaなどの汎用プログラミング言語からViyaのAI&アナリティクスの機能を使用し、予測モデルを生成することができるようになっています。しかし、昨今、「AI民主化」の流れに沿って、予測モデル生成を必要としているのはデータサイエンティスト(以降:DS)だけではなく、業務部門のビジネスアナリストや一般のビジネスユーザーも必要としています。こうしたコーディングスキルを持たないビジネスユーザー向けに、SAS Viyaでは、GUI上でマウスの簡単操作だけで予測モデル生成を可能としています。 もちろん、DSの中にも、コーディングせずに、もっと簡単に精度の高い予測モデルを生成できる手段があれば活用したいと感じている人達もいます。 SAS Viyaでは、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができます。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 Model Studioで予測モデルを生成するには、大きく2通りの方法があります。 1つは、マウスの簡単ドラッグ操作でパイプラインを一から作成する方法と、もう一つは、予め用意されているパイプラインのテンプレートを使用する方法です。 まずは、パイプラインを一から作成する際の基本的な手順を紹介します。 プロジェクトの新規作成と学習用のデータソース選択 パイプラインの作成と実行 実行結果(モデル精度)の確認 1.プロジェクトの新規作成と学習用のデータソース選択 SAS Viyaの統合GUIのホームページのメニューから「モデルの作成」を選択すると、 Model Studioの画面が表示されます。 「プロジェクトの新規作成」をクリックします。 「プロジェクトの新規作成」画面内で、プロジェクトの名前を入力し、モデルの種類(データマイニングと機械学習 / テキスト分析 / 予測)を選択し、学習用のデータソースを選択します。今回は、「データマイニングと機械学習」を選び、ローンの審査モデルを作成します。HMEQJというデータソースは、顧客ごとに1行の横持ち形式のデータです。 「保存」をクリックすると、ローン審査モデルプロジェクトが作成され、選択したデータソースの変数リストが表示されます。 予測対象の項目(ターゲット変数)を指定します。変数名:BAD(ラベル名:延滞フラグ)を選択し、右画面内で、役割に「ターゲット」を選択します。 延滞フラグには、過去に延滞の実績があればフラグに“1”が、無ければ“0”が設定されています。 2.パイプラインの作成と実行 予測対象の項目を指定後、画面上部にある「パイプライン」をクリックします。 パイプラインには「データ」ノードのみが表示されています。左端の機能ノードアイコンをクリックすると、 パイプラインに追加可能な機能ノードのリストが表示されます。 今回は、欠損値補完を行った上で、勾配ブースティングとランダムフォレストでモデルを生成してみましょう。まず、データに対する前処理として欠損値補完を行います。 「データマイニングの前処理」内にある「補完」を「データ」ノード上にドラッグすると、 「データ」ノードの下に「補完」ノードが追加されます。 同様の手順で、「教師あり学習」内にある「勾配ブースティング」を「補完」ノード上へドラッグすると、「補完」ノードの下に「勾配ブースティング」ノードが追加されます。(同時に「モデルの比較」ノードが自動的に追加されます) このようにドラッグ操作でノードを追加する以外に、パイプライン上のメニューからノードを追加することもできます。 「補完」ノードの右端にある、3つのドットが縦に並んでいる(スノーマン)アイコンをクリックし、「下に追加」>「教師あり学習」>「フォレスト」の順に選択すると、 「補完」ノードの下に、「フォレスト」ノードが追加されます。 機能ノードごとの詳細なオプションの設定は、右側画面内で行います。 パイプラインが完成したら、パイプラインの実行アイコンをクリックし、実行します。実行中の機能ノードは時計アイコンがクルクル回転し、正常に完了すると緑のチェックマークが表示されます。 3.実行結果(モデル精度)の確認 パイプラインの実行が完了したら、「モデルの比較」ノードのスノーマンアイコンをクリックし、メニュー から「結果」を選択します。 モデルの比較結果が表示されます。今回は勾配ブースティングのモデルの精度の方が高い=チャンピオンであると判定されています。 「アセスメント」タブ内では、リフトやROCの情報などを確認することができます。 以上が、ビジュアルパイプラインで予測モデルを一から生成する際の基本的な手順です。 ※ビジュアルパイプラインによるモデル生成(基本)は、SAS Viya特設サイトの「機械学習」トピック内にある動画でもご覧いただけます。

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 | Data Visualization
Sertalp B. Cay 0
Visiting all 30 Major League Baseball Stadiums - with Python and SAS® Viya®

Ballpark Chasers A cross-country trip is pretty much an all-American experience, and so is baseball. Traveling around the country to see all 30 Major League Baseball (MLB) stadiums is not a new idea; there's even a social network between so-called "Ballpark Chasers" where people communicate and share their journeys. Even

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

1 2 3 9