SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Artificial Intelligence | Data for Good
SAS Japan 0
森林破壊とAIの出会い ―休校中のこどもたちでもできること―

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはLucy Kosturkoによって執筆されました。元記事はこちらです(英語)。 あなたは今まで、実際に現地に行かなくても熱帯雨林を助けることは出来ないかと考えたことはありますか?考えたことがないでしょうか。 でも今がチャンスです。地球をまもるための活動もバーチャルで実施することがでる時代です。私たちの熱帯雨林プロジェクトでは、人工知能(AI)について少しずつ学びながら熱帯雨林を保護する機会を、家で過ごしている児童・生徒の皆さんに提供します(もちろん、大人の方にもご協力いただけます!)。こちらがご自宅でもできる学習ステップガイドです。 このガイドは4つのステップに分かれています: Step1: AIが人類のためにどのような役割を担うのか理解しよう Step2: 熱帯雨林のためにどのようにAIを活用するか見てみよう Step3: 画像の分類に力を貸してください Step4: さらにAIを用いて解決できる他の問題を見つけよう   Step 1: AIが人類のためにどのような役割を担うのか理解しよう 私たちは、電気によって生み出された力やインターネットを通じて形成された世界全体の繋がりから、人類の歴史や人々の生活・労働上での技術の転換を知ることができます。AIはそれらの技術の最先端に過ぎません。いわゆるスマート家電から電気自動車まで、AIは私たちが考えていた働き方・運転の仕方・学習など多くのことを変化させてきました。 AIは人間と機械の長所をつなぎ合わせます。コンピュータの処理速度と高い継続性に人間の知性を組み合わせることで、それぞれだけでは実現できないものを作り上げることができます。AIを用いると、私たちは人間にとっては危険なこと(危険な環境の探索など)をコンピュータに実行させるようにトレーニングすることや、監視カメラの管理など人間が継続し続けることが難しい作業をコンピュータに任せることができます。これらは、ルールを設定することが容易な直感的な問題ではなく、未知で予測不可能な状況が溢れている問題です。プログラマーはコンピュータが必要とするルールを開発するのが困難なので、AIを使用して命令を開発します。 例として、複数選択と記述で答える質問がある学生の課題を採点するために開発されたコンピュータプログラムについて考えてみましょう。 複数選択式の質問には4つの選択肢がありますが、その中で正解は1つです。プログラマーは、その学生の回答が正解かどうかを評価する従来のコードを作成します。そのルールは簡単で、「Q:生徒の回答は正解と一致しますか」「A:はい、または、いいえ」です。 では、記述式の質問はどうでしょう?記述の正解は1つではありません。その記述が正しいかどうかを判断するルールも存在しないかもしれません。「記述は何文字以上必要か」「段落の数はいくつか」「必要な単語・用いてはならない単語はあるか」など、記述を適切に採点するためのルールを作成する方法はなく、そのルールは様々な判断と細かい評価が影響してきます。 この場合、プログラマーは従来のコードの代わりにAIを使用します。この問題を解決するために、プログラマーはまず評価の高い記述と低い記述のサンプルを集めます。そのサンプルは多い方が望ましいです。そのサンプルに機械学習アルゴリズムを用いて、コンピュータが優れた記述の基準を識別できるようにします。コンピュータにあらかじめ指示すべきルールはわかりませんが、そのルールが有効かどうかを判断することが出来ます。別のサンプルを用意して、先ほど作成したルールを適応したときに評価の高い記述と低い記述に分類されているかどうかを確認することで、ルールの基準をテストできます。 森林破壊など、世界規模の問題に取り組む際も同様の手法を適用することが出来るのです。   Step 2: 熱帯雨林のためにどのようにAIを活用するか見てみよう SASはIIASAと提携し、AIの専門知識と科学システム分析を統合して、地球を見るための新しい「目」を作りました。この提携によって、惑星映像から森林破壊の領域を自動的に検出できるようになります。コンピュータは何百万もの衛星画像を調べることにより、森林破壊の影響を受けた熱帯雨林の範囲を科学者に警告します。これにより、400万㎢を超える熱帯雨林を短期間で調査し、衛星画像が更新されるたびに調査を繰り返すことが出来ます。

