第3回のブログでは、SAS Visual Analytics の活用例として統計解析のひとつである線形回帰を紹介しました。その続きのブログとなる今回は、ロジスティック回帰について説明します。 回帰分析は変数どうしの関係を分析することができます。そのなかでも以前紹介した線形回帰はシンプルでよく利用されますが、すべての場合において最も適当な分析手法であるとは限りません。たとえば、目的変数が離散的な場合(例:喫煙の有無、就業状態、移住の意思)には、ロジスティック回帰のほうが当てはまりのよい結果を得ることができます。本記事では、ロジスティック回帰を用いて待機児童の有無に影響を与える変数の分析を紹介します。 このスライドでは、厚生労働省が公開している保育所等関連状況取りまとめ(平成30年4月1日)から申込者の状況についてのデータと、総務省が公開している平成28年度地方公共団体の主要財政指標一覧から全市町村の主要財政指標を利用しました。データのインポートについてスライド内でも説明していますが、インポートの際の注意点など詳細に関してはこちらのブログを参考にしてください。 SAS Visual Analytics 8.3 におけるロジスティック回帰の利用 from SAS Institute Japan ロジスティック回帰オブジェクトでは、自動的に最適なモデルが選択されます。オブジェクトを最大化し、詳細を表示すると使用したモデルを確認することができます。 スライド内の分析では、ロジットモデルを使用していました。 また、詳細からは当てはめの統計量、パラメータ推計値などの情報を確認することができます。 今回の分析結果の解釈として、待機児童の有無に影響を与えている要因は「財政力指数」「経常収支比率」「ラスパイレス指数」「実質公債費比率」でした。それぞれの変数についてパラメータ(効果量)推定値をみると、「財政力指数」が最も大きい正の値(2.49)となっており、「財政状況のよい市区町村ほど待機児童が発生しやすい」といえます。対して「申込者数」の推定値は(5%有意であるものの)0.000094と非常に小さく、申込者数の多寡が待機児童の有無に与える影響は小さいと言えます。ここから、自治体規模の大小と待機児童の有無は関係していないと推測できます。 そのほかのパラメータをみても、財政状況がよいほど待機児童がいることが分かりますが、ここから単純に「待機児童を減らすためには、財政状況を悪化させればよい」ということにはなりません。たとえば、待機児童が多い自治体では共働きが多く、結果として住民税収が増加し財政状況がよくなるなど、さまざまなストーリーを想定することができます。回帰分析から因果関係を主張するときには注意が必要です。 この分析では、財政指標を利用しましたが、他にも女性の就業率、出生率、世帯構成などのデータを利用するとより効果的な分析ができるでしょう。データセット内に2値の変数がない場合でも、スライド内の例のように自分で基準を決めることで新しい変数を作成することができます。これによって分析の幅が広がりますが、レポートには必ず変数の定義を記述してください。 引き続き本ブログのシリーズでは、図表・グラフの作成や統計解析の方法について紹介いたします。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしています。(追記:募集は締め切られました)
Japanese
全世界のSASユーザーが集う年次のイベント SAS Global Forum。 次回は2019年4月28日から5月1日まで、米国テキサス州ダラスで開催予定です。 現在、SAS Global Forum 2019での発表演題を募集しています。 本イベントは、600を超えるセッションでワークショップ、プレゼンテーション、e-ポスター、デモおよび交流プログラムが用意されており、アナリティクス活用についての事例やテクノロジーが多数紹介されます。昨年は5400人もの登録者があり、世界中のデータサイエンティストと情報交換が可能です。(2017年の様子を過去のブログで紹介しています。その1, その2, その3) 学生向けのプログラムも用意されており、多くの大学生・教育関係者が参加します。 Student Ambassador Program ... 「学生大使」として無料でイベントに招待(旅費や宿泊代もサポートされます!) Student Symposium ... 学生がチームで戦うコンテスト。ファイナリストはイベントに招待されます。 Academic Summit ... 学生と教育関係者向けの講演と交流プログラム。昨年、参加した日本の学生によるレポートはこちら。 ビジネスやアカデミアのユーザーが一堂に会するグローバルイベントで、学生が自身の分析・研究・提案を発表することで、ビジネスやアナリティクスの専門家からのフィードバックにより自身のアイデアを深めると同時に、国際的にネットワークを広げることができます。 まずは、10月22日の締切までにアブストラクトを投稿しましょう! SAS Japan アカデミア推進室では、投稿に向けて学生の皆さんをサポートいたします。 興味のお持ちの方は JPNAcademicTeam@sas.com までご連絡ください。
AIプラットフォームSAS Viyaでは、「AI実用化」や「AI民主化」を促進するために、従来から自動予測モデル生成や、機械学習やディープラーニングの判断根拠情報の提供などを可能としていましたが、SAS Visual Analytics on SAS Viyaの最新版8.3では、新たに「自動分析」機能が実装されました。 「自動分析」機能を使用すると、予測(ターゲット)に影響を与えている変数の特定や、変数ごとにどのような条件の組み合わせがターゲットに依存しているのかを「文章(条件文)」で表現して教えてくれます。 この例で使用するデータ「HMEQJ」は、ローンの審査を題材にしたもので、顧客ごとに1行の横持ちのデータです。このデータ内にある「延滞フラグ」が予測対象の項目(ターゲット変数)で、0(延滞なし)、1(延滞あり)の値が含まれています。 データリスト内の「延滞フラグ」を右クリックし、「分析」>「現在のページで分析」を選ぶだけで、「延滞フラグ」をターゲット変数に、その他の変数を説明変数とした分析が自動的に行われ、 以下のような結果が表示されます。 分析結果画面内説明: ① ドロップダウンリストで、予測対象値(0:延滞なし、1:延滞あり)の切り替えが可能です。この例では、「1:延滞あり」を選択し、「延滞する」顧客に関して分析しています。 ② 全体サマリーとして、すべての顧客の内、延滞実績のある顧客は19.95%であり、「延滞する」ことに関して影響度の高い変数が順に表記されています。 ③ 「延滞する」ことに関して影響を与えている変数の度合い(スコア)を視覚的に確認することができます。 ④ 「延滞する」可能性が最も高くなるグループ(条件の組み合わせ)が文章で示されています。この例では、③で「資産に対する負債の割合」が選択され、これに応じて文章内の該当箇所がハイライトしています。 ⑤ この例では、③で「資産に対する負債の割合」が選択され、これに応じて「0:延滞なし、1:延滞あり」別の顧客の分布状況がヒストグラムで表示されています。選択された変数が数値属性の場合は、ヒストグラムで、カテゴリ属性の場合は積み上げ棒グラフで表示されます。 分析に使用する説明変数(要因)に関しては、右側の「データ役割」画面内で選択することができます。 以上のように、分析スキルレベルの高くないビジネスユーザーでも、簡単かつ容易に、そして分かり易くデータから有効な知見を得ることができます。 ※AIプラットフォーム「SAS Viya」を分かり易く学べる「特設サイト」へGO!
これまでのSAS Visual Analytics 活用例では、一時点のデータを表やグラフに示し、分析していましたが、統計データには毎年、毎月や四半期ごとに集計されているものが多くあります。そこで今回はデータのなかに時間情報が存在する時系列データの操作について説明します。 時系列データには国や地方自治体が公表しているデータに加え、気象情報、商品の売上、株価、為替レートなど様々なデータがあります。時系列データを利用することで、過去の傾向やパターンを把握したり、将来はどうなるのか予測することができます。SAS Visual Analytics のオブジェクトには、時系列データではないと作成できないものがあり、その中でも今回は、二軸の時系列プロットと予測の利用例を説明します。 このスライドでは、日本政府観光局(JNTO)が公開している「年別 訪日外客数・出国日本人数・国際旅行収支(IMF方式)の推移」を利用しました。このファイルには、1959年から2016年までの年ごとの訪日外客数、出国日本人数とその伸び率、国際旅行収支のデータがあります。データのインポートについてスライド内でも説明していますが、インポートの際の注意点など詳細に関してはこちらのブログを参考にしてください。 SAS Visual Analytics 8.3 における時系列データの利用 from SAS Institute Japan 予測オブジェクトでは、自動的に最適な予測モデルが選択されます。オブジェクトを最大化し、詳細を表示すると使用された予測モデルを確認することができます。 スライド内の予測では、ARIMAが使用されていました。 また、データ役割からWhat-If 分析を選択すると、シナリオ分析とゴール探索を実行することができます。シナリオ分析では、要因の値を設定することで、予測値がどれくらい変化するかを確認できます。ゴール探索では、予測の目標値を設定することで、その目標を達成するために必要な要因の値を決定することができます。 今回スライド内で紹介したほかに時系列データを利用するオブジェクトとしては、時系列プロットと比較時系列プロットがあります。作成したオブジェクトを右クリックするとメニューが表示されるのでそこから変更することができます。 引き続き本ブログのシリーズでは、図表・グラフの作成や統計解析の方法について紹介いたします。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしています。(追記:募集は締め切られました)
本ブログのシリーズでは、SAS Visual Analyticsを用いた図・グラフの作成や統計解析についてご紹介しています。第5回目となる今回は、ディシジョンツリーを用いた分析方法をご説明します。 第1回和歌山県データ利活用コンペティション:大学生の部の課題は「人口減少問題を解決するための施策」でした。前々回の記事では、各自治体の行政基盤が人口増減率に与える影響を線形回帰を用いて評価しました。この手法は説明変数の与える影響の大きさを定量的に評価できるものの、各説明変数間の関係の読み取ることは困難でした。そこで本記事では同じ題材を用いて「ディシジョンツリー」による分析方法をご説明します。ディシジョンツリーでは、各説明変数が目的変数に及ぼす影響を階層ごとに分析することができます。 前々回の記事と同じく、総務省の「社会・人口統計体系 都道府県データ 社会生活統計指標 :D 行政基盤」と「人口推計:都道府県別人口増減率-総人口」のデータを使用しました。 SAS Visual Analytics 8.3 におけるディシジョンツリーの利用 from SAS Institute Japan 今回の分析において、人口増減に最も大きな影響を与える要素は「財政力指数」でした。都市部など財政力が強い地域の人口が増加しやすいことは感覚的に自然な結果でしょう。 注目すべきは、財政力指数が低い自治体において次に大きな影響を与える要素が「土木費割合」であったことです。無論インフラの整備は市民の暮らしやすさに欠かせない要素ですが、人口増加につながる理由としては、「公共事業による雇用の創出」と捉えることが適切でしょう。今回は行政基盤のみを説明変数に設定しましたが、有効求人倍率や最低賃金等、市民の生活や労働に関連する要素を説明変数に据えることで、より詳細な分析が可能であると予想されます。第一回和歌山県データ利活用コンペティションのサイトにこのテーマに関する優秀作品が掲載されておりますので、ご参照ください。 ディシジョンツリーによる分析は、説明変数が目的変数に及ぼす影響や各説明変数間の関係が理解しやすいというメリットがありますが、モデル作成時に用いたデータに過剰適合し汎化性能が低いというデメリットもあります。目的に応じてツリーの枝数や階層数を適切に調整するようにしましょう。 以上、ディシジョンツリーを用いた分析手法についてご説明しました。本ブログのシリーズの他の記事もぜひご参照ください。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしております。(追記:募集は締め切られました)
前回のブログでは、統計解析の一例として、線形回帰分析の方法をご紹介しました。今回はデータを用いてクロス集計表(分割表)を作成し、円グラフ・棒グラフに可視化する方法をご紹介いたします。 第1回和歌山県データ利活用コンペティションでテーマに挙げられていた「人口減少問題を解決するための施策」をテーマに分析をします。人口減少の原因に女性の社会進出に対する意識が影響しているのではないかと考えました。もし、まだ子育てをしていない女性が育児と仕事を両立したくてもそれが難しいと感じるようでしたら、このことは人口減少の障害になりかねません。そこで、就業希望者と求職者について男女・育児活動の有無を項目にし、関連性を探りました。 以前、データのインポート方法を紹介したブログで利用した総務省統計局の平成29年 就業構造基本調査 都道府県編 「男女,育児の有無・頻度・育児休業等制度利用の有無,年齢,就業希望の有無・求職活動の有無別人口(無業者)-全国,全国市部,都道府県,都道府県市部,政令指定都市」のデータを利用します。 データのインポート方法に関する記事は過去のブログ記事をご参照ください。 SAS Visual Analytics 8.3 におけるクロス集計表の作成と可視化 from SAS Institute Japan 作成したグラフから、女性の中でも育児活動の有無により求職者数にはあまり差がない一方で、就業希望者数は育児活動をしている女性の方が多いことがわかります。このことから、子育てをしている女性は仕事をしたいとは思っても実際には求職活動を行っていないということがわかります。 今回のように男女・育児活動の有無など質的変数同士の関係を考察する場合、データをクロス集計表にまとめると分析がしやすくなります。また、インポートしたデータの中から必要なものを取り出すためにフィルタを活用することが効果的です。グラフを作成する際は、軸にどのようなカテゴリを選択するか、メジャーには何を用いるかなどについて自分の分析したい目的に合わせて考えてみてください。 引き続き本ブログのシリーズ Visual Analyticsを用いた図・グラフの作成や統計解析について紹介いたします。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしております。(追記:募集は締め切られました)
前回のブログではSAS Visual Analyticsを用いて地図上にデータを表示するジオマップの作成方法をご紹介しました。本記事では統計解析の一例として、線形回帰分析の方法をご説明します。 第1回和歌山県データ利活用コンペティション:大学生の部の課題は「人口減少問題を解決するための施策」でした。人口減少の原因を把握することは、施策を決定するうえで重要な過程の一つです。社会福祉や育児支援等、さまざまな要素がその原因の候補として考えられますが、どの要素が原因として最も妥当であるかを判別するために、各要素が人口増減に与える影響を線形回帰により分析します。本記事では、都道府県ごとの人口増減率と行政基盤との関係を例にとり、線形回帰の分析方法をご紹介します。 今回使用したデータは、総務省の「社会・人口統計体系 都道府県データ 社会生活統計指標 :D 行政基盤」と「人口推計:都道府県別人口増減率-総人口」です。 SAS Visual Analytics 8.3 における線形回帰の利用 from SAS Institute Japan データのインポート方法の記事はこちらです。 今回は連続型データの説明変数のみを分析しましたが、離散型データの説明変数も「分類効果」に設定することで分析可能です。また、説明変数同士に関係性がある場合は、それらを「交互作用効果」に追加します。 線形回帰のモデル評価において、「財政力指数」と「社会福祉費割合」のp値が有意水準0.05を下回っていたため、これらは説明変数として有効であると判断できます。「財政力指数」が高い自治体は多方面にわたり数々のサービスを提供可能で、「社会福祉費割合」が高い自治体は市民の生活の安定により多く貢献しています。これらのことから、市民の生活支援を充実させることが、人口増加のために行政のなすべき課題の一つであることがわかります。 しかし、今回作成した回帰モデルの決定係数は0.6995であり、依然として改善の余地が見受けられました。第一回和歌山県データ利活用コンペティションのサイトにこのテーマに関する優秀作品が掲載されておりますので、ご参照ください。 以上、線形回帰の方法をご説明しました。引き続き本ブログのシリーズではSAS Visual Analyticsを用いた図・グラフの作成や統計解析について紹介いたします。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしております。(追記:募集は締め切られました)
前回のブログでは、SAS Visual Analytics にデータをインポートする方法を紹介しました。こうしてインポートしたデータをもとに、さまざまな図表・グラフの作成や統計解析を実行することができます。本記事では地図上にデータを表示するジオマップの使い方を説明します。 第1回和歌山県データ利活用コンペティションでは、「観光客を誘客するための施策」と「人口減少問題を解決するための施策」が募集テーマとなっていました。施策を検討するためには、まず現状を把握することが重要です。観光客の誘客に関しては、年間の訪問者数、宿泊者数、消費額や訪問目的などが考えられます。人口減少問題に関しては、人口の増減率、年齢別の人口構成、転出先や転入元などが考えられます。これらのデータは地理情報を含んでおり、地図上に表すことで効果的な図を作成することができます。本記事の例では、和歌山県が属する関西地区の宿泊データを利用してジオマップを作成します。 まずは、観光庁の宿泊旅行統計調査から平成29年1月~12月分(年の確定値)の集計結果をダウンロードします。ダウンロードしたファイルをSAS Visual Analytics にインポートする方法は、前回のブログ記事を参考にしてください。 SAS Visual Analytics 8.3 におけるジオマップの利用 -宿泊旅行統計- from SAS Institute Japan ジオマップをもとに調査をすすめると、和歌山県の宿泊稼働率が比較的低い要因を知ることができました。客室稼働率を高めるには、季節変動を抑え、年間を通じて旅行者を集客することが重要であるといえそうです。 つぎに、第2回のテーマである「高齢者が活躍できる社会づくり」「UIターン就職・若者の定住促進」に関連するデータを利用した例です。このスライド内では、時系列データを利用したアニメーション形式のジオマップ作成を紹介しています。時系列データに関しての詳細は、こちらのブログ記事を参考にしてください。 SAS Visual Analytics 8.3 におけるジオマップの利用 -高齢者の就労- from SAS Institute Japan ジオマップを用いてデータを図示することで、地域比較がより分かりやすくなり時系列の変化も直感的に把握することができます。また、分析を進めるための手がかりともなります。今回のコンペティションでは地理情報を含むデータの利用が予想されますので、その際はぜひジオマップを活用してみてください。 引き続き本ブログのシリーズでは、図表・グラフの作成や統計解析の方法について紹介いたします。 第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、高校生・大学生のご参加をお待ちしています。(追記:募集は締め切られました)
SAS Japan と伊藤忠テクノソリューションズ株式会社は、第2回和歌山県データ利活用コンペティションに共同で協賛し、参加者に「データサイエンス教育プラットフォーム」を提供します。 このブログでは、データサイエンス教育プラットフォームの利用例をシリーズで紹介します。 本コンペティションは次世代のデータサイエンティストを育成することを目的に開催され、全国の高校生及び大学生が腕をふるいます。データサイエンス教育プラットフォームでは、プログラミングを知らない学生でもデータ分析ができるように、データの取り込み、集計、基本的な統計解析、高度な機械学習手法などをビジュアルなインターフェースで実行できる SAS Visual Analytics をWebブラウザから利用できます。
机上で男女が世界地図を広げて、何かの打ち合わせをしています。 航空会社A社の企画担当が、競合他社の路線を分析しているのか? それとも、これから二人で行く海外旅行のプランを立てているのか? いえいえ、これはSAS Visual Analyticsで作成されたダッシュボードの画面です。 このダッシュボードの構成は以下の通りです。 ・使用しているデータ:OpenFlightsで公開されている世界の空港の利用状況のデータ ・真ん中の世界地図:「ネットワークダイアグラム」オブジェクトを使用し、背景に地図を表示して、路線を描画 バブルの大きさは、利用頻度を表しています。 ・左側の棒グラフ:利用頻度の高いトップ10の航空会社 ・右下と左下の数値:「キーの値」オブジェクトを使用し、注目すべき指標をクローズアップしています。例えば右下の値は、利用頻度が最も高い空港名とその数を示しています。 ・人の手や机、カメラ、パソコン等は背景に使用している画像です。 今、このダッシュボードでは、左側の棒グラフ上で「Air China」が選択され、ネットワークダイアグラムと2つの指標はAir Chinaに自動的に絞り込まれた内容が表示されています。 でも、まだ、これは張りぼて? と思っていませんか。 以下は、左側の棒グラフ上で「US Airways」を選択した状態です。 ネットワークダイアグラムや2つの指標の内容が変わっているのがわかりますね。 ご覧の通り、インタラクティブなダッシュボードです。 みなさんも、こんなクールなダッシュボードで戦略を練ってみれば、新たなアイデアが湧いてくるかもしれませんね。 このブログは、SAS CommunityサイトのVisual Analytics ギャラリーに公開されている内容に基づいています。
ビジュアルパイプラインで予測モデル生成(テンプレート使用編)では、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つのモデルを生成後、パフォーマンスを比較します。勾配ブースティングは、非常に効果的な教師あり学習アルゴリズムであり、予測精度の面で他のアルゴリズムより優れていることが多いため、使用しています。
ビジュアルパイプラインで予測モデル生成(基本編)では、SAS ViyaのModel Studioを使用し、パイプラインを一から作成し、予測モデルを生成する手順を紹介しました。 今回は、前回からの続きとして、予め用意されているパイプラインのテンプレートを使用した、モデル生成手順を紹介します。 パイプライン・テンプレートの選択と実行 実行結果(モデル精度)の確認 1.パイプライン・テンプレートの選択と実行 パイプラインの追加アイコンをクリックすると、 「パイプラインの新規作成」ダイアログが表示されます。 パイプラインの名前を入力し、「テンプレート」から「テンプレートの参照…」を選択すると、 標準で実装されているテンプレートのリストが表示されます。 この中から使用したいテンプレートを選択し、「OK」をクリックします。今回は、「分類尺度のターゲット変数の高度なテンプレート」を使用します。 さらに、「保存」をクリックすると、 選択したパイプラインの内容が表示されます。 このテンプレートでは、以下の7つのモデルを生成し、結果を比較することができます。 ・データに対する前処理(欠損値補完と変数選択)後に、ロジスティック回帰(ステップワイズ法)とニューラルネットワークでモデル生成 ・データに対する前処理(欠損値補完)後に、ロジスティック回帰(増加法)でモデル生成 ・データに対する前処理無しで、勾配ブースティング、フォレスト、ディシジョンツリーでモデル生成 ・上記6つのモデルのアンサンブルモデルの生成 ※テンプレートに使用されている機能ノードごとの詳細なオプション内容は右側画面内で確認でき、必要に応じて変更可能です。また、パイプライン内への機能ノードの追加・削除・変更などカスタマイズも可能です。 ※一から作成したパイプラインや、既存テンプレートをカスタマイズしたパイプラインを、その企業独自のテンプレートとして共有し、活用することができます。 ※一つのプロジェクト内に、複数のパイプラインを作成し、結果を比較することができます。 パイプラインの実行アイコンをクリックし、実行します。実行中の機能ノードは時計アイコンがクルクル回転し、正常に完了すると緑のチェックマークが表示されます。 2.実行結果(モデル精度)の確認 パイプラインの実行が完了したら、ビジュアルパイプラインで予測モデル生成(基本編)と同様に、「モデルの比較」ノードのスノーマンアイコンをクリックし、メニューから「結果」を選択し、このパイプラインの実行結果を確認することができます。 また、一つのプロジェクト内で、複数のパイプラインを作成している場合には、パイプライン間でモデル精度を比較し、プロジェクト内でのチャンピオンモデルを確認することができます。 画面上部の「パイプラインの比較」をクリックします。 パイプライン2の勾配ブースティングのモデルの精度が最も高い、チャンピオンモデルであることが示されています。 以上が、パイプラインのテンプレートを使用して、予測モデルを生成する際の手順です。 コーディングスキルを持たないビジネスユーザーでも、まず、学習用のデータを選択し、予測対象の項目を選択し、テンプレートを選んで実行するだけで、精度の高いの予測モデルを自動生成することができるということです。 ※ビジュアルパイプラインのテンプレートを使用したモデル生成は、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 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
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 1
SASの提供する機能、製品、コーディング上の利用の仕方、便利なSASマクロ等々は非常に幅広く、日々お客様と接している我々であっても全ての情報を持つことはできません。そのため、我々はWWのSAS利用ナレッジをこのSAS Global Forumにおける発表論文に頼ることが頻繁にあり、社内のナレッジシェアリングで参照することもしばしばです。f 今年4月に開催されたSAS Global Forum 2018の発表資料/論文を検索 2017以前の発表資料/論文を検索 なんと1976年からあります! 是非、ご活用いただければと思います。
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()メソッド:反復学習の履歴表示
前回の「ディープラーニングの判断根拠」ブログでは、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
4月8日から9日まで、米国コロラド州デンバーにおいて、年次のSASグローバルイベント「SAS Global Forum」が開催されました。 今年のSAS Global Forumには、2月に開催された和歌山県データ利活用コンペティションにてSAS賞を受賞した専修大学のチームを招待しました。 SAS Global Forumでは、毎回、学生・教員が参加するAcademic Summitが開催されますが、今年も4月8日に開催された本イベントをレポートいたします。
前回、この機能を紹介した際には、海外に実在する施設や地図上での活用例をご覧いただきました。 その続編となる今回は、以下の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では、こんなこともできるんですね。 例えば、人体図の中の内臓別の疾患状況をビジュアルに分析する、工場内プラントの設備(工程)ごとの稼働状況を図解でビジュアルに可視化し分析する、店舗内の商品陳列棚別の在庫状況や売上状況を図解でビジュアルに可視化し分析する…なんていうこともできそうですね。
みなさんご存知の通り、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
予測モデル生成において、従来は、人が考えてデータの中から特徴を抽出する必要がありましたが、ディープラーニングでは、この特徴を自動的に抽出して学習することが可能になっています。 半面、どのように特徴が抽出されているのかに関しては、基本的にはブラックボックスであり、説明責任が求められるような業務要件では、その分析結果を業務に活用することが難しい場合もあります。 しかし、近年ディープラーニングから出てきた結果の根拠=判断根拠を可視化する手法がいくつか考案されてきています。 関連情報サイト: 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)を表示したものです。
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アナリティクスの世界を覗いてみませんか?
前回、SAS OnDemand for Academics (SODA) の Course 機能を活用することで、授業準備の手間が軽減されることをご紹介しましたが、実は、Cource 登録にはもう一つのメリットがあります。 SODA は、SAS Studioを基本のインターフェイスとしていますが、Course 登録により使用できる製品が増えます。 SAS Enterprise Guide : ポイント&クリック操作によるWindowsアプリケーション SAS Enterprise Miner : GUIによるデータマイニング・ツール SAS Forecast Server : 時系列予測の自動作成ツール これらは、統計の学習よりも、実際のビジネス等の現場で素早く統計手法を適用するためのツールで、基礎を学習した上で、より応用に際して活用できるものです。
統計ソフトを大学等の授業で用いる際に問題となるのが、統一的な環境を用意することの難しさです。受講者全員が同じバージョンのソフトウェアを同じ設定で利用し、同じ場所にあるデータにアクセスするような環境を準備しないと、個々の環境の差異から発生する問題に対処するだけで授業時間が終わってしまうでしょう。 また、統計ソフトを利用した演習講義では、プログラミングが必要になる場面が多いと思います。しかし、少ない授業時間を割いてプログラミングに慣れていない学生にコーディングを教えることは、本来その講義で教えるべき内容を削ってしまいかねません。 ご存知の方も多いと思いますが、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!
今回は、仕事納めの時期で少し自分たちの時間が確保できたので、かねてより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のスーパーデモを録画した下記二つの動画もご参照ください。
みなさんは「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 がサポートいたします。