近年、クラウドベンダーが提供するサービスが充実し、より多くのクラウドサービスが誕生してきました。しかし、一つのニーズに対して、複数のサービスを選択できるようになってきているものの、どのサービスが最適なのかを判断することは逆に難しくなってきていると考えられます。最近、SASを活用しているお客様から、「Microsoft社のAzureを使っていますが、これからクラウドにデータを移行して、安くて使い勝手なストレージサービスは何かありませんか」と聞かれたこともありました。 このブログシリーズでは、クラウド上のストレージサービスの一種であるMicrosoft Azure CloudのBlobストレージサービスの概要を紹介した上で、SAS ViyaからそのBlock Blobストレージに格納されているデータへアクセスする方法をご紹介させていただきます。 このブログシリーズは合計2回です。今回のブログでは、まず特定の一つファイルへのアクセス方法をご紹介します。次回のブログでは、より汎用的なアクセス方法、つまり、Blobストレージを一つのファイルシステムとして、SASサーバと連携し、一度に複数のデータにアクセスする方法をご紹介します。ぜひ最後まで、お付き合いいただければと思います。 第1回:https://blogs.sas.com/content/sasjapan/2020/10/01/sas-azure-blob-1/ 第2回:https://blogs.sas.com/content/sasjapan/2020/10/05/sas-azure-blob-2/ Blobストレージとは何か? まず、Blobストレージとは何かを紹介する前に、Blobって何でしょうか、から始めます。聞きなれない方もいらっしゃるかと思いますので。実際、BlobはBinary Large OBjectの略称です。本来はデータベースで用いられているデータタイプの種類で、メディアファイルや、圧縮ファイル、実行ファイルなどのデータを格納する時に使用されているものです。 では、Blobストレージとは何か?Microsoft社の紹介では、こう書かれています。 「Blob Storage は、テキスト・データやバイナリ・データなどの大量の非構造化データを格納するために最適化されています。非構造化データとは、特定のデータ・モデルや定義に従っていないデータであり、テキスト・データやバイナリ・データなどがあります。」 少し言い換えますと、Blobストレージは、ログファイルから、画像ファイルやビデオ・オーディオファイルまで格納できます。もちろん、通常目的でのデータ利用にも対応しているため、データの格納場所として使っても問題ありません。(Microsoft Azureの資料によりますと、4.75 TiBまで可能です。) なぜBlobストレージなのか 前文で少し申し上げたSASのお客様から頂いた質問の中で、「安くて使い勝手の良いストレージサービスは」と聞かれた事に関して、安いというポイントに関しては、下記の図をご覧ください。 ソース:https://azure.microsoft.com/ja-jp/pricing/details/storage/(2020/09/09アクセス時点) ご覧のように、ブロックBlobのストレージサービスは、安価で、かつ非構造化データに対応し、一般目的でのデータストレージとして、非常に向いています。 もちろん、ビジネスケースによっては、様々考慮すべき点(既存環境にHadoop環境があるかどうか、スループット、ビッグデータ等々)もありますが、今回は、主にこのブロックBlobストレージを例として紹介します。 SAS ViyaからBlobストレージにアクセスする方法 ここからは、SAS ViyaからBlobストレージにアクセスする方法をご紹介します。下記の方法を使うために、前提条件として、SAS ViyaサーバとBlobストレージがあるAzure間でネットワーク通信ができる必要がありますので、ネットワークセキュリティ条件を確認してから、下記の方法をお試しください。 方法①: SASのPROC HTTPプロシージャを使って、Blobストレージ内の特定の一つのデータにアクセスする方法。 Microsoft Azure側: 1.まず、Azureポータルに入り、「すべてのリソース」をクリックします。(図1-1) 図1-1 2.その配下で、利用されているストレージアカウントをクリックします。(図1-2) 図1-2 3.次に、表示された左側のメニューの中で、「Blob Service」配下のコンテナーをクリックします。(図1-3) 図1-3 *豆知識: ここで、いきなりコンテナーが出てくることに関して、混乱している方もいらっしゃるかもしれないので、少し解説します。こちらのコンテナーとは、Dockerコンテナーの意味ではありません。Blobストレージサービス配下のデータ格納用のサブ階層のことであり、フォルダーのようなものとイメージしてください。(図1-4) 図1-4 4.上記図1-3のように、その中に一つ「folderfirst」というコンテナーが存在しており、それをクリックすると、中に保管されているデータが見えるようになります。(図1-5) 図1-5 5.ここからが重要なポイントです。特定のデータ、例えば、「sas7bdat」データにSAS Viyaからアクセスしたい場合は、該当ファイルの名前をクリックして、下記のようなプロパティ情報を表示させます。(図1-6) 図1-6
Japanese
SAS Japanでは”Data for Good”を目指す学生コミュニティ「SAS Japan Student Data for Good community」を運営しています。このコミュニティは、Data For Goodを題材にデータサイエンスの一連の流れを体験する場として設立されました。今回紹介する勉強会も、その活動の一環です。詳しくは「Data for Goodを通じて"本物の"データサイエンティストになろう!」の記事をご覧ください。活動の様子についてはFacebookにて共有していますので、そちらもご参考にしてください。 五回目の勉強会では海洋汚染をテーマに、Data for Goodの活用事例から課題設定の部分を学びました。また、今回は初めてオンラインでの開催をしましたので、その様子もお伝えしたいと思います。 海洋保護に向けたD4Gの取り組み/マイクロプラスチック問題 SDGsの一つに“海の豊かさを守ろう(LIFE BELOW WATER)”という項目があります。日本でも2020年7月からスーパーやコンビニエンスストアにてレジ袋の有料化が始まりました。その背景の一つにはマイクロプラスチック問題があります。コミュニティのメンバーがこのテーマでData for Goodに取り組んでいるので、今回はその活動について共有しました。 マイクロプラスチック問題とは、特に海洋環境において微小なプラスチック粒子が海洋生物に対し悪影響を及ぼしてしまうことです。また生物濃縮により海洋生物だけでなく、人間にも間接的に影響があります。レジ袋の有料化や製品へのスクラブ等使用の規制の動きが世界的に進んでいます。環境保全にいち早く取り組んでいる海外の先進諸国のデータをもとに、今後日本にも導入するべき取り組み、推進していくべき取り組みを明確にしようというのが今回の活動目的になります。 今回の勉強会の活動紹介では、この問題の現状と最新の研究、既に行われている取り組みの効果検証について取り上げました。意思決定の場に置いて、ある施策が目的とするものに対して効果があるのかどうかは非常に重要です。特にマイクロプラスチック問題のように規模が大きい問題に対してはその効果の大きさだけでなく、費用対効果にも注目しなければなりません。しかし、効果の推定には比較実験が必要になりますが多くの場合それは存在しないため、自然実験という考え方を用いてアプローチしていきます。 詳細については今後このブログの中でご紹介していきます。 海洋プラスチック汚染問題をデータで解決する 今回は、コミュニティーメンバーがテーマとして活動している「海洋汚染」に関連して、オランダに拠点を置く非営利のエンジニアリング環境団体 The Ocean Cleanupの事例を紹介しました。 The Ocean Cleanupは、太平洋で無人のゴミ回収装置であるクリーンアップシステムを開発しています。その運用においてある課題が浮かび上がりました。太平洋には多くのプラスチックが集まっているとされる「太平洋ゴミベルト」と呼ばれるエリアがありますが、その範囲は非常に広大かつ陸地から遙か遠くにあります。システムを運用する費用を考慮して、効率的にゴミを回収するにはどうすればよいでしょうか。この課題に対して、The Ocean Cleanupではビッグデータを用いて太平洋ゴミベルトの可視化を行いました。 調査団はこれまでの海洋研究の知見とともに、独自に大規模な調査を行いました。太平洋ゴミベルトのサイズ・位置・プラスチックの量・プラスチックの分布と4つの可視化の観点などから進められてきました。 プラスチック汚染は複雑で大規模な問題であるため、包括的で大掛かりな解決策が必要となります。そのため、データサイエンスの活用によって、問題を理解し効率よく解決するための知見が得られます。クリーンアップシステムでは、監視カメラや衛星との交信による位置情報から実際のシステムの動きや回収度を確かめることができます。ビックデータによる分析結果だけでなく、実際のパフォーマンスデータから得られた知見からより良いシステムの構築が現在も行われ続けています。 以上の話を踏まえて、最後に参加者同士でディスカッションを行いました。自分たちの生活と繋げて考えたり、事例の中で興味深かった点についてお互いに話すことが出来ました。また、海洋保護をテーマに今後活動していく上で考えるべき点についても触れながら議論を進められ、有意義な時間になりました。 今回は初めてのオンライン開催でしたが、オンラインであることの良さを活かして定期的に勉強会を企画するとともに、次回から更に質の高い勉強会をつくっていきたいと思います! コミュニティメンバー募集中! SAS Japan Student Data for Good
SASの一つの顔は、アナリティクスで営利目的の意思決定を支援 筆者は、SAS社員として、20年以上に渡りアナリティクスおよびAIで企業・組織を支援してきました。 金融機関における、リスク管理や債権回収の最適化 通信業における、顧客LTV最大化、ネットワーク最適化やマーケティング活動の最適化 製造業における、需要予測、在庫最適化、製造品質の向上や調達最適化 流通・小売業における、需要予測やサプライチェーン最適化 運輸業における、輸送最適化や料金最適化 ライフサイエンス・製薬企業における、業務の最適化 官公庁における、市民サービス向上のための不正検知 など、様々な業種・業務においてアナリティクスの適用によるお客様のビジネス課題の解決に携わってきました。営利目的(ここでは市民サービスの向上も含めることにします)の企業・組織におけるアナリティクスの活用目的は主に以下の3つに集約されます。 収益(売り上げ)の増大 コストの低減 リスク管理 アナリティクスは、いわゆる「データ分析」を手段とし、過去起きたことを把握して問題を定義し、次に将来を予測し、様々な選択肢の中から最適な予測に基づいて意思決定をしていくことになりますが、その過程の中で、起きてほしい事象を予測して促進したり、起きてほしくない事象を予測して防いだり、その予測のばらつきを管理したりということを行っていきます。 このような営利目的でのアナリティクスの活用はSASという会社が誕生した40年以上前から行われており、基本的な活用フレームワークは変わっていません。IT技術の進化によって、利用可能なデータの種類や大きさが、増えてきただけにすぎないと言えます。例えば、昨今のAIブームの代表格であるディープラーニングですが、ディープラーニングという処理方式の進化と、GPUという処理機械の進化によって、非構造化データをより良く構造化しているものであり、もちろんモデリング時のパラメータ推定値は何十億倍にはなっていますが、モデリングのための1データソースにすぎません。もう少しするとディープラーニングも使いやすくなり、他の手法同様、それを使いこなすあるいは手法を発展させることに時間を費やすフェーズから、(中身を気にせず)使いこなせてあたりまえの時代になるのではないでしょうか。 SASのもう一つの顔、そして、SAS社員としての誇り、Data for Goodへのアナリティクスの適用 前置きが長くなりましたが、SAS社員としてアナリティクスに携わってきた中で幸運だったのは、データの管理、統計解析、機械学習、AI技術と、それを生かすためのアプリケーション化、そのためのツール、学習方法や、ビジネス価値を創出するための方法論や無数の事例に日常的に囲まれていたことだと思います。それにより、それら手段や適用可能性そのものを学習したり模索することではなく、その先の「どんな価値創出を成すか?」「様々な問題がある中で優先順位の高い解くべき問題はなにか?」という観点に時間というリソースを費やすことができていることだと思います。そのような日常の仕事環境においては、アナリティクスの活用を営利目的だけではなく、非営利目的の社会課題の解決に役立てるというのは企業の社会的責任を果たす観点においても必然であり、Data for Goodの取り組みとしてSAS社がユニークに貢献できることであり、SAS社員として誇れるところだと考えています。 最終的に成果を左右するのは「データ」 そして、もう一つの真実に我々は常に直面します。クラウド・テクノロジー、機械学習、ディープラーニングなどの処理テクノロジーがどんなに進歩しようともアナリティクス/AIによって得られる成果を左右するのは「データ」です。どのようなデータから学習するかによって結果は決まってきます。 IoT技術で収集したセンサーデータは知りたい「モノ」の真実を表しているだろうか? 学習データに付与されたラベル情報は正確だろうか? 学習データは目的を達成するために必要な集合だろうか? そのデータは顧客の心理や従業員の心理をどこまで忠実に表しているだろうか? 特に、Data for Goodのチャレンジはまさにそのデータ収集からスタートします。ほとんどの場合、データは目的に対して収集する必要があります。そして、下記の取り組みのうち2つはまさに、我々一人一人が参加できる、市民によるデータサイエンス活動として、AI/アナリティクスの心臓部分であるデータをクラウドソーシングによって作り上げるプロジェクトです。 Data for Good: 人間社会に大きな影響を及ぼすミツバチの社会をより良くする 概要はこちらのプレスリリース「SAS、高度なアナリティクスと機械学習を通じて健康なミツバチの個体数を増大(日本語)」をご参照ください。 ミツバチは、人間の食糧に直接用いられる植物種全体の75%近くに関して受粉を行っていますが、ミツバチのコロニーの数は減少しており、人類の食糧供給の壊滅的な損失につながる可能性があります。この取り組みでは、IoT, 機械学習, AI技術, ビジュアライゼーションなどSAS のテクノロジーを活用し、ミツバチの個体数の保全/保護する様々なプロジェクトを推進しています。この取り組みは以下の3つのプロジェクトから成り立っています。 ミツバチの群れの健康を非侵襲的に監視 SASのIoT部門の研究者は、SAS Event Stream ProcessingおよびSAS Viyaソフトウェアで提供されているデジタル信号処理ツールと機械学習アルゴリズムを用いて、ミツバチの巣箱の状態をリアルタイムで非侵襲的に追跡するために、生物音響監視システムを開発しています。このシステムによって養蜂家は、コロニーの失敗につながりかねない巣箱の問題を効果的に理解し、予測できるようになります。 関連ページ:5 ways to measure
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはLee Ellen Harmerによって執筆されました。元記事はこちらです(英語)。 ハチを減少から救うために本当に必要なこととはなんでしょうか。 ハチの減少は目新しいニュースではありません。これまでにも、メディアによって農作業の工程や農薬がハチに影響を与えていることが取り上げられています。また、スタートアップ企業がハチの個体数を再び立て直そうと取り組んできた例があります。しかし依然として、ハチは世界的に重大な減少の一途を辿っているのです。 ハチを守るためには、養蜂家らが彼ら自身で出来る以上のことが必要とされています。養蜂家は自身の所有するハチやの巣箱の状態について熟知していますが、より大きな環境におけるハチについての知識は持ち合わせていません。そこは、市民科学者や一般市民らが力を発揮できるところです。 今日のハチの個体数の状態について理解し、減少を食い止めるためには、まず初めに私達のまわりにいるハチの実態を明らかにせねばなりません。ハチの保護を可能にするためには、ハチを“数える”ことが必要なのです。ハチの世界的な個体数を計数することは、地球上のハチの未来を守る第一歩です。ハチの計数作業によって集められたデータによって、ハチの種属ごとの生息地、そしてその生息地にハチがどのように分布しているのかといった重要な情報が明らかになります。SASはアパラチアン州立大学と共同でその取り組みを進めています。 ハチの保護に不可欠なテクノロジー 花粉媒介者であるハチとその環境を守るためには、私達はもはや伝統的な手法だけに頼ることはできません。その代わりとして使用されるのが、テクノロジーなのです。データの収集は始めの一歩でありますが、そのデータを可視化することで、養蜂家と研究者に迫り来る脅威を最も早く警告することができます。この指示器は、ハチに関するコミュニティの意思決定者に、これまで不可能と思われていた洞察を与えることができます。 その技術を実現するためのデータを集めるには、皆さんの助けが必要です。World Bee Countアプリケーションを通じて、人々はハチの計数に貢献し、周囲の環境にいるハチの写真を送信することができます。 “World Bee Countによって、私達はクラウドソーシングでハチのデータを集めることができます。それを使って、地球上のミツバチの個体数を可視化し、今日のミツバチに関する最大級の有益なデータセットを作り上げることができるのです。” アパラチアン大学 分析研究・教育センター理事 Joseph Cazier教授 SASは世界の最も逼迫した問題を解決することに意欲的であり、ハチを守ることも無視することはできない問題であると考えています。これまで、私たちは分析によってハチの健康を促進させようと試み、そしてData for Goodへ情熱を注いできました。つまりこのパートナーシップは、好奇心と探究心を持って世界的な問題を解決しようとするSASの本質的な精神を反映しているのです。 アナリティクスをすべての人に SASは世界花粉媒介者マップを作成しました。これは、World Bee Countアプリを用いて”ハチを数える“ことで、市民科学者や養蜂家からクラウドソーシングで集められたデータを視覚化したものです。このプロジェクトの後の段階では、研究者は作物の収穫高や降水量、その他ハチの健康に関係する重要なデータポイントを重ね合わせます。そうして、私達の世界でもっとも重要な花粉媒介者について、より包括的な理解を集約させます。 多くの人がデータを追加し、相関関係が導き出されるような豊富なデータセットを作成することで、可視化によるアナリティクスが実現できます。ハチのデータの単純な可視化から始まる取り組みは、ハチの個体数やその減少に繋がる要因の研究、そしてどのようにして私達がハチ全体の健康を促進させることが可能かといったような研究に対して、無限の機会を提供できるでしょう。 アプリをダウンロードして始めよう アプリケーションで写真を送信することは小さなことですが、ハチを保護するための活動として重要な役割を果たします。ハチは蜂蜜という素晴らしい自然の恵みを与え、私達に彩り豊かな朝の食卓を提供すると共に、私達の健康を促進させてくれます。5月20日は世界蜂の日として制定されています。beescount.orgからアプリをダウンロードして蜂の日を祝うと共に、見つけたハチの数をカウントしてみませんか? 今月だけでなく6月や7月、そしてその先のハチ月を超えてこの活動を続けていけたらいいですね!
学生の皆さん、おうち時間をどのようにお過ごしでしょうか。「自宅にいる時間が多くなったけど何を勉強したらいいかわからない」「この機会にSASの認定資格を取ってみたいから勉強の進め方を知りたい」と考えている方に、本記事ではSAS Academic Hubを紹介したいと思います。 SAS Academic Hubには、前回のブログで紹介したSAS Learning Subscriptionに含まれているe-learningやSAS認定資格の申し込みページが集められていて、自分の勉強目的からコースを選択してステップを進めることで知識を習得できたりSASの認定資格の学習ができたりする、学生と教員向けのポータルです。 それでは、SAS Academic Hubについて、学生向けに「どんな学習コースが提供されているのか」「使用するときのポイント」「学生にとってのメリット」を紹介します。 1.学習コースを選択しましょう SAS Academic Hubには合計8個の学習コースがあり、そのうち6個のコースでSASの認定資格のために活用することができるようになっています。ここから自分の興味にあうコースを選択してください。 コースを選択すると、次のページは4つのStepに分かれています。 Step1: ソフトウェアへのアクセスについて Step2: 学習 Step3: 試験対策の紹介と模擬問題 Step4: 実際の認定試験への案内 各ステップにはソフトウェアにアクセスできるウェブページや教材、e-learning、ビデオなどが割り振られています。またそれらにはMore informationが付いていて、そのページに何があるかを簡潔に紹介しています。 2.学習コースを進めましょう 今回は、SAS言語を初めて使う人向けで、プログラミングをする際に意識しておきたいプロセスなどを学習することができるGetting Started with SAS/ SAS Certified Specialist: Base Programming Using SASを例に、実際の学習コースを紹介します。 Step1:ソフトウェアへのアクセス この学習コースで必要なソフトウェアが提供されているページを紹介しています。このステップでそのページからソフトウェアにアクセスすることで、次のステップで学習する内容を自分でも演習することができます。 Step2: 学習 実際にLessonを受講します。ここでは、前回のブログで紹介したSAS Programing1:EssentialがLessonに割り振られています。Lessonの詳しい内容は前回のブログで紹介していますので、是非参考にしてください。 Step3: 試験対策の紹介と模擬問題 受講した学習内容が試験内容に含まれているSASの認定資格の試験対策を紹介しています。模擬問題も提供されています。 Step4:
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはMichael Gillilandによって執筆されました。元記事はこちらです(英語)。 カオス状況下での予測/フォーキャスティング Institute of Business Forecasting(IBF)は、「世界的パンデミックというカオス状況下での予測と計画」に関して80分間のバーチャル・タウンホールを開催しました。現在、それを録画したオンデマンド・ビデオが公開されており、一見の価値が大いにあります。そこには、以下のような経験豊富な識者陣による堅実かつ実践的なガイダンスが満載です。 エリック・ウィルソン(Eric Wilson)氏: IBFのソートリーダーシップ担当ディレクター(司会者) ダスティン・ディール(Dustin Deal)氏: 北米ビジネス・オペレーショズ担当ディレクター、Lenovo社 パトリック・バウアー(Patrick Bower)氏: グローバル・サプライチェーン・プランニング&カスタマー・サービス担当シニア・ディレクター、Combe社 アンドリュー・シュナイダー(Andrew Schneider)氏: サプライチェーン担当グローバル需要マネージャー、Medtronic社 ジョン・ヘルリーゲル(John Hellriegel)氏: IBFのシニアアドバイザーおよびファシリテーター 以下に、私が各パネリストから得た重要な知見をまとめます。 ジョン・ヘルリーゲル氏: 今現在、マクロ予測は相当困難であり、ミクロ予測(製品レベルに至るまで)は更に困難である。 平時状況を超えるレベルで多数の介入要因(例:政府による刺激策、原油価格の下落など)が存在しており、それら全てが不確実性と複雑性を増大させている。 高い予測精度が期待できないことから、需要計画担当者は企業における「不確実性の理解」と「適切な意思決定の実現」を支援することにフォーカスするべきである。 最も役立つのは、明確な前提条件に基づくシンプルなモデルである可能性が高い(例えば、個々の品目を調整しようと多大な労力を費やすのではなく、「3ヶ月間、各カテゴリーで25%の削減を実施する」など)。 ジャスティン・ディール氏: 中国では生産が回復しつつあるが、物流の遅延は依然として存在する。 マクロ/ミクロの両レベルでデータを収集するべき。これには、チャネルの在庫とセルスルー(実販売数)も含まれる。 チャネル在庫が低水準な場所や、即座の補充が必要な場所を把握するべき。 プランニング(例:S&OP)をもっと頻繁に実行するべき。 アンドリュー・シュナイダー氏: 今現在は、典型的な需要計画を行うのではなく、代わりに、「需要衛生サービス」(データ・クレンジング、仕入数/実売数の比較・把握など)にフォーカスするべき。 物事が平時状況に回復するまでの間は、需要の統御(コントロール)および形成(シェイピング)にフォーカスするべき。 変動係数を活用して、どの製品がCOVID-19(新型コロナウイルス感染症)の大規模な感染拡大のインパクトを最も受けるのかを特定するべき。そして、そのインパクトに従って製品をセグメント化し、リスクベースのABC分析を考慮する。 「データの観察・収集という “受動的” な取り組み」と「欠品状況から “入手可能な代替製品” への需要推進という “能動的” な取り組み」とを区別するべき。 需要シグナルの品質を評価するべき。POS(販売時点情報管理)システムを導入済みであれば申し分ないが、未導入の場合でも、顧客の真のニーズの解明に努めるべき(注文数/注文減少数/注文残数などの状況を踏まえた上で)。 組織内のデータだけでなく、外部の追加的なデータソースの活用も試みるべき。そこから何が分かるか? 需要の確率分布を考慮するべき。ただし、過剰な取り組みは禁物。「平時状況に回復した後、組織がトラブルに直面するような事態」を招いてはならない。 今現在は、精度についてはそれほど心配する必要はない。代わりに、様々なアプローチの予測付加価値(FVA)を検討するべき。
新型コロナウイルスの感染拡大により私たちの日常生活は大きく変化しており、自宅で過ごす時間も増えています。この機に「新しく統計学やプログラミングを勉強し始めたい!」、「SASの認定資格を取りたい」と考えている方も少なくはないのでしょうか。コロナウイルスの影響により在宅を余儀なくされた皆さんに、SASはさまざまなオンライン・コースを含むSAS®トレーニング・リソースを30日間無料で提供しています。(プレスリリース) 本記事では、提供されているオプションの中からSAS Learning Subscriptionの紹介をします。これはVirtual Learning Environment のなかで提供されているSASのe-learningが集まったポータルです。 1.SAS Learning Subscriptionに登録しましょう 最初にSAS Learning Subscriptionの登録手順です。こちらのページにアクセスして、以下の手順で登録してください。 SAS Learning Subscription 登録手順 from SAS Institute Japan 2.Learning Pathを選択しましょう SAS Learning Subscriptionにはオンラインで受講可能なLearning Pathが複数あり、またテーマごとにショートビデオや学習コースが設置されています。本コースの言語は英語で、コース内動画は英語字幕に対応しています。今回は、Learning Pathの中からSAS Programingを実際に学びながらSAS Learning Subscriptionの紹介をしていきます。 先ほどのSAS Learning Subscriptionへの登録を行うと、Virtual Learning Environmentへ移動します。画面左上をクリックして展開し、SAS Learning Subscriptionを選択してください。 ページ中央に上図のようなLearning Pathの一覧が載っています。ここで、自分の興味にあうLearning Pathを選択してください。学習コースにはそれぞれショートムービーやcourse notes、リンクなどが掲載されています。基礎からその利用まで順を追って説明がされるため、プログラミングなどに自信がない方でも取り組みやすい点が特徴です。 3.コースを受講して学習を進めましょう それではSAS Learning Subscriptionの学習コースの中からSAS Programing1: Essentialsを実際に進めてみましょう。以下のスライドで、最初のLessonであるCourse
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはRick Wicklinによって執筆されました。元記事はこちらです(英語)。 2020年における新型コロナウイルスの世界的流行のようなエピデミック状況下では、各国の感染確認者の累計数を示すグラフがメディアによって頻繁に示されます。多くの場合、これらのグラフは縦軸に対数スケール(対数目盛)を使います。このタイプのグラフにおける直線は、新たなケースが指数関数的ペースで急増していることを示します。直線の勾配はケースがどれほど急速に倍加するかの程度を示し、急勾配の直線ほど倍加時間が短いことを示します。ここでの「倍加時間」とは、「関連状況が何も変わらないと仮定した場合に、累計の感染確認者数が倍増するまでに要する時間の長さ」のことです。 本稿では、直近のデータを用いて倍加時間を推計する一つの方法を紹介します。この手法は、線形回帰を用いて曲線の勾配(m)を推計し、その後、倍加時間を log(2) / m として推計します。 本稿で使用しているデータは、2020年3月3日~3月27日の間の、4つの国(イタリア、米国、カナダ、韓国)における新型コロナウイルス感染症(以下、COVID-19)の感染確認者の累計数です。読者の皆さんは、本稿で使用しているデータとSASプログラムをダウンロードすることができます。 累計感染者数の対数スケール・ビジュアライゼーション このデータセットには4つの変数が含まれています。 変数Region: 国を示します。 変数Day: 2020年3月3日からの経過日数を示します。 変数Cumul: COVID-19の感染確認者の累計数を示します。 変数Log10Cumul: 感染確認累計数の「10を底とする対数」(=常用対数)を示します。SASでは、LOG10関数を用いて常用対数を計算することができます。 これらのデータをビジュアル化する目的には、PROC SGPLOTを使用できます。下図のグラフは感染確認者の総数をプロットしていますが、総数の縦軸に常用対数を指定するために「type=LOG」と「logbase=10」というオプションを使用しています。 title "Cumulative Counts (log scale)"; proc sgplot data=Virus; where Cumul > 0; series x=Day y=Cumul / group=Region curvelabel; xaxis grid; yaxis type=LOG logbase=10 grid values=(100 500 1000
この記事は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万㎢を超える熱帯雨林を短期間で調査し、衛星画像が更新されるたびに調査を繰り返すことが出来ます。
商品やサービスを販売している企業においては、過剰在庫を防止したり、欠品による機会損失を防止し、収益を最大化するために需要予測が行われています。しかし、実際のビジネスの現場では、需要や売れ行きの傾向が異なる品目が混在するようなケースでは、その予測に多くの手間と時間がかかってしまうなどのいくつかの課題があります。 例えば、通年売れる品目や動きが遅い品目、新規品目、季節に影響を受ける品目などがあり、これらは同じ時系列モデルで処理できるわけではありません。このような課題に対する一つの解決策としては、パターンの近い商品をサブセグメントに小分けし、そのセグメントに応じて予測戦略を適用しわけることで、精度を向上します。つまり、時系列データの特徴を自動に分析して需要のパターンごとにデータを分類し、需要パターンごとに予測作業をすることです。この需要パターンの自動分類と予測については、すでにブログでご紹介しているので、こちら「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
この記事は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)。
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
アナリティクス・プラットフォームは、OSSとの機能的な連携にとどまらず、OSS利用環境そのものの価値を高めるプラットフォームへと進化 昨今、40年以上にわたりSASが提供続けてきたこのAI/アナリティクスが、時代背景とテクノロジーの進化によって、特定のAI/アナリティクス先進企業だけの道具から、ほとんどすべての企業にとって活用可能な-多くの場合競争に勝つためには活用しなければならない-道具になってきました。 従来より、SASはオペレーティング・システム、データソースや、システム・アーキテクチャなど特定のS/Wやテクノロジーに依存せず、どのような企業のIT環境にたいしても柔軟に適用可能なアーキテクチャでしたが、世の中のテクノロジーの変化に合わせ、その柔軟性をより高めるために、SAS Viyaを提供することになりました。 そして、SASはSAS Viyaのオープンなアーキテクチャにより、OSSで構成されたアナリティクス環境、OSSを利用するアナリティクス組織に、全く新しい俊敏性と信頼性の両方を兼ね備えたアナリティクス基盤を提供し、より多くの試行錯誤とリアルなビジネス価値の創出を可能とする環境を提供しています。 現在必要なのは、俊敏性と信頼性の両立 多くの企業が従来にも増してグローバルの競争にさらされています。不正・セキュリティ対策においてはより巧妙なスピードの速い攻撃に対応する必要があり、金融リスク業務はさらなる規制対応と同時によりプロアクティブな利益創出への転換をはじめており、顧客の購買行動はより多様化・リアルタイムな顧客経験が重要となり、モノのサービス化に代表されるようなビジネス・モデルの変革への急速な移行が求められ、製造品質はより速く、より品質の高いプロセスへの変革が要求されています。また、特に日本においては労働人口の不足により、たとえば製造プロセスやサプライチェーンの高度なレベルでの標準化と自動化、その他のビジネスプロセスにおいても様々なレベルでの意思決定を高精度に自動化する必要に迫られています。さらに、より付加価値の高いサービス提供のためのビジネス・モデル創出など、あらゆる場面でAI/アナリティクスの活用による、イノベーションが求められています。 変化の早い時代に必要な俊敏性 このような時代においてアナリティクス活用に求められる一つの側面は「俊敏性」です。本当に役に立つ洞察を得るためには、無数の試行錯誤・実験を繰り返す必要があります。アナリティクスにおいては、利用データの試行錯誤、利用アルゴリズムの試行錯誤、仮説検証の繰り返し、そのような試行錯誤・実験-それは場合によってはPOCと呼ばれることもありますが-によって結果的に得られた有用な洞察がイノベーションとなります。したがって、この試行錯誤・実験をより手軽に、迅速に行う手段が有用であり、それはソフトウェアの入手のしやすさや、最新の論文から技術的な手法に関する世の中の知の活用のしやすさなどの特徴のある、OSSの活用の一つの有用な活用形態となっています。 ここで一つ注意しなければならないのは、OSSの利用や関連論文の利用によって得られるものはビジネス上の洞察ではなく、あくまで手段としての技術テクニックの知識であるということです。ディープラーニングのようにあ「非構造化データを構造化する技術」であったり、「非常にスパースなデータからよりより推定を行うための技術」であったり。アナリティクスを活用してビジネス上の成果を得るためには、あくまで、そのような手段とは別に、まず初めにビジネス上の問題定義-デザインといってもいいでしょう-が重要です。これは従来からの世界では既知の視点です。これを忘れると、いわゆるPOC疲れなど、手段が目的化したプロジェクトに貴重なリソースを費やす結果となっていることは、ここ数年、市場でよく見られた光景です。 また、ビジネス上の洞察は常に「問い」に基づくものでありますが、ビジネスの営みの結果である「データ」に潜む「傾向」、すなわち「データに潜む洞察」、を瞬時に導き出す技術も出てきています。昨今「拡張アナリティクス」(AI Augmented Analytics)と呼ばれているものです。AIブームの中、AIを使いこなすこと-すなわちディープラーニングを使いこなすことであったり、予測モデルをいかに簡単に開発するか-そのものが目的化してきました。そのブームが落ち着きを見せ始め、ツールの中にAI技術が組み込まれ、ビジネスユーザーには本来不要であった「自動的に簡単にモデルを開発する」という仕事から、「自動的に洞察を得る」という本来すべきことに注力できるようになってきています。 洞察の獲得と得られた洞察をビジネスに適用するための信頼性 試行錯誤や実験において洞察を得るためには、闇雲に作業を繰り返すのではなく、過去の試行結果に基づいた試行錯誤を繰り返すというプロセスが必要となります。過去の実験はどのようなデータを利用したのか、そのデータはどのような文脈で取得されたのか、それをどのように加工・分析したのかというプロセスと、最終的な結果、このような情報を統制・管理したもとでの試行錯誤でなければ、試行錯誤の積み重ねによる洞察は得られません。つまり、昨今例えば、デジタルトランスフォーメーションのための専任部門によって無数に繰り返されるPOCについても、ガバナンスが必要となるということです。このように適切に統制されたPOC活動は仮にそのPOCからその時、有用な洞察が得られなかったとしても、貴重な資産として次のPOCに生かされるのです。 さらに、試行錯誤やデータの探索によって得られた得られた洞察を実際のビジネス上の価値-それは収益の向上、コストの削減、リスクの管理に大別されます-に変えるには、業務そのものの意思決定プロセス・アクションに落とし組むことが必要です。AI/アナリティクスをビジネス・プロセスとして運用するということは、アナリティクス・モデルによって意思決定を自動化することに他なりません。 また、企業・組織がビジネス・プロセスとしてそのような意思決定を回すためには、アナリティクス・モデルによる結果すなわち、ビジネス上のアクションの結果をモニターし評価する必要があり、市場の動向変化によるモデルの陳腐化に対応するためにモデルのパフォーマンスを管理をする必要があり、現在システムに組み込まれているモデル-これをチャンピオンモデルと言います-はなにかを管理する必要があり、さらには、望まない結果が生じた場合に-あるいはその逆の場合にも-結果に対する説明責任を果たすために、そのモデルの成り立ち-使用したデータ、データ加工のプロセス、モデリングのプロセスなど-を管理する必要があります。 俊敏性と信頼性を両立するSAS Viyaのガバナンス機能とは SAS Viyaでは使用するプログラミング言語を問わず以下のガバナンス機能を提供します。これにより、統制のとれたコード・アグノスティックなアナリティクス環境を実現します。 完全にオープンなI/Fによる民主化されたツールにより、どのようなスキルの方でも利用可能 SAS Viyaでは完全なコード・アグノスティック(データサイエンティストは自身が好きなプログラミング言語を利用可能)な世界を実現しており、データ加工、統計解析、機械学習、ディープラーニングなど各種のアナリティクス処理だけでなく、ユーザー管理、セキュリティ管理、システム管理、データ管理からモデル管理まで、全ての機能をOSSプログラミング言語であるPython, R, REST APIから利用可能です。 また、従来からあるSAS9においても、ほとんどのSASプロシジャをpythonから利用可能になっています。 もちろん、コーディングスキルを持たないビジネス・ユーザーはデータの準備、探索、モデリングまでシームレスに連携したグラフィカル・インターフェースによって市民データサイエンティストとしてアナリティクス・プロジェクトに貢献することが可能です。 OSSかどうかにかかわらず、データに基づいた洞察を価値に変えるためにのビジネス上でのオペレーショナライズを支援 AI/アナリティクスから実際のビジネス価値を創出するためには、問い(問題設定)、データの準備、データの探索、モデリング、意思決定プロセスの構築、業務オペレーションへの組み込み、意思決定(アクション)の結果のモニタリグ(レビュー)という一連のアナリティクス・ライフサイクルを、様々な組織の役割が強調して実現する必要があります。業務オペレーションへの組み込みには大きく分けて二つの形態があります。 バッチスケジューリングによるスコアリング処理 アプリケーションから呼び出されるリアルタイム・スコアリング処理 スコアリング処理 ここでいうスコアリングとは、昨今のAI・機械学習ブームの中、その研究領域で使用されている「推論」と同じものです。ビジネスの世界では、二十数年前からこの「スコアリング」という呼び方で実施されていました。顧客の購買確率や解約確率のスコアを出す、信用リスクのためのスコアを算出、などというようにです。 1.バッチスケジューリングによるスコアリング処理 スコアリングの仕組みにおいては、ほとんどのケースでシステムの安定性の観点も鑑み、こちらの方式が採用されます。後述のリアルタイム・スコアリングのケースにおいても、あらかじめスコアリングした結果を検索するだけで済むトランザクション処理がほとんどなためです。全顧客あるいは全セグメントに対してあらかじめスコアを算出したものを、業務システムに連携します。 このケースにおいてはのチャレンジは、開発したモデルをもとにプロダクション・レベルのバッチ処理を開発・テスト・スケジュール化・運用することです(デプロイメント・プロセスと呼びましょう)。モデルの入力データを作成する処理を作る必要があるからです。チャレンジのポイントは、そのデプロイメント・プロセスをユーザーサイドが行うのか、IT部門サイドが行うのか、はたまた、どのようにシームレスに強調するのかです。これは、モデルを組み込む業務プロセス、たとえば商品の数、サービスの数が多いケースにおいてすでに課題となっています。 約二十年前のデプロイメント・プロセスについての余談ですが、ある通信会社において顧客ごとの解約予兆スコアを算出していました。プロジェクトメンバーの一人であったお客様のIT部門の担当の方は、このスコアをもとに接客すべきと、すぐに、そのスコアテーブルのデータを販売店に持参し参考にしてもらうことで、大きな効果を生み出していました。今の時代とは、使用するデータと技術が異なるだけで、ビジネスプロセスにデプロイするという意味は全く何も変わってないことがお分かりいただけると思います。 2.アプリケーションから呼び出されるリアルタイム・スコアリング処理 リアルタイム・スコアリングにはさらに2種類の技術的視点があります。オンライン・トランザクション処理のタイプと、ストリーミング処理のタイプです。これら二つは日本語で言うと同じように「リアルタイム処理」と表現されることが多いですが、技術的な実現イメージはことなります。前者は、リクエスト/レスポンス型であり、その多くはフロントエンドのアプリケーションから、例えば顧客情報などの必要データがスコアリング・エンジンに渡され(リクエスト)、与信結果のスコアを返す(レスポンス)といういわゆるトランザクション処理になります。昨今のREST APIインターフェースなどはこの目的のものです。一方で後者は、データが絶え間なく流れてくるセンサーデータを処理するような場合で、ストリーミング型と言われます。この時のデータのことをイベントと言ったりもします。データ(イベント)がやってきた際に処理が実行されます。多くは、IoTという言葉が登場するシーンで求められる処理方式です。 どちらのタイプにせよ、このリアルタイム・スコアリングを組み込むシステムにモデルを組み込むときには、アプリケーションの開発プロセスを意識する必要があります。なぜなら、アプリケーション・ロジックの変更を伴なうモデル変更も多々あるからです。たとえば、与信システムにおいて新たな説明変数の入力を必要とするモデルの変更は、フロントアプリケーションのUIの変更を伴います。昨今、アプリケーションの開発・テスト・運用プロセス(DevOps)と、モデルの開発・テスト・運用プロセス(ModelOps)の融合が求められているのは、このためです。 2020のAI/アナリティクス・トレンド AIブームも少し落ち着きを取り戻し、モデルの開発という本来手段であることそのものが目的化してしまっている状況から、開発したモデルをビジネスプロセスにデプロイするという本来目指すべきことの重要性が、このAI市場にも浸透しつつあるようです。筆者は、様々なお客様のご支援を通して、またメディアの方々、リサーチファームの方々との情報交換を通して、2020年、以下の3つが引き続きトレンドとなるのではないかと考えています。 アナリティクスの民主化 AI技術のコモディティ化(隠ぺい化)し、「拡張アナリティクス」として進化 OSSプログラミングからGUIユーザーまでが共存可能なオープンなアナリティクスプラットフォーム 人材の活用と技術伝承のための「共有とコラボレーション」
概要 第一回の「CASサーバーとSWATパッケージ」に続き、第二回としてCASのアクションセットの活用やCASサーバーへのデータ読み込みなどの基本操作の方法について紹介します。 アクションセットについて CASサーバー上での分析作業を開始する前に、“アクションセット”という重要な概念に関して紹介します。 アクションセットは、関連する機能を実行するアクションの論理的なグループです。 SAS Viyaでは、関数のことを「アクション」、関連する関数のグループを「アクションセット」と呼んでいます。アクションでは、サーバーのセットアップに関する情報を返したり、データをロードしたり、高度な分析を実行するなど、さまざまな処理を実行できます。 アクションセットを使ってみましょう それでは、サンプルコードを使いながら、SAS Viyaのアクションセットでデータの読み込みからプロットまでの一連の操作を説明します。 ・データの読み込み CASサーバーにデータを読み込むには二つの方法があります。一つはread.csv()でcsvファイルをRデータフレームの形で読み込んだ上で、as.casTable()を使用する方法です。この関数はデータをRのデータフレームからCASテーブルにアップロードすることができます。今回の例では金融関連のサンプルデータhmeqを使って紹介します。 library("swat") conn <- CAS(server, port, username, password, protocol = "http") hmeq_data <- read.csv(“hmeq.csv”) hmeq_cas <- as.casTable(conn, hmeq) もう一つはcas.read.csv()を使って、ローカルからファイルを読み込んで、そのままCASサーバーにアップロードする方法です。仕組みとしては、一つ目の方法と大きくは変わりません。 hmeq_cas <- cas.read.csv(conn, hmeq) as.casTable()或いはcas.read.csv()からの出力はCASTableオブジェクトです。その中に、接続情報、作成されたテーブルの名前、テーブルが作成されたcaslib(CASライブラリ)、およびその他の情報が含まれます。 Rのattributes()関数を使えば中身を確認できます。 attributes(hmeq_cas) $conn CAS(hostname=server, port=8777, username=user, session=ca2ed63c-0945-204b-b4f3-8f6e82b133c0, protocol=http) $tname [1] "IRIS" $caslib [1] "CASUSER(user)"
SAS Japanでは昨年末より”Data for Good”を目指す学生コミュニティ「SAS Japan Student Data for Good Community」を運営しています。このコミュニティは、Data for Goodを題材にデータサイエンスの一連の流れを体験する場として設立されました。今回紹介する勉強会も、その活動の一環です。詳しくは「Data for Goodを通じて"本物の"データサイエンティストになろう!」の記事をご覧ください。 四回目の勉強会ではFood Bankをテーマに、データを活用した課題解決の手法を学びました。 Food Bank Food Bankとは、品質に問題がないにもかかわらず市場で流通出来なくなった食品を、福祉施設などに提供する活動のことです。この取り組みは食に困っている人の支援だけでなく、食品ロスの削減の一翼も担っています。しかしながら、Food Bankの高頻度の利用は自立を妨げることにも繋がりかねず、利用者への適切なサポートが多くのFood Bankで課題となっています。 イギリスのHuddersfieldを拠点とするFood BankのThe Welcome Centre(TWC)もその一つです。利用者のある一部は、日を追うごとにパントリーの訪問回数が増え、依存度を増していくことがTWC内で問題となっていました。とは言うものの、沢山の利用者がいるの中で「誰がFood Bankに依存しているのか」を調査するのは非常に労力のかかる作業です。そこでTWCはDatakind社と共同のプロジェクトを開始し、Analyticsを用いて効率的に依存性の高い人を発見し、優先的なサポートを施すことに挑戦しました。このプロジェクトでは、実際に Food Bankへの依存性を推定する機械学習モデルの構築 依存性の高い人にフラグを立て、優先して支援すべき利用者を可視化する ことに取り組んでいます。詳しい内容はDataKind社の事例紹介(英語)をご覧ください。 解くべき課題を設定する これらの事例を踏まえ、私たちのコミュニティが「日本のFood Bankの課題」に取り組む場合、解くべき課題は何か・解決するために誰のどのような意思決定が必要か・どのようなデータが必要か、ディスカッションを行いました。 議論を進めていく中で、さまざまな意見が飛び交いました。その中には、「寄付を受けた食料品を完璧に消費するために、新規パントリーを出店する際の食料品の需要予測が必要ではないか」や「限られたボランティアの中で食品配送ルートの改善が大きなインパクトをもたらすのではないか」といった意見が出ました。ディスカッションをすることで、自分では思いつかない新鮮な発想に触れることができたり、テーマに広がりを持たせられることを感じました。アナリティクスの結果を活用するアクションを考えるための「課題設定」を実際に体験できた勉強会になりました。 コミュニティメンバー募集中! SAS Japan Student Data for Good communityでは引き続き学生の参加者を募集しております。社会貢献を目指す活動を通してデータサイエンティストの役割である「課題の設定」から「データを用いた解決法の提示」までの一連の流れを経験できます。 興味をお持ちでしたら下記の事項をご記入の上JPNStudentD4G@sas.comまでご連絡ください。 大学名 / 高校名 名前 メールアドレス
SAS Japanでは昨年末より”Data for Good”を目指す学生コミュニティ「SAS Japan Student Data for Good community」を運営しています。このコミュニティは、Data For Goodを題材にデータサイエンスの一連の流れを体験する場として設立されました。今回紹介する勉強会も、その活動の一環です。詳しくは「Data for Goodを通じて"本物の"データサイエンティストになろう!」の記事をご覧ください。 三回目の勉強会ではヒートアイランド現象をテーマに、課題設定の部分を学びました。 ヒートアイランド対策、”どこ”から? ヒートアイランド現象とは、都市部の気温が周りに比べて高くなる現象です。その要因には、都市化による土地利用の変化や人間活動で排出される熱などがあります。対策事例として人口排熱削減のために次世代自動車の普及をしたり、保水性舗装の普及や屋上緑化を推進して地表面被服の改善を目指したりというものが行われています。 勉強会で取り上げたヒートアイランド対策事例の一つに、リッチモンドのヒートマッピングがあります。ヒートアイランド現象は都市部と郊外を比較して都市部の方が暑いという考え方が一般的です。しかし、植生域より人口被覆域の方が地表面からの大気加熱を大きくすることや、明るい色の舗装より暗い色の舗装の方が熱を吸収して暑くなることから、都市部の中でも暑さに対する強度は場所によって異なります。そこで、リッチモンドでは「都市の中でも特に暑さの影響を受けやすい場所を見分ける」ことで、対策を優先して行うべき場所の判断をサポートするためのプロジェクトを開始しました。そのアプローチとして、 リッチモンドをブロックで分けた各地点の気温・場所・時間のデータを収集する 観測データ+土地利用マップ+住民の収入データ→各地点のヒートアイランドに対する脆弱性レベルを定量化・可視化 に取り組んでいます。このプロジェクトは2017年にリッチモンドで開始し、今では様々な都市に活動の輪を広げています。詳しい内容はこちらの記事(英語)をご覧ください。 解くべき課題を設定する これらの知識を踏まえて、次は「課題設定」を行いました。自分たちでヒートアイランド現象という問題に対して、解くべき課題は何か・解決するために誰のどのような意思決定が必要か・どのようなデータが必要か、についてディスカッションをしました。 議論を進めていく中で、さまざまな意見が飛び交いました。その中には、テーマとして設定していたヒートアイランド現象を解決するというよりも、ヒートアイランド現象が”障壁”となって起きるであろう「熱中症を未然に防ぐ」というものを課題に設定するという意見がありました。その解決策として、リッチモンドの事例を応用した「ある人がいる地点の体感気温+その人の体温のデータをリアルタイムで収集し、熱中症のおそれがある場合に通知するアプリケーションの作成」などの案が出てきました。 ディスカッションをすることで、自分では思いつかない新鮮な発想に触れることができたり、テーマに広がりを持たせることが出来たりすることを感じました。アナリティクスの結果を活用するアクションを考えるための「課題設定」を実際に体験できたディスカッションになりました。 コミュニティメンバー募集中! SAS Japan Student Data for Good communityでは引き続き学生の参加者を募集しております。社会貢献を目指す活動を通してデータサイエンティストの役割である「課題の設定」から「データを用いた解決法の提示」までの一連の流れを経験できます。 興味をお持ちでしたら下記の事項をご記入の上JPNStudentD4G@sas.comまでご連絡ください。 大学名 / 高校名 名前 メールアドレス
本シリーズの記事について オープンソースとの統合性はSAS Viyaの一つの重要な製品理念です。SAS言語やGUIだけではなく、R言語やPythonなどのオープンソース言語でも、SAS ViyaのAI&アナリティクス機能を活用することが可能になっています。このシリーズの記事は、R言語からSAS Viyaの機能を活用して、データ準備からモデルの実装までの一連のアナリティクス・ライフサイクル開発をサンプルコードの形で紹介していきます。 CASサーバーとSWATパッケージとは コードの内容を紹介する前に、まずCASサーバーとSWATパッケージに関して、簡単に紹介します。CASはSAS Cloud Analytic Serviceの略称です。SAS Viyaプラットフォームの分析エンジンで、様々な種類のデータソースからデータを読み込み、メモリーにロードし、マルチスレッドかつ分散並列でハイパフォーマンスな分析処理を実行します。現在のCASサーバーは3.4.0以降のバージョンのPythonと3.1.0以降のバージョンのRをサポートしています。 オープンソース言語のクライアントからCASサーバーのインタフェースを使用するために、SASからSWAT(SAS Scripting Wrapper for Analytics Transfer)というパッケージをGithubに公開し、提供しています。RとPythonにそれぞれ対応しているバージョンはありますが、本記事のサンプルコードではR用の SWATをメインで使用します。SWATパッケージを通してCASサーバーと通信し、インタフェースを直接利用することができます。データサイエンティストはSWATパッケージを使用し、RやPythonからSAS Viyaの豊富なAI&アナリティクス機能を活用し、様々なデータ分析処理を行ったり、機械学習や深層学習のモデルを作成したりすることができます。 環境の準備 R言語用SWATパッケージを利用するために必要なRの環境情報は以下の通りです。 ・64-bit版のLinux或いは64-bit版のWindows ・バージョン3.1.0以降の64-bit版のR ・Rパッケージ「dplyr」、「httr」と「jsonlite」がインストールされていること 筆者が使用している環境は64-bit版のWindows 10と64-bit版のR 3.5.3となり、IDEはRstudioです。 パッケージのインストール SWATをインストールするために、標準的なRインストール用関数install.package()を使用します。SWATはGithub上のリリースリストからダウンロードできます。 ダウンロードした後、下記のようなコマンドでSWATをインストールします。 R CMD INSTALL R-swat-X.X.X-platform.tar.gz X.X.Xはバージョン番号であり、platformは使用するプラットフォームと指しています。 或いはRの中から下記のコマンドのようにURLで直接インストールするのもできます。 install.packages('https://github.com/sassoftware/R-swat/releases/download/vX.X.X/R-swat-X.X.X-platform.tar.gz', repos=NULL, type='file') この部分の詳細はR-swatのGitHubのリンクを参考にしてください。 SAS Viyaと一回目の通信をやってみよう 全ての準備作業が完了したら、問題がないことを確認するために、Rから下記のコードを実行してみます。 library("swat") conn <- CAS(server, port, username, password,
なぜ“sasctl”が必要なのか? オープンソースとの統合性はSAS Viyaの一つの重要な製品理念であり、そのための機能拡張を継続的に行っています。その一環として”sasctl”という新しいパッケージがリリースされました。SAS Viyaでは従来から、PythonからViyaの機能を使用するために”SWAT”パッケージを提供しており、SAS Viyaのインメモリー分析エンジン(CAS)をPythonからシームレスに活用し、データ準備やモデリングをハイパフォーマンスで実行することができるようになっていました。しかし、データ準備やモデル開発は、アナリティクス・ライフサイクル(AI&アナリティクスの実用化に不可欠なプロセス)の一部のパートにすぎません。そこで、開発されたモデルをリポジトリに登録・管理して、最終的に業務に実装するためのPython向けパッケージとして”sasctl”が生まれたのです。 sasctlの概要 sasctlで提供される機能は、大まかに、3つのカテゴリーに分けられます。 また、この3つのカテゴリーは、お互いに依存する関係を持っています。 1.セッション sasctlを使用する前に、まずSAS Viyaのサーバーに接続する必要があります。(この接続は、ViyaマイクロサービスのRESTエンドポイントに対して行われることに注意してください) SAS Viyaのサーバーへの接続は、セッションのオブジェクトを生成することにより行われます。 >>> from sasctl import Session >>> sess = Session(host, username, password) この時点で、sasctlはViya環境を呼び出して認証し、この後のすべての要求に自動的に使用される認証トークンを受け取りました。 ここからは、このセッションを使用してViyaと通信します。 2.タスク タスクは一般的に使用される機能を意味し、可能な限りユーザーフレンドリーになるように設計されています。各タスクは、機能を実現するために、内部的にViya REST APIを複数回呼び出しています。例えば、register_modelタスクではREST APIを呼び出し、下記の処理を実行しています: リポジトリの検索 プロジェクトの検索 プロジェクトの作成 モデルの作成 モデルのインポート ファイルのアップロード その目的としては、ユーザーがPythonを使って、アナリティクス・ライフサイクルで求められるタスクを実行する際に、sasctlの単一のタスクを実行するだけで済むようにすることです。 >>> from sasctl.tasks import register_model >>> register_model(model, 'My Model', project='My Project') 今後も継続的に新しいタスクを追加していきますが、現在のsasctlには下の2つのタスクを含まれています:
アナリティクスは数多くの課題を解決してきました。ビジネスにおけるデータサイエンスの有用性は周知の通りであり、既に多方面で応用されています。SASはこれを発展させ、データを用いて社会課題を解決する“Data for Good”を推進しています。本記事では、その一環として設立したSAS Japan Student Data for Good Communityについてご紹介します。 SAS Japan Student Data for Good Community データサイエンスにおいて最も重要なのはアナリティクス・ライフサイクルです。これはData・Discovery・Deploymentからなる反復型かつ対話型のプロセスで、このサイクルをシームレスに回し続けることで初めてアナリティクスは価値を発揮します。データを用いたアプローチが可能な課題の発見から、分析結果を活用する具体的なアクションまでを含む一連の流れのもと、そのアクションに「必要な情報」は何か、その情報を導き出すためにはどのようなデータや手法が使えるかと思考をブレークダウンし、議論を重ねることが大切です。しかし、学生の授業や書籍による学習は具体的なデータ分析手法や統計理論にフォーカスされ、上記のようなデータサイエンスの本質的な流れを学習・実践する場が殆どないのが現状です。そこで、学生がData for Goodを題材にデータサイエンスの一連の流れを実践する場としてSAS Japan Student Data for Good Communityを設立しました。本コミュニティの目標は以下の三つです。 学生が主体となって議論・分析を行い、Data for Goodを推進すること。 データサイエンスのスキルを向上させること。 学生間の交流を深めデータサイエンスの輪を広げること。 活動内容 ・Data for Good 山積する社会問題のなかからテーマを選択し議論や分析を通してその解決を目指す、本コミュニティのメインの活動です。議論は主にオンライン上で行いますが、適宜オフラインでの議論や分析の場を設けます。もちろん、社会問題の解決は一般に困難です。データは万能ではなく、アナリティクスが唯一の絶対解とも限りません。しかし、課題をいくつかのステップに区切り、その一部分だけでもデータの力で改善することは十分可能であると考え、そのために学生間で様々な議論を重ねることは非常に有意義だと感じています。そもそもData for Goodの考え方は、「事象の把握にデータを使用すること(Descriptive Analytics)」ではなく、アクションを行う際に「データを用いてより良い意思決定の支援をすること(Predictive/Descriptive Analytics)」です。課題そのものの理解から、いくつかの施策がある中で、データのアベイラビリティなども踏まえて、「アナリティクスで解くべき(解きやすい/解く意味のある)問題」は何かを考える必要があります。これらは確かにChallengingではありますが、他の学生とのアイデアの共有や現場のSAS社員からフィードバックをもとに、協力しながらプロジェクトを進行させられることは本コミュニティの大きなメリットの一つです。将来的には関連NPO法人との連携も計画しています。 ・勉強会 月に一回、SAS六本木オフィスにてコミュニティ内の勉強会を開催します。複数の社会問題をテーマとし、後述するアナリティクス通信を通して学んだ事例・知識に基づき、それらの課題解決にどのようなアプローチ(必要なデータ・有効な分析手法等)が有効であるかについて議論します。社会問題に対する見聞を広めるとともに、「アクション可能な課題を見つける」・「データを用いたアプローチを考える」といったデータサイエンスを進めるうえで重要となる観点を養います。以前開催した勉強会の様子はこちらの記事からご覧ください。(第一回・第二回) ・アナリティクス通信 週に一回、先述の勉強会で議論を進めるために必要な知識やデータをまとめたアナリティクス通信を配信します。コンテンツの内容は、社会問題の背景知識・関連するオープンソースデータ・データサイエンスに関するTipsなどを予定しています。データの見方を養う機会や、意欲あるメンバーが実際に分析を行うきっかけになることを期待します。 ・外部イベントへの参加 データ分析能力の向上や、Data for Goodに応用可能な新たな視点の獲得等を目的とし、有志メンバーでの外部データ分析コンペティションや関連講演会への参加を企画しています。 コミュニティメンバー募集! 上記の活動に加え新規活動案は随時受け付けており、学び溢れるより良いコミュニティを目指していきます。社会問題を解決したい方やデータサイエンスの力を養いたい方など、多くの学生のご参加を期待しています。(学年・専攻等の制限はありません。前提知識も仮定しません。中高生のご参加も歓迎します。)本コミュニティの活動にご興味がおありでしたら下記事項をご記入の上JPNStudentD4G@sas.comまでご連絡ください。 お名前
SAS Visual Analytics on SAS Viya(以降VA)の最新版8.4に搭載されている新機能の中から、以下5つの機能に関してダイジェストでご紹介します。 1.AIストーリーテラー機能 2.レポート編集&表示切替の利便性向上 3.閲覧時レポートカスタマイズ&制御 4.分析用ビジュアル候補提示 5.カスタムグループ作成の容易化 6.Visual Analytics SDK 1.AIストーリーテラー(自動分析&解説)機能 VA8.3から搭載されていた機能やUIが拡張されています。 AIストーリーテラー(自動分析&解説)機能では、分析対象の変数(ターゲット)を指定するだけで、その変数に影響を与えているその他の変数の特定や、変数ごとにどのような条件の組み合わせがターゲット変数に依存しているのかを「文章(条件文)」で表現して教えてくれます。 この例で使用するデータ「HMEQJ」は、ローンの審査を題材にしたもので、顧客ごとに1行の横持ちのデータです。このデータ内にある「延滞フラグ」が予測対象の項目(ターゲット変数)で、0(延滞なし)、1(延滞あり)の値が含まれています。 データリスト内の「延滞フラグ」を右クリックし、「説明」>「現在のページで説明」を選ぶだけで、「延滞フラグ」をターゲット変数に、その他の変数の組み合わせを説明変数とした複数の決定木(ディシジョンツリー)が実行され、 以下のような結果が表示され、見つけ出された有用な洞察を説明してくれます。 分析結果画面内説明: ① 予測対象値(0:延滞なし、1:延滞あり)の切り替えが可能です。この例では、「1:延滞あり」を選択し、「延滞する」顧客に関して分析しています。 ② 全体サマリーとして、すべての顧客の内、延滞実績のある顧客は19.95%(5,960件中の1,189件)であることが示されています。 ③ 「延滞する」ことに関して影響を与えている変数の重要度を視覚的に確認することができます。最も影響度の高い変数(今回は「資産に対する負債の割合」)の重要度を1として、1を基準値にした相対重要度が算出され、横棒グラフで表示されます。従来版に比べて、変数ごとの影響度合いの違いを明確に捉えることができます。 ④ 「高」タブには、「延滞する」可能性が高いトップ3のグループ(条件の組み合わせ)が文章で示され、「低」タブには、「延滞する」可能性が低いトップ3のグループ(条件の組み合わせ)が文章で示されます。この例では、③で「資産価値」が選択され、「資産価値」に基づき、延滞する可能性の高い/低いグループのトップ3が表示され、「資産価値」に関する条件部分がハイライトしています。 ⑤ この例では、③で「資産価値」が選択され、これに応じて「0:延滞なし、1:延滞あり」別の顧客の分布状況がヒストグラムで表示されています。選択された変数が数値属性の場合は、ヒストグラムで、カテゴリ属性の場合は積み上げ棒グラフで表示されます。チャートの下端では、チャートから読み取れる内容を文章で解説しています。 以下は、カテゴリ属性の変数を選択した場合の表示例です。 以上のように、分析スキルレベルの高くないビジネスユーザーでも、簡単かつ容易に、そして分かり易くデータから有効な知見を得ることができます。 ※AIストーリーテラー機能に関しては、SAS Viya特設サイトのビジュアライゼーションセクションで動画でもご覧いただけます。 2.レポート編集&表示切替の利便性向上 従来のVAでは、編集モードで作成したレポートを表示モードで確認する際には、メニューから「レポートを開く」を選択し、レポートが表示されるのを少し待つ必要がありました。また、レポート表示モードから編集モードに戻るにもメニューから「編集」を選択する必要がありました。 VA8.4では、編集モードと表示モード切替の利便性が改善され、画面左上のペンシルアイコンをクリックするだけで、編集画面<->表示画面間を瞬時に切り替えられるので作業効率が向上します。 また、ご覧の通り、編集画面と表示画面のレイアウトも統一されています。 3.閲覧時レポートカスタマイズ&制御 一般的にBIツールでは、対象ユーザーを3つの層(管理者、レポート作成者(デザイナ)、レポート閲覧者(コンシューマ))に分類し、それぞれに最適なインターフェースを提供しています。しかし、レポート閲覧者の中には、「基本的には誰かが作成したレポートを見るだけでいいんだけど、自分好みに変更できたらもっといいのにな…」という声も多くあります。このレポートカスタマイズ者層に答えられないために、彼らは、レポートを開き、そのデータをダウンロードし、Excelに取り込んで好みのレポートを作成しようとするのです。 VA8.4では、レポートカスタマイズ者層向けに、作成済みレポートを開いて閲覧中に、簡単操作で好みに合うようにレポートをカスタマイズすることができるようになりました。 以下は、レポート閲覧中に「円グラフ」を他のチャートタイプに変更するメニューが表示されている例です。 また、レポート作成者は、レポートカスタマイズ者向けに、カスタマイズ可能な機能範囲を3段階で制御することが可能です。 これで、レポート作成者の負担も軽減され、レポート閲覧者の痒いところに手が届きそうですね。 4.分析用ビジュアル候補提示 レポート作成の元となるデータソースを選択すると、そのデータソース内の項目に基づき、「こんな分析が有効じゃないの…」と、分析画面の候補を自動的に提示してくれる機能です。 画面左端から電球マークの「候補」アイコンをクリックすると、分析候補がいくつか表示され、提示された分析画面をドラッグ操作でレポートに挿入することができます。 より素早く、効果的な情報を含むレポートを作成することができそうですね。これも一つの自動分析機能です。 5.カスタムグループ作成の容易化 従来版のVAでは、カスタムグループを作成する際には、カスタムグループ作成専用の画面内で、グループに含める要素の選択と、グループ名称を設定し、OKをクリックしてチャートに反映させる必要がありましたが、VA8.4では、チャート上でグループ化対象の要素を選択し、そのグループに名称を設定して、素早くカスタムグループを作成することができるようになりました。 6. Visual Analytics SDK
前回は、ビジネス価値創出につながる「オペレーショナル・アナリティクス for Data Scientist」ユースケースの論文を紹介しました。今回は、企業様にとって、クラウド上のインフラアーキテクチャと分析プラットフォームのデプロイメントについて、ご紹介します。昨今、なぜ「コンテナ」が注目されているのか、そして、クラウドやコンテナ上に分析プラットフォームを移行/構築し、活用することに関心があるのであれば、ぜひ最後までご覧ください。 1.Cows or Chickens: How You Can Make Your Models into Containers モデルは特定の作業(新しいデータをスコアリングして予測を出すこと)として役割を果たしてきています。一方、コンテナは簡単に作成し、廃棄し、再利用できることができます。実際、それらは簡単にインテグレートさせ、パブリッククラウドとオンプレミス環境で実行できます。SASユーザは本論文を通じて、簡単にモデルの機能をコンテナに入れることができます。例えば、パブリッククラウドとオンプレミス環境でのDockerコンテナ。また、SASのModel Managerは様々なソース(オープンソース、SAS、コンテナ等々)からモデルの管理を行うことができます。したがって、この論文はそれらの基本知識と、どのようにSASの分析モデルをコンテナに入れることをメインに紹介します。 2.Orchestration of SAS® Data Integration Processes on AWS この論文では、Amazon Web Services(AWS)S3でのSASデータインテグレーションプロセスの構成について説明します。例としては、現在サポートしているお客様がクレジット報告書を生成するプロセスを毎日実行しています。そして、そのお客様の対象顧客は1カ月ごとに1回その報告を受け取ります。データ量としては、毎日に約20万の顧客情報が処理され、最終的に毎月約600万人の顧客へ報告することとなります。プロセスはオンプレミスデータセンターで始まり、続いてAWSのSASデータインテグレーションでAPR計算が行われ、最後にオンプレミスデータセンターで報告書が生成されます。さらに詳しい情報としては、彼らのアーキテクチャ全体はマイクロサービスを使われていますが、同時にAWS Lambda、簡易通知サービス(SNS)、Amazon Simple Storage Service(Amazon S3)、およびAmazon Elastic Compute Cloud(EC2)などの独立した高度に分離されたコンポーネントも使われています。つまり、それらにより、データパイプラインに対するトラブルシューティングが簡単になっていますが、オーケストレーションにLambda関数を使用することを選択すると、プロセスがある程度複雑になります。ただし、エンタープライズアーキテクチャにとって最も安定性、セキュリティ、柔軟性、および信頼性もあります。S3FやCloudWatch SSMのようなより単純な代替手段がありますが、それらはエンタープライズアーキテクチャにはあまり適していません。 3.SAS® on Kubernetes: Container Orchestration of Analytic Work Loads 現在、Big Dataの時代で、Advanced analyticsのためのインフラストラクチャに対するニーズが高まっています。また、分析自体に対して、最適化、予測が最も重要領域であり、小売業、金融業などの業界ではそれぞれ、分析に対する独自の課題を抱えています。この論文では、Google Cloud
「ビジュアルパイプラインで将来予測」では、SAS ViyaのModel Studioを使用した時系列予測の基本的な手順を紹介しました。 今回は、需要予測の精度を高める代表的な一つの手法として、需要分類をご紹介します。 例えば、お菓子の販売に関する需要を予測する場合を考えてみましょう。 ポテトチップスやおかきのように通年を通して売れる商品もあれば、アイスクリームのように夏季に需要が増加する商品、チョコレートのようにバレンタインデーの直前と当日に需要が急増する商品、お盆やお彼岸などの際にお供え用にときどき購入される商品などなど、お菓子の種類によって需要のパターンは異なってきます。 これらの異なる需要パターンの商品に対して、一律同じアルゴリズムを適用しても予測精度は高まりません。 こうした課題に対処するために、SAS Viyaの時系列予測では、自動的に需要のパターンを分析し、予測の精度を高めるような仕組みも搭載されています。 SAS ViyaのModel Studioで時系列予測を実行する際に、需要分類を活用する場合は、「需要の分類」テンプレートを使用します。 (使用する時系列データやデータ内の変数に対する役割設定内容は、「ビジュアルパイプラインで将来予測」ブログ内容と同様です。) 以下は、「需要の分類」パイプライン・テンプレートを選択し、実行した後の画面です。 「需要の分類プロファイル」ノードでは、統計解析等の手法を使用して、時系列データを解析し、需要のパターンを検出します。冒頭にお話しした通り、予測対象によって需要のパターンは様々です。 こうした多様なパターンを見極めた上で、適した予測アルゴリズムを用いることが肝要になります。 今回のデータでは、地域×製品ラインのセグメントごとに需要のパターンが検出され、分類されます。 「需要の分類プロファイル」ノードのメニューから「開く」を選択すると、 分類結果が表示されます。 地域×製品ラインでは、5つの組み合わせ=セグメントが存在するので、これらのセグメントごとにパターンが検出され、結果としては、1つのセグメントは「YEAR_ROUND_NON_SEASONAL:長期間の非季節性需要」として、4つのセグメントは「YEAR_ROUND_SEASONAL:長期間の季節性需要」として分類されていることがわかります。 上記の2種類を含め10種類の需要パターン+その他、に分類されます。 次の「需要の分類モデリング」ノードでは、分類されたセグメントごとに最適なアルゴリズムが選択され、予測が実行されます。 「需要の分類モデリング」ノードのメニューから「開く」を選択すると、 実行結果が表示されます。検出された需要パターンに応じて、最適なアルゴリズムを適用したパイプライン(以下の「パプライン」列)が選択され、実行されます。 「YEAR_ROUND_NON_SEASONAL:長期間の非季節性需要」のセグメントには「非季節予測」モデルのパイプライン・テンプレートが適用され、「YEAR_ROUND_SEASONAL:長期間の季節性需要」のセグメントには「季節予測」モデルのパイプライン・テンプレートが適用され、それぞれ実行されています。「WMAPE」列には加重MAPEの値が表示されています。 セグメントを選択し、画面右上の「パイプラインを開く」アイコンをクリックすると、 そのセグメントに適用され、実行されたパイプラインが表示されます。 加重MAPEの値や、このパイプラインの予測結果を確認し、精度をさらに改善したい場合は、従来通りの操作性でこのパイプラインをカスタイズ(アルゴリズムを変更したり、パラメータをチューニングしたり)することもできます。 最後の「セグメントのマージ」ノードでは、各セグメントの予測実行結果をマージします。 「セグメントのマージ」ノードのメニューから「予測ビューア」を選択すると、 予測結果のチャートが表示されます。 以下チャート内のオレンジ色の破線は、5つのセグメントの中の、地域:Region1×製品ライン:Line1に関する予測結果です。 以上のように、SAS ViyaのModel Studio上でビジュアルパイプラインを用いた時系列予測では、需要のパターンに基づく、より精度の高い予測モデリング戦略の自動実行も可能なんですね。 ※ビジュアルパイプラインでの需要分類&予測は、SAS Viya特設サイト内の「ビジュアライゼーション」及び「機械学習」セクションにて動画をご覧いただけます。 ※需要予測精度の向上に関しては、「ビジネスで「需要予測機能」を活用するために必要な3つの要素」ブログも参考にしてください。 ※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO!
前回の記事ではData for GoodのためにSASが提供するアプリ GatherIQをご紹介し、そのトピックとして「男女平等」「健康」について取り上げました。第三回となる今回は、「生命の源である水」と「衛生」の2つのテーマについてGatherIQの提供するデータを基に取り上げてみたいと思います。 “生命の源である海” 多くの人もご存知かと思いますが、海は地球上の大部分を覆っており、その占有率は70%を超え、これにより地球上の水分の97%は海上に存在しています。また、海には現在20万種の生物が生息しており、その種類は100万種を超えるとさえ言われています。まさに海は生命の源といえるでしょう。 それだけでなく、海は温暖化にも関与しており、大気中の30%の二酸化炭素は海水に吸収されることで緩衝液としての役割も果たしていると述べられています。このように、海は地球にとって非常に重要な要素であることがわかります。 汚染 温暖化を緩和している一方で、海に溶けている二酸化炭素の量は増加します。これにより海水のpHが上昇し、これがカルシウムイオンと炭酸イオンが結合することを阻害します。カルシウムイオンと炭酸イオンは結合すると炭酸カルシウムになります。貝や魚の体の主成分である炭酸カルシウムの減少は、彼らの身体構造の形成を阻害し、結果的に魚や貝は減少の一途を辿ります。また、私たち一般人が捨てたゴミによる汚染被害も甚大です.一部のゴミは、私たちがゴミ箱にゴミを捨てる際に零れ落ちた物であり、これらの捨て損ねられたゴミ達は排水溝へと落ち、水に乗って海へと流れつきます。 "Ocean Trash is a Problem You Can Solve" Ocean Conservancy 記事によると、海の40%が深刻な汚染状況にあります。 マイクロプラスチック マイクロプラスチックもまた、海の汚染の大きな要因となっていることで近年メディアで度々取り上げられていますが、その恐ろしさについてはご存知でしょうか。マイクロプラスチックはプラスチック製品の原料となる小さなプラスチックが工場の排水や輸出船からの漏出によって海に流れたものを主とし、その大きさは目で見える小さな大きさの物から、顕微鏡でしか見えない大きさの物まで様々です。また、人の捨てたゴミは潮流で合流し、衝突しあい、紫外線や海水にさらされて風化し、粉々になります。これらもマイクロプラスチックとなり、海を漂うのです。マイクロプラスチックはその安定性から重宝されていましたが、皮肉なことに、その能力故に、彼らは海の中を非常に長い期間漂い続けることができます。カラフルで小さなマイクロプラスチックは魚卵などと間違われ、魚に食べられて消化されることもなく魚の胃の中に残留します。マイクロプラスチックの恐ろしい点は、これを摂取した魚が一切食事を取っていないにも関わらず、胃の中に残るマイクロプラスチックによって満腹感を得て飢餓状態となってしまい、最終的に餓死してしまうという点です。 "The Nurdles' Quest for Ocean Dominance" TED Ed 動画では、かわいい見た目のマイクロプラスチック達による地球侵略計画というイメージでこの問題を説明している。 人間への影響 では、マイクロプラスチックと海水の汚染や酸性化は人間の生活にどのような影響を持つのでしょうか。まず、酸性化による牡蠣、あさり、サンゴ、ウニなどの魚介類 の減少により、価格は上昇し、これらを食べることが困難になります。彼らを主食とする人は世界に1億人いるとされており、その人達の主要なタンパク質源が消え、健康被害が出ると考えられます。また。マイクロプラスチックに関して、これを食べた魚が餓死するだけでなく、マイクロプラスチックを食べた魚をさらに上位の捕食者が食べることで食物連鎖を辿り、捕食者の胃にマイクロプラスチックが残り、捕食者共々餓死していくという負のループが完成していきます。これにより海の生態系は壊滅状態になり、魚類は減少し、魚類を食べられなくなる可能性が高くなります。 "Ocean Acidification Explained in 2 Minutes" Grist 私たちができること マイクロプラスチックに関して、私たちも改善に向けて協力することができると私は考えています。マイクロプラスチックは安定性が高いですが、永久に海に留まることはできません。GatherIQに挙げられた動画には、マイクロプラスチックを減らしていくために、まずプラスチックの使用を避けていくことから始めて行くべきだと述べられています。リサイクルを行い、プラスチックをガラスや紙に代替して少しずつプラスチックの使用を減らすことができれば、将来的に海水中を漂うマイクロプラスチックは消えていくことが示唆されています。日常で一時的に使用するプラスチックは、予めカバンに持ち運ぶことで使用せずとも良い物が多いということにお気付きでしょうか。ここでいう一時的に使用するプラスチックとは、コンビニで商品を入れるための袋や、カフェでコーヒーを入れてもらう際のコップやストロー、食品を保存する時に使用するラップ、などを指します。上記の物でいえば、マイバッグの持参で私たちが普段使用しているコンビニの袋が不要になり、カフェでコーヒーを飲む時も、ストロー付きのタンブラーを持参していればプラスチックの容器は不要になります。また、ミツバチの蜜蝋でコーティングされたエコラップは、繰り返し洗って使用できるラップであり、これを使用すればラップはもう必要ありません。このように、少しずつ、小さなことから私たちにできる行動は確かに存在します。 しかし、現状を知らなければ具体的に何が必要で何をしなければならないかもわかりません。GatherIQに集められたデータ達は、そのような「現状」を理解する手助けが少しでも出来たら、という思いがもととなり提供されています。 “衛生” 上記で記載した地球上の水分の内、海水ではない残りの3%の水分は飲み水として利用できる安全な水です。私たちが普段生活の中で使用する水(飲料水以外の、トイレの水や蛇口から出る水)は、この3%の水から使用されています。 途上国と先進国、各々の課題 さて、現在でも清潔で安定な水を使用できない人は多く存在します。世界中で、8.4億人以上の人が安全な飲料水を獲得できておらず、これは計算すると、総人口の内、9人に1人が安全な水を得られていないことになります。 "The Human
今回は「オペレーショナル・アナリティクス for Data Scientist」をメインテーマとしてご紹介します。企業で分析業務を行うデータサイエンティストの皆様はご存知の通り、モデルは開発しただけでは意味がありません。そのモデルを業務に実装(デプロイ)してはじめて、ビジネス課題を解決し、価値を創出することができるわけです。SASが長年蓄積してきたナレッジをご覧ください。 1.Using SAS® Viya® to Implement Custom SAS® Analytics in Python: A Cybersecurity Example この論文は、SASの分析機能により支えられているプロダクションレベルのアナリティクスソリューションを開発しようとしているデータサイエンティストを対象としています。本文では、SAS ViyaとCloud Analytics Service(CAS)に基づく、CASの構築基盤とサイバーセキュリティを説明します。そして、SASアナリティクスを本番環境でPythonで実装する方法を説明します。 2.What’s New in FCMP for SAS 9.4 and SAS Viya この論文では、下記いくつかポイントをメインとして議論していきます。まず、SASが提供しているFunctionコンパイラー(FCMP)の新しい特徴を紹介し、それから主にFCMPアクションセットを中心とし、リアルタイムアナリティクススコアリングコンテナ(ASTORE)とPythonのインテグレーションについても説明します。それらの説明により、SASの新しいテクノロジーに対し、更なる理解を頂けることを期待しています。 3.Influencer Marketing Analytics using SAS® Viya® この論文はSAS Viyaを使って、マーケティングアナリティクスを行う事例を紹介します。近来、マーケティングはますますインフルエンサーが大きな役割をしめるようになってきています。それらのインフルエンサーたちはソーシャルメディアのコンテンツ作成者であり、多くのフォロワーを持ち、人々の意見に影響を与え、購入を検討する人々にも影響を与えています。インフルエンサーマーケティングは、より伝統的なマーケティングチャンネルと同じようにコストがかかるため、企業にとって最も効果的なインフルエンサーを選択することは非常に重要です。 こういった背景において、この論文では、ソーシャルメディアで本当に影響力をもつ人、そしてその影響程度はなにかについて分析することを目指しています。ケーススタディは、感情面の影響を与えることに焦点を当てています。また、多くのフォロワーを持つインフルエンサーとその色んな投稿とアクティビティを分析します。実施するには、Pythonのライブラリとコードが使用されます。次に、彼らのアクティビティとネットワークを分析して、それらの影響範囲を分析します。これらの分析には、SAS Viyaのテキストおよびネットワーク分析機能が使用されます。データ収集ステップ(Python)はクライアントとしてJupyter Notebookを使用していますが、分析ステップは主にSAS Visual Text Analytics(Model Studio)とSAS Visual Analyticsを使用して行われています。 4.Take
Enterprise Open Analytics PlatformであるSAS Viyaでは、コーディングスキルを持たないビジネスアナリストやビジネスユーザーでも、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができるようになっています。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 これまで、ビジュアルパイプラインを用いた機械学習のモデル生成は紹介してきましたが、今回は、時系列予測の基本的な手順を紹介します。 Model Studioで時系列予測を実行する基本的な手順は以下の通りです。 ① プロジェクトの新規作成 ② 学習用の時系列データ内項目へ役割設定 ③ パイプラインの作成と実行 ④ 予測結果確認 ⑤ 予測値のオーバーライト(必要に応じて) ① プロジェクトの新規作成 SAS Viyaの統合GUIのホームページのメニューから「モデルの作成」を選択し、表示されるModel Studioの画面から「プロジェクトの新規作成」をクリックします。 「プロジェクトの新規作成」画面内で、プロジェクトの名前を入力し、モデルの種類(データマイニングと機械学習 / テキスト分析 / 予測)から「予測」を選択します。使用するパイプライン・テンプレートとして、デフォルトでは、「自動予測」が選択されていますが、必要に応じてテンプレートを変更することができます。 今回は、「自動予測」テンプレートを使用してみましょう。 学習用の時系列データを選択し、「保存」をクリックします。 すると、指定したデータソース内の変数リストが表示されます。 ② 学習用の時系列データ内項目へ役割設定 表示された「データ」タブ内で、変数ごとに右側画面内で役割を選択します。 ・注文日:時間 <-日付属性データ項目には自動的に“時間”役割が設定されます。 ・売上:従属 <-予測対象の項目 ・原価:独立 <-予測対象に影響を及ぼす項目 ・販売地域と製品ライン:BY変数 <-地域別や製品ライン別で予測結果を見ることができます。 「テーブルの表示」アイコンをクリックすると、データの中身を確認できます。 ご覧の通り、このデータは年月ごと、販売地域、製品ライン、製品ごとの売上や原価、などの情報を持つ時系列データです。 注. 今回使用するデータでは、時系列データとその属性データ(地域、製品ライン、製品)が一つにマージされているデータを使用していますが、時系列データと属性データをそれぞれ別データとして取り込むことも可能です。そうすれば、メモリーにロードするデータ量を削減することができます。 ③ パイプラインの作成と実行 役割を設定後、「パイプライン」タブをクリックすると、「自動予測」のパイプラインが表示されます。 右側画面には「自動予測」ノードのオプションが表示されています。ご覧の通り、自動予測では、ESM(指数平滑化)とARIMAの2つの手法で予測を実行し、その中から最良のモデルが使用されます。 必要に応じて、IDM(間欠需要モデル)とUCM(観測不能成分モデル)を追加することも可能です。 左画面内のノードリストから必要な機能をドラッグ操作でパイプラインへ追加することができます。 その中にはニューラルネットワークに基づく手法も用意されています。 今回は、「ナイーブモデル予測」を加えてみましょう。 左側のノードリスト内から「ナイーブモデル予測」をパイプラインの「データ」ノードにドラッグするだけです。 それでは、パイプラインの右上の「パイプラインの実行」ボタンをクリックして、このパイプラインを実行しましょう。 正常に完了するとすべてのノード上に緑のチェックマークが表示されます。 「データ」ノードのメニューから「時系列ビューア」を選択すると、 学習データ内容を時系列チャートで確認することができます。 役割にBY変数を指定した、販売地域と製品ラインで絞り込んで見ることもできます。 以下は、地域:Region2、製品ライン:Line3に絞り込んだチャートです。 ④ 予測結果確認
前回の記事で、Data for GoodのためにSASが提供するアプリ GatherIQをご紹介し、そのトピックの一つとして「教育」について取り上げました。今回は、「男女平等」と「健康」の2つのテーマについてGatherIQの提供するデータを基に取り上げてみたいと思います。 “男女平等” 皆さんは性別による格差を感じることはあるでしょうか。日本ではしばしば女性が男性と不平等に扱われていることで問題となりますが、それもここ数年でだいぶ変化してきたと私は感じております。今でも女性が差別に対し立ち上がることは難しくはありますが、以前であれば声を上げることですら不可能であったように思われます。日本、そして世界の性別によるギャップはどのような事態に置かれているのでしょうか。 日本と世界の違い GatherIQによると、性別におけるギャップの少ない国では、日本は世界的に見て111位であり、東南アジア及び太平洋周辺では下から4番目の順位です。これは、中国が99位、フィリピンが7位であることを踏まえると、日本は性別に関して非常に平等性が低いことは明らかです。 一方、性別におけるギャップがない国で上位に位置しているのはアイスランド、ノルウェー、フィンランドなどの北欧の国々でした。 しかし世界経済フォーラムは、未だ尚、世界のどの国も性格差のない平等な国とは言えないと述べます。 こちらのリンク先では、地域や指標を指定することで様々な順位分けを示してくれます。GatherIQではこのように、皆さんがデータや表のインタラクティブな操作が可能です。 データで見る「格差」 性別における格差は女性差別に関するものが主なようです。その分野は、教育、雇用、肩書き、暴力など、多岐にわたります。 雇用や肩書きでは、主要な役職や収入などの点で女性が男性に比べ平等に扱われていないと述べられています。 2017年における女性の平均収入は男性のおよそ半分である。CEOを務めるJohnという名の男性の数よりもCEOを務める女性の数は少ない。 暴力の点では性別における格差は更に深刻です。女性の内35%が虐待にあった経験があり、この中身としては、結婚を強制される、暴行を受けるという内容から人身売買という内容まで、多様です。 また、教育の現場においては家庭事情や学校での出来事により女性が教育を受けられない場合が多いようです。家の家事をしなければならない、学校でセクシュアルハラスメントを受けてから怖くて行けなくなった、などの理由が述べられていました。 平等による利益 では、男女平等であることによるメリットは何でしょうか。女性が平等に生きられる。これは確かに重要なことです。しかし、男女平等により得られる利益は女性だけに限ったものではないとGatherIQでは記載されています。男女平等に努める国は、武力に訴える傾向が低く、平和を維持しやすいようです。この傾向は、GDPの高い国や民主主義の国よりも高いと述べられています。また、こうした格差の少ない国では子供の人生における満足度や幸福度が非常に高く、そのため、男女平等である国は暴力による死者も少数です。 格差を生まないためにどう行動すればよいのだろうか? では、格差を少なくするにはどのようにすればよいのでしょうか。GatherIQには解決の糸口の一つが示されています。 “Boys and young men need to be educated and encouraged to be agents of change--to fight for the girls in their communities and prevent violence.” 「若い男性が主体的に変化を起こすことができるように教育し、勇気付けることが必要である。―彼らがコミュニティの中で女性のために戦い、暴力を防げるようになるために。」 私たちができることは、これからの世代に、今までの歴史や努力を伝えること、そして人類の発展のために男女平等が重要であると教えていくことではないか、と感じます。 “健康” 2つ目のテーマとして、健康についてお話をします。長く生きていくために、健康は不可欠な要素でしょう。GatherIQによると、健康の指標となりうる平均寿命の長い国では、健康な人が貢献することでより発展しやすいと言われています。
現在、世界規模の大きな問題が多く存在しています。その問題は、飢餓、貧困、差別、異常気象など、どれも解決が困難なものばかりだと思われます。SASでは、これらの問題の解決に向けて多くの人の助けを借りるための手段の一つとして、GatherIQというアプリの提供を行っています。今回はこのGatherIQについて、その内容に触れつつご紹介します。 GatherIQとは何か? GatherIQはData for Goodの一環で作製されたアプリです。まず、Data for Goodとは、世界的に解決の困難な問題を取り扱うNPO団体などを通じて得られたデータを分析し、世界の課題を解決してより人々を幸せにする取り組みのことです。GatherIQの最大の特徴は一般人参加型のアプリケーションとなっているという点であり、これによりPCからの利用のみならず、アプリのダウンロードによりスマートフォンからの利用も可能となっています。また、NPO団体等から得たデータを分析したものを自由に取得できるため、研究の題材としたり、自身の学習に使用したりすることができるようになっています。 その内容は具体的にどのようなものなのか? GatherIQでは「貧困の根絶」や「男女平等」、「健康」などの多岐にわたった17のテーマを扱って世界の課題を解決する糸口の提供を行っています。GatherIQのデータは、様々な形式で提供されています。 テーマごとにデータが分けられており、その形式も様々である。 これらの形式はその使用場面に応じて特化しています。つまり、テーマの概要を知りたい時にはOverview、気軽に見たい時は動画やクイズ、データをより多く知りたい時にはデータストーリーの閲覧を、というように多様な用途での使用が可能となっています。 さて、今回はGatherIQの提供しているデータの中から、「教育品質」のテーマについて取り上げてみたいと思います。 教育はなぜ大事なのか? 社会を繁栄させるには、働き手の潜在的な知識レベルが高いことが必要不可欠であるといわれています。多くの専門家は、教育が発展的な進化を遂げているとき国は繁栄すると発言しており、経済の安定性と成長率が教育と直接的に結びついているとも発言しています。特に、初等教育である計算力や識字力は将来経済成長の際に必要とされる技術を見通す力を得るために必要不可欠であるとされています。教育の水準の上昇により、個々人の知識のレベルが上がるため、雇用率が上昇します。そのため、結果的に経済及び、国全体が発展します。 "Inclusive Education - Education Equity Now" UNICEF Europe & Central Asia 何が課題なのか? 未だ尚、学校に行くことのできない子供や、教育を受けることのできない子供は一定数存在します。世界規模で見て、小学校に行くことのできない子供は2015年の時点で6,300,000人存在し、これは1975年と比べると半分にまで減少しましたが、それでもまだたくさんの子供が必要最低限の教育すら受けられていないことがわかります。全ての子供が必要最低限の教育を平等に受けられるようになるには、まだまだ及んでいないということがこのデータからわかります。 変化しつつある各国の意識 しかし、グローバルな視点から見ると、世界的には教育を推進する傾向にあると考えられます。世界的な識字率は過去30年の内に劇的に上昇していることが判明していますが、この背景には多くの国がinclusive education(全ての子供が平等に教育を受けられ、個性を尊重して学ぶ教育方法)を取り入れているからであると言われています。 特に、北アフリカや中東では一世代の違いだけで識字率の上昇が著しくなっています。一方で、世界的に見た教育レベルとしては、一部の先進国は低迷状態にあるようにも感じられます。USAは教養のある国としては、世界6位に位置していますが、計算力と識字力のテストスコアランキングでは世界31位となっています。 教養のある国ランキング(上図)ではUSAは6位だが、計算力と識字力のスコアランキング(下図)ではUSAは31位である。 ここから、USAは他の国に比べて計算及び識字の習熟度において遅れを取っていることが示唆されています。GatherIQの記事では、教育を推進するためには、教育者や生徒を確実に支援するための政策を制定することが第一であると述べられています。生産の効率化や経済成長を促すためには、各国がより真摯に、子供たちに教育を享受させる取り組みについて熟慮することが必要不可欠でしょう。 このように、GatherIQを用いて一般の人でもデータを用いて考察や現状認知を行うことが可能です。他にも、教育のテーマに対して、これから子育てを行う主婦の方や教育関係者の方にとっては、GatherIQのデータから初等教育が国にとっても当人にとっても非常に重要であることが読み取ることができるかも知れません。そこから、初等教育を受ける子供たちに念入りに教育を促す動きが生まれる可能性は容易に予測できると思います。 以上がGatherIQの御紹介でした。GatherIQについて更に知りたいという方はこちらからアクセスください。また、SASのWebページやブログではData for Goodに関する考察や情報も公開していますので、併せて御覧ください。 SAS JapanではStudent Data for Good communityを開催し、Data for Goodの達成を目指す学生の参加を募集しています。 興味をお持ちでしたらJPNStudentD4G@sas.comまでご連絡ください。
前回に引き続き、SAS Global Forum 2019で公開された論文をご紹介します。今回は、SASユーザを含め、SAS言語とオープンソース言語の機能を共に活用することで、様々なビジネス課題に対応できるようなコーディング事例をいくつかピックアップします。 1.Deep Learning with SAS® and Python: A Comparative Study ご存知の通り、SASはディープランニングに関する専門性の高いかつ豊富な機能と製品を提供しています。この論文では、SASとPythonに対し、それぞれ違うデータタイプ(例えば:構造化と非構造化、イメージ、テキスト、シーケンシャルデータ等々)を使ったディープラーニングのモデリングを比較する論文となります。主にSAS環境でのディープランニングフレームワーク、そして、SASとPython言語のディープランニングプログラミングの違いによって、それぞれのメリットとデメリットの紹介となります。 2.Utilization of Python in clinical study by SASPy Pythonは近年最も使われているプログラミング言語になってきました。そして現在、機械学習とAI領域でもよく使われています。Pythonの一番のアドバンテージはその豊かなライブラリを通じ、多種多様な分析をインプリメントできることです。SASは臨床研究領域で最も強力な分析製品でありながら、さらにPythonを使うことによって、そのレポーティング機能、例えば、データ管理、データ可視化を拡張できます。これもSASプログラマーユーザのキャリアに対し、潜在的なメリットです。その様な背景において、SASPyはその可能性を実現します。SASPyはPythonコードの中でSASのセッションをスタートできるPythonパッケージライブラリとなります。この論文では、基本的なSASPyの使用方法とSASのデータセットを処理するヒントについて紹介しています。そして、Pythonを使って、臨床研究で使えそうなレポーティング機能について検討します。 3.Everything is better with friends: Executing SAS® code in Python scripts with SASPy SASPyはSASがPythonプログラミング用に開発したモジュールで、SASシステムに代わるインタフェースを提供しています。SASPyを通じて、SASプロシージャはPythonスクリプトと構文で実行することができ、かつ、SASデータセットとそれに相当するPythonデータフレームの間にデータを転送することも可能です。それにより、SASプログラマーはPythonの柔軟性を利用してフロー制御を行うことができ、PythonプログラマーはSAS分析をスクリプトに組み込むこともできます。この論文では、Pythonスクリプト内で通常のSASコードとSASPyの両方を使用した一般的なデータ分析タスクの例を幾つか紹介し、それぞれの重要なトレードオフを強調し、多種プログラミング言語ユーザになれることの価値を強調しています。SAS University Edition用のJupyterLabインタフェースを使用し、それらの例を再現するための説明も含まれています。それらのSASとPythonのインテグレーション例はJupyter Notebookとしてダウンロードできます。 ダウンロード:https://github.com/saspy-bffs/sgf-2019-how 4.Modeling with Deep Recurrent Architectures: A Case Study of
例年と同様に、SAS Instituteはグローバル各国でフォーラムを開催しました。日本ではSAS Forum Japanと題して6月11日に東京の六本木で開催され、また、アメリカSAS本社はダラスでSAS Global Forum 2019を開催(4/28~5/1)し、その中では多数の論文が発表されています。本シリーズでは、これらの論文の中から、OSSとSASプラットフォーム製品のユースケース、OSSコーディング開発・運用事例、クラウドアーキテクチャの設計と運用等々の注目された内容を選別した上で、4回に分けて紹介していきます。 第1回「OSS言語から活用できるオープンなSASプラットフォーム」 近年、OSS(オープンソースソフトウェア)プログラミング言語が数多くのデータサイエンティストや企業によって利用され、分析モデルが開発されています。PythonやR、Luaなどデータサイエンティストや開発者たちに好かれたプログラミング言語はアナリティクス業界に革新をもたらしました。SASはそれらのOSSユーザと企業の要望に応じ、従来のSASユーザとOSSプログラミングユーザーたちが共同作業、かつ連携できるようなプラットフォームを提供しています。 今回は、OSSユーザがどのような方法を利用し、SASプラットフォーム上で自由自在なデータ分析を行えるのかをテーマとし、SAS Global Forumで公開した論文をご紹介します。 1.Open Visualization with SAS® Viya® and Python この論文では、オープンソース言語の一つであるPythonに関し、SAS ViyaのSWAT(Scripting Wrapper for Analytics Transfer)を通じて、メインにオープンソースのグラフィックテクノロジー、特にPythonのMatplotライブラリ、そして現在主流となっているD3の可視化フレームワークとのインテグレーション技術について紹介しています。本文で用いた例は、統計プログラミングのサンプルを使って、Jupyter NotebookからSAS Viyaの機能を呼び出し、最終的に、mpld3で作られた静的なグラフを動的グラフに変更した例となります。 2.SWAT’s it all about? SAS Viya® for Python Users SASは2016の7月にPythonライブラリSWATをリリースしました。それにより、PythonユーザはSASのCASに接続して、SAS Viyaの各種機能を使えるようになりました。SWATを利用することで、SAS言語バックグラウンドを持っていないユーザには、SAS言語ユーザと同じくCASとSAS Viyaの各種機能を使用できるようになります。この論文では、Python SWATを通じて、CASセッションへ接続し、PythonからCASへデータをロードし、さらにCASアクションで実行して分析する一連作業をデモンストレーションの形で紹介します。使用するデータは、SASほかのアプリケーション、例えばVisual Analyticsなどでも利用できる様子を紹介します。 3.Deploying Models Using SAS® and Open Source 近来、機械学習と人工知能の議論はほとんどの時間がモデル開発の議論に費やされています。しかし、モデルによって得られる洞察をどのように効率的にビジネス価値創出に適用するかに関してはほとんど議論されていません。この論文では、モデルの構築に応じ、Docker、Flask、Jenkins、Jupyter、Pythonなどのオープンソースプロジェクトとの組み合わせで、SASを使用してモデルを展開するためのDevOpsプリンシパルの使用例を紹介します。例に使われている関連アプリケーションはグローバルなユーザベースを持つ資産上のレコメンド・エンジンとなります。この使用例は、セキュリティ、待ち時間、スケーラビリティ、再現性に直面する必要があることをめぐってディスカッションします。最後に、その解決策となるソリューションとその課題となる部分を含めて説明します。 4.SAS®
PythonからSAS Viyaの機能を利用するための基本パッケージであるSWATと、よりハイレベルなPython向けAPIパッケージであるDLPyを使用して、Jupyter NotebookからPythonでSAS Viyaの機能を使用してセマンティック・セグメンテーション(Semantic Segmentation)を試してみました。 大まかな処理の流れは以下の通りです。 1. 必要なパッケージ(ライブラリ)のインポートとセッションの作成 2. 画像データ内容の確認とセグメンテーション用データセットの作成 3. モデル構造の定義 4. モデル生成(学習) 5. セグメンテーション(スコアリング) 1. 必要なパッケージ(ライブラリ)のインポートとセッションの作成 swatやdlpyなど、必要なパッケージをインポートします。 %matplotlib inline # SWAT パッケージのインポート import swat as sw import sys # DLPy パッケージのインポート import dlpy from dlpy.network import * from dlpy.utils import * from dlpy.applications import * from dlpy.model