Analytics
0
SAS Visual Forecastingで、セグメンテーション予測を実践し、複雑な需要傾向を持つ時系列予測を簡潔に実現

商品やサービスを販売している企業においては、過剰在庫を防止したり、欠品による機会損失を防止し、収益を最大化するために需要予測が行われています。しかし、実際のビジネスの現場では、需要や売れ行きの傾向が異なる品目が混在するようなケースでは、その予測に多くの手間と時間がかかってしまうなどのいくつかの課題があります。 例えば、通年売れる品目や動きが遅い品目、新規品目、季節に影響を受ける品目などがあり、これらは同じ時系列モデルで処理できるわけではありません。このような課題に対する一つの解決策としては、パターンの近い商品をサブセグメントに小分けし、そのセグメントに応じて予測戦略を適用しわけることで、精度を向上します。つまり、時系列データの特徴を自動に分析して需要のパターンごとにデータを分類し、需要パターンごとに予測作業をすることです。この需要パターンの自動分類と予測については、すでにブログでご紹介しているので、こちら「SAS Viya: ビジュアルパイプラインで需要分類&予測」を参照してください。 一方で、単に時系列データとしての特徴だけではなく、品目の種類や販売地域など、業務的な観点での品目属性によって予測を管理したり、または、属性情報を加えて特徴エンジニアリングし、その特徴量と属性を加味することで精度向上を期待することもあります。そうすると、さらに自由に複雑な属性を持つ大量な時系列データを小分けして精度の高い予測結果が期待できます。つまり、ビジネス的な品目属性に基づいてデータを分割し、業務システムから属性ごとの品目データを抽出、加工処理し、それぞれ別々にモデリングを行うケースです。予測結果の全体像を把握するためには、個別に予測を実施した後、それらの結果を収集し、統合する必要もあります。 しかし、このような、データの分割や再集約には多くの手間がかかりますし、データを管理するための命名ルールなども慎重に行う必要があります。こうした課題を解決し、需要傾向の異なる商品が混在する大量のデータに対して、一つのモデリングプロジェクで最適な需要予測を一括で行うことができたら、便利だと思いませんか? 今回は、このような実際の背景にもとづき、こうした複雑な分析処理を一元的に、手軽に実現できるSAS Visual Forecastingのセグメンテーション予測機能を紹介させていただきます。 SAS Visual Forecastingの機能を活用することで、時系列データを、データの性質(動きが遅い品目、新規品目、季節品目など)に基づき、複数の類似する時系列セグメントに分割することができます。その上で、予測プロジェクト内で各セグメントを個別にモデル化できます。これにより、ユーザーは各セグメントにおける時系列のパターン/特性をより的確にモデル化するためのモデリング戦略の調整を行えるようになりますし、予測結果を全体的に把握することも可能になります。 それでは、一つの具体例を見ながら、Visual Forecastingのセグメンテーションの有用性を実感していきましょう。 今回は、米国でスキンケア商品の販売を手掛ける企業における、需要予測の課題を解決することを想定しています。この企業は、スキンケア商品の時系列売上データに基づき商品セグメントごとに二週間先の売上高を予め把握(予測)しておきたいと考えていました。 まずはスキンケア商品の時系列データを見てみましょう: 上図のように、毎日各倉庫から在庫の各商品を発送して売上高を計上、また店から各商品に行われたプロモーションやキャンペーンなどの情報を収集し、商品時系列データにまとめます。今回は、各倉庫の管理している商品売上高に基づき予測を行います。 上記の情報を表にすると下記の時系列データになります。 商品は「ProductKey」、販売倉庫は「DistributionCenter」、販売時間の時系列データは「DATE」、販売に影響する変数として割引率の「Discount」。最後に、予測目標の売上高は「Revenue」になります。 この販売トランザクション情報に、商品マスターの属性情報を加味します。 商品マスターの属性情報というのは、上図のような販売チャンネルや商品カテゴリーなどの商品が販売プロセスにおける各種補足情報のことです。例えば、販売量の高い商品はどの販売チャンネルから売れたか、どの商品カテゴリーのものか、これらの情報は商品の販売曲線の可視化にも使えるし、精確な予測にも不可欠であり、将来の販売推進方針にも繋げます。 一つの具体属性データサンプルを見ます。 商品のカテゴリーが「ProductCategory」、商品名は「ProductName」、商品の販売チャンネルが「ProductType」です。そして、商品セグメントが「_seg_」になります。セグメントという項目を少し紹介します。例えば、小売業界にとって通年売れる商品や季節限定の商品などが必ず存在すると思います。しかし、小売業者にとって、具体的に自社商品の中でどのようなものが通年売れる商品なのか、どのようなものが特別な時間にしか売れないのか、その商品を担当する担当者しか把握きません。長年にわたり、商品ごとに「通年売れる商品」や「夏限定商品」、「クリスマス商品」、「新規開発の商品」などの特徴を明白なビジネスノウハウにし、需要予測にも使いたいと考えています。このような情報を商品セグメントと称し、セグメントごと明らかに時系列特徴もはっきり分かれています。 最後に、下図のように、時系列データと属性データを結合させ、予測モデルに利用するマスターデータの準備が完成です。 今回はSAS Visual Forecastingを活用することで、時系列データを、データのセグメント属性(通年販売品目、新規品目、季節品目など)に基づき、複数の類似する時系列セグメントに分割し、精確な予測を実現することを目的としています。それを実現するため、本来であれば、各商品セグメントのマスターデータをそれぞれ抽出してモデル開発と予測を実施する必要があります。例えば、通年売れる商品に関しては従来通りにARIMAモデルで予測し、一方で、新たに開発し、販売後間もない新規開発の商品に関してはニューラルネットワークでのモデリングを適用したい場合があります。しかし、現在商品セグメントが多数もあり、データの前準備にも手間がかかります。 SAS Visual Forecastingのセグメンテーション予測機能を利用すれば、データの分割をせずすべての商品カテゴリーのデータを含むマスターデータで簡潔かつ精確にモデリングを行えます。     ここまでは今回のセグメンテーション予測イメージの説明になります。これからは実際にSAS Visual Forecastingで操作する様子を体験していきます。 まずは、Visual Forecastingのプロジェクトを一つ立ち上げます。プロジェクト名をセグメンテーション予測にして、テンプレートに外部セグメンテーションを選びます。データは先ほど説明したスキンケア商品の時系列データ「SKINPRODUCT」を選択します。 次はプロジェクトデータ設定画面で、予測用の時系列データの各列に役割を指定します。 例えば、以下のように役割を割り当てます 「時間」:「DATE」列(日付) 「独立変数」:「Discount」(値引額) 「従属変数」(ターゲット変数):「Revenue」(売上高) By変数というのは、時系列データをグループにまとめる単位を指しています。 そしてデータソースとして時系列データの属性情報を持っているマスター表「SKINPRODUCT_ATT_SEG」も追加します。この表を追加したことによって、さらに細かいグループベースで予測することができます。 この表には予めセグメンテーシ予測用に作成しておいた「_seg_」列が含まれます。中身は商品セグメント名で、計7セグメントが入っています。例えば、「Long term - All year goods」(通年販売商品)、「Long

Analytics | Data for Good | Data Visualization
SAS Japan 0
新型コロナウイルスの感染拡大を追跡するためにデータ・ビジュアライゼーション(視覚化)を利用する

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはMark Lambrechtによって執筆されました。元記事はこちらです(英語)。 世界的な公衆衛生問題が拡散する際、初期段階では多くの不明事項が存在するものですが、新型コロナウイルスのように急速な感染拡大の場合は特にその度合が高まります。データ・ビジュアライゼーションは、傾向を理解したり、複数のデータポイントから意味のあるストーリーを組み立てたりするための優れたスタート地点となりえます。ウイルスの拡散状況を視覚化できる機能は、問題意識の喚起、そのインパクトの理解、そして究極的には予防努力の支援に役立つ可能性があります。 2019年12月31日、世界保健機関(WHO)の中国オフィスは、中国湖北省の武漢市で検知された原因不明の肺炎の感染ケースについて報告を受けました。最初の報告以降、この新型コロナウイルス(SARS-CoV-2)は世界的な感染拡大を見せており、感染者は30ヶ国以上の数万人に及び、「新型コロナウイルス感染症(COVID-19)」と呼ばれる急性呼吸器疾病を引き起こしています。 この状況を受け、SASは新型コロナウイルスの現況、場所、拡散状況、トレンド分析を描き出すインタラクティブなレポートを作成しました。 元になるデータは日次で更新されており、感染拡大の進行状況を定期的にチェックすることや、世界的な拡散状況を時間軸に沿ったアニメーションで確認することができます。この対話操作型レポートでは以下のことが行えます。 過去10日以内に新たに確認された感染者の数を調べ、このウイルスの感染率、回復率、死亡率がどのように推移しているかを確認する。 このウイルスがどの地域に侵入したかを調べ、発生地の中国と世界の残りの地域とで状況を比較する。 感染確認済みのケースを分析することで、回復率が時の経過に沿ってどのように変化しているかを理解する。 このレポートはSAS Visual Analyticsと、WHO、CDC、ECDC、NHC、およびDXYからのデータ(JHU CSSEによってコンパイルされたもの)を用いて作成されています[訳注:JHU CSSE=米国ジョンズ・ホプキンズ大学システム科学工学センター]。 SAS Visual Analyticsで作成した新型コロナウイルス・レポートの概要 「新型コロナウイルス感染症(以下、COVID-19)」の感染拡大に関するサマリー情報を手早く確認したい場合は、こちらをご覧ください。 このサマリー情報は、世界各地の統計情報を用いて日次で更新されています。このWebページのこれ以降では、各種レポートからの重要な洞察をスクリーンショットでご紹介します。実際のレポートでは、最新のデータに基づき、ご自身で対話操作しながら統計情報や分析結果を閲覧することができます。 地域別の詳細情報を確認したい場合や、対話操作型レポート全体を探索したい場合は、サマリー情報ページの右上隅にある「Full Report」ボタンをクリックすると、完全なダッシュボードを起動できます。 最初に表示されるダッシュボード・ビュー([Status]タブ)では、日次で更新されるデータに基づき、COVID-19の感染拡大の概況を簡単に確認できます。具体的には、新たに確認された感染者数、回復者数、死亡者数などを地域別にフィルタリングして閲覧することができます。 図1: COVID-19の感染拡大の概況。新たに確認された感染者数、回復者数、死亡者数などを地域別にフィルタリングして閲覧することができます。 レポートの[Locations]タブ(下の図2)では、 全世界および特定国の新型コロナウイルス関連データを確認できます。 図2:[Locations]タブでは、全世界および特定国の新型コロナウイルス関連データを確認できます。 特定国のデータを見るには、左上のフィールドに国名を入力します(下の図3)。 図3: 国名を入力すると、その国の詳細情報だけに集中することができます。 新型コロナウイルスの最初の感染者が中国で報告されてから既に何週間も経過しており、感染拡大は世界各地へと広がっています。私たちは、Esri社のGISマッピング・ソフトウェアから取得した地理空間データのレイヤーを追加することで、対話操作型の画面を用いて、中国とその他の国々にまたがる形で新型コロナウイルスの拡散状況を探索できるようにしました。 [Spread]タブでは、SAS Visual Analyticsの時系列アニメーション機能(下の図4)を用いて、ウイルスが世界全体に拡散していく様子を見ることができます。アニメーションを再生すると、中国国内での拡散状況や、世界全体の拡散状況および深刻度を確認できます。 図4: 時系列アニメーションで、ウイルスが世界全体に拡散していく様子を見ることができます。 [Trend Analysis]タブでは、様々なビジュアライゼーションを切り替えながら、COVID-19の感染拡大に関連したその他のデータの傾向を見ることができます(下の図5)。 図5: 日次の感染者数/死亡者数のトレンド分析 [Epidemiological Analysis]タブでは、罹患率および有病率を見ることができます。 図6: 10万人あたりのCOVID-19感染者数を国ごとに見る 図7: 期間有病率を国または地域ごとに見る [Collective Insights]タブは、全世界のまたは国ごとの感染拡大状況を1つの表にまとめています(下の図8)。

Analytics
SAS Enterprise GuideのカスタムタスクでPythonコード実行

SAS Enterprise Guide(EG)で簡単にPythonなどオープンソース・コードを実行できる方法を紹介します。 1.オープンソースコード実行用タスク(OST)の概要 2.事前設定 3.EGでの使用方法 4.AMOでの使用方法   1.オープンソースコード実行用タスク(OST)の概要 SAS Enterprise Guide(EG)は直感的なユーザインタフェース上で、マウスの簡単操作で、透過的にデータにアクセスし、様々な分析用タスクを活用し、データの準備から加工・変換、集計・分析、レポート作成に至る一連の作業をグラフィカルなフロー図として描き、実行することができるツールです。 一方、多くの組織ではPython, Rなど様々なオープンソースのスキルを持つデータサイエンティストが混在することが多く、こうしたオープンソース(OS)とのコラボレーションも必要になってきています。従来、EGとPythonなどOSと連携する際には、データでのやりとりが必要でした。例えば、EGで作成したデータをエクスポートし、OSユーザに渡して処理してもらうか、その逆か、になります。 都度このようにデータをやりとりするには手間と時間がかかりますし、データやPythonコードなどの管理も課題となります。こうした課題を解決する手段の一つとして、カスタムタスクを活用することができます。 カスタムタスク:EGには、数多くのタスク(データ準備用タスク、分析用タスク、など)が実装されています。このタスクは顧客ニーズに応じてカスタムで作成し、活用することができるようになっています。SASのサポートサイトからカスタムタスクを作成するためのテンプレートをダウンロードし、使用することができるようになっています。カスタムタスクの作成方法の詳細に関しては、次回のブログでご紹介します。 オープンソースコード実行用タスク(OST):OSTはOpenSourceTaskの略で、EGカスタムタスクのテンプレートに基づいて開発されています。OSTを使用することで、EG上で簡単にPythonコードを実行することができ、GUIベースの簡単マウス操作でPythonコードを再利用し、EG上で、標準実装のタスクとOSTを活用し、連携してアナリティクス作業を完結することができます。これによって、様々異なる分析スキル(GUIユーザー、SAS言語ユーザー、OS言語ユーザー)を連携し、有効活用することが可能となります。また、この分析処理は自動化することも可能です。  次にPythonコード実行用のOSTの使用方法を紹介します。EGのバージョンは8.2を使用したものです。   2.事前設定 ・Python環境の確認 まずSAS9サーバ側にPython環境がインストールされていることを確認してください。Pythonの環境がない場合は、PythonまたAnacondaなどPythonのruntimeをインストールする必要があります。 ・SAS9サーバーの設定 SAS9のSMC(SAS Management Console)を起動し、以下の画面を開きます。 「Environment Management」>「Server Manager」> 「SASApp」>「SASApp Logical Workspace Server」>「SASApp - Workspace」を右クリックし、「Properties」をクリックし 以下の設定でXCMDの実行を許可します。 「Options」タブ >「Advanced Options」>「Launch Properties」で「Allow XCMD」をチェックし、「OK」をクリックします。 設定を有効するにはシステムのObject Spawnerのサービスを再起動する必要があります。 ・OSTパッケージの取り込み OSTパッケージをダウンロードし、展開したCustomフォルダをEG(またAMO)のインストール先(以下画面ショットのロケーション)にコピーします。そのほか、臨時ファイル保存と作業用フォルダC:/Customを作成し、準備作業が完了です。 これで、OSTが使用できる状態になります。   3.EG上の使用方法 まず EGを起動し、処理対象データを選択します。今回はSASHELPライブラリ内にある「CLASS」を選びます。データを選択した状態で、タスクリストのSAS

1 20 21 22 23 24 54