この記事はSAS Institute Japanが翻訳および編集したもので、もともとはMike Gillilandによって執筆されました。オリジナルはこちらです(英語)。 またこれは、ゲストブロガーのジェシカ・カーティス(Jessica Curtis)とアンドレア・ムーア(Andrea Moore)による3部構成記事の第3部です(未読の方はこちら:第1部、第2部)。 SASがそれを実現する方法 オープンソースの時系列予測モデルをSAS Visual Forecastingに統合する方法には2つのメインステップがあり、どちらのステップもオープンソース・モデルのメリットと利用価値を増大させます。 基礎:オープンソース予測モデルをプログラム的実行で拡張する 資産の共有:オープンソース予測モデルをカスタム・モデリング・ノードとして利用する ステップ1 - 基礎:オープンソース予測モデルをプログラム的実行で拡張する オープンソースの時系列予測モデルをSASに統合するための基礎は、コードベースのアプローチを通じてプロセスを(手作業ではなく)プログラム的に実行することです。あなたは既にTSMODELプロシジャとEXTLANGパッケージのパワーについてお読みです。 TSMODELプロシジャ内部には、オープンソース・モデルを実行するためのオプションがいくつもあります。まず、自社/自組織のオープンソース戦略を加速および業務運用化するためのインフラとしてSASを活用し、オープンソース・モデルだけを実行することができます。また、これをもう一歩進め、オープンソース・モデルをSASのモデルと一緒に実行することができます。この場合、SASは時系列レベルでSASとオープンソースにまたがって最適なモデルを自動的に選択します。さらに、SASおよびオープンソースのモデルを組み合わせることも可能であり、この場合は、SASとオープンソースの組み合わせが個々の時系列に最適かどうかをSASが判断することになります。このアプローチにより、オープンソース・モデルの構築に投じてきた全ての努力を活かしながら、SASのアルゴリズム群も追加で取り込むことで、両方の世界の “いいとこ取り” を実現できるようになります。どのモデリング手法が最適かをあなたが事前に知る必要はなく、SASがあなたのためにその力仕事を代行します。SASは個々の時系列に関して、オープンソースとSASのどちらのモデルを選ぶべきか、あるいは両方を組み合わせるべきかを判断します。選択の機会が無限にある取り組みにおいて、これでその選択機会が一つ減ったことになります(お分かりですよね? あなたの時間は既に節約されつつあります!)。 図2は、TSMODELプロシジャとEXTLANGパッケージの実際の様子を示しています。これは、R言語のauto.arima関数をSASで実行している例です。EXTLANGパッケージを使うと、オープンソース・コードを読み込む方法の柔軟性が高まります。SASの内部で(図2のように)明示的にオープンソース・コードを記述することも、あるいは、指定したファイルからオープンソース・コードを読み込むこともできます。 この基礎のステップにより、オープンソースおよびSASの時系列予測モデルがともにプログラム的に実行されるようになります。予測結果は、幅広いビジネスユーザー層による利用のために、川下側の計画システムや実行システムへと簡単な方法で供給することができます。また、この基礎となるプログラム的アプローチを土台として、追加のメリットを得ることも可能です。具体的には「SAS Visual Forecastingのユーザー・インターフェイスの内部で、TSMODELのコードを取り出し、それをカスタム・モデリング・ノードの中へラッピングする」という方法を使います。 ステップ2 - 資産の共有:オープンソース予測モデルをカスタム・モデリング・ノードとして利用する SAS Visual Forecasting のグラフィカルなユーザ・インターフェースは「様々なカスタムノードを作成し、それらをモデル・パイプライン内での利用のためにExchangeにロードできる機能」により、コラボレーションを強化します。カスタムノードはEXTLANGの機能を活用して、あらゆるR/Python予測モデルを実行することができます。様々な技法を使いたい場合には、多数のカスタムノードを作成することができます。その手間をかける見返りは多重的です。これらのノードは、どのような時系列予測プロジェクトにも適用可能であり、また、コラボレーションを強化するためにチーム内で共有することも可能です。いったん作成すれば、様々なパイプラインの中で、あるいは様々なデータ入力に対しても再利用することができます。図3をご覧ください。 作成したカスタム・モデリング・ノードは、あらゆるパイプラインに追加することができ、パイプライン内でSASの予測技法と独自のオープンソース・ノード(群)を組み合わせたり競わせたりすることができます。あなたのパイプラインが「複数のオープンソース/SASアルゴリズムによるトーナメント」を実行すると、SASはあなたの仕様指定にベストフィットするモデルを特定するための評価を実行します。モデル比較ノードを使うと、「複数のオープンソース/SAS技法を管理しながら、最良のモデリング戦略を評価するためにそれらを比較する作業」のための、迅速で透明性の高い方法が実現します。図4をご覧ください。 SAS Visual Forecasting のグラフィカルなユーザ・インターフェースを使うことで、「ワークロードの分散処理」や「オープンソースとSASにまたがるモデル選択」など、プログラム的アプローチの全ての利用価値が手に入ります。しかし、それだけではありません。このアプローチには「生産性と透明性の向上」、「オーバーライド(手動調整)機能や例外管理機能も備えた、ガバナンスの効いたワークフロー」、「ビジュアライゼーション機能との統合」という追加のメリットもあります。これらのビジュアライゼーション機能はUIに組み込まれており、ユーザーは追加の労力なしで、時系列予測モデルをより的確に理解および評価できるようになります。その使い勝手は対話操作性と協働作業性に優れており、プログラマー以外の幅広いユーザー層が利用できます。 プログラム的アプローチを利用するか、Visual Forecasting のグラフィカルなユーザ・インターフェースの中でカスタム・モデリング・ノードを作成するかを問わず、SASは小規模なプロジェクトから全社規模のソリューションへの転換を図る取り組みに適した、拡張性と弾力性の高い時系列予測環境を実現します。 まとめ 要約すると、SAS Visual Forecastingはオープンソースによる時系列予測戦略の可能性を広げます。TSMODELはSAS Visual Forecastingの基底をなしているプロシジャであり、EXTLANGパッケージはオープンソース言語との統合を可能にします。TSMODELとEXTLANGの組み合わせによって “マジック” が生まれます。SASはオープンソース・スクリプトを分散処理します。SASは複数の入力データを同時並行で読み込みます。SASはオープンソース・コードの実行を分散処理します。SASは複数の出力データセットを同時並行で書き出します。分散処理、拡張性、弾力性 ── 要チェックです!
Tag: 時系列予測
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはMike Gillilandによって執筆されました。オリジナルはこちらです(英語)。 またこれは、ゲストブロガーのジェシカ・カーティス(Jessica Curtis)とアンドレア・ムーア(Andrea Moore)による3部構成記事の第2部です(第1部はこちら)。 SASがオープンソースにもたらす価値 何よりもまず、SASは時系列予測用の入力データを分散処理します。SASは時系列予測のためにデータをインテリジェントに分割する方法を理解しており、例えば、時系列グループが様々なワーカーノードにまたがって分割されることはありません。その上で、SASはオープンソースのスクリプト群そのものを複数のワーカーノードにまたがって分散させ、オープンソース・コードの実行を分散処理します。より具体的に言うと、EXTLANGパッケージはPythonまたはRのコードを呼び出す際、個々のPython/Rインタプリタを複数のワーカーノードのそれぞれに振り向けます。その結果、複数の時系列は同時並行で処理されます。このことがスケーラビリティと効率性の観点から何を意味するかを考えてみてください。これにより、あなたは自社/自組織の時系列予測能力を「一つの時系列予測課題の解決」から「組織全体の多種多様な時系列予測課題の解決」へと広げることができるようになります。しかも、より迅速かつ大規模に解決することができます。 例えば、あなたの勤務先がグローバル小売企業だと想像してみてください。あなたのビジョンは、単一の一貫した時系列予測プラットフォームで会社全体の多種多様な時系列予測課題を解決することです。膨大な数のSKUの品揃えの需要予測から、サプライチェーン全体に展開すべき適切な在庫量の判断、各店舗における労働の最適化に至るまで、あらゆる取り組みにおけるあなたの目標は、アナリティクスに基づく正確な意思決定を推進することです。今日、あなたはちょうど、「財務計画の意思決定のための集計レベルの時系列予測」をR言語で開発するプロジェクトで、最初の作業パスを終えたところだとしましょう。R言語による時系列予測アプローチは多くの点で成功しているように見えますが、あなたは店舗の労働に関する意思決定をサポートするために、これらの時系列予測機能を拡張し、より高粒度なレベルでの時系列予測を開発することを目指しています。時系列予測担当アナリストのチームは小規模であるため、あなたには、多種多様な時系列予測ユースケースに対応するために効率的に処理規模を拡大・拡張できる自動化されたプロセスが必要不可欠です。 集計レベルでの財務計画のために、あなたは1,000個の時系列処理を実行しています。店舗別および部門別の店舗労働計画の場合、この数はあっという間に10万個へと膨れ上がります。SKU/店舗レベルのサプライチェーン計画では、時系列は数百万個に及びます。これは間違いなく、大規模な時系列予測課題だと思われます。「分散処理に対応したスケーラブルな時系列予測ソリューションのパワーによってのみ克服可能な課題」ということです。ようこそ、SAS Visual Forecasting の領域へ。 どのような大規模な時系列予測課題でも、成功のカギを握るのは自動化です。そしてそれこそ、SASが行うことです。SASは統計的予測プロセスおよびオープンソース・モデルの実行を自動化することにより、お客様のビジネスにおける時系列予測プロセスの効率化を推進します。TSMODELプロシジャとEXTLANGパッケージのパワーにより、SASはオープンソース・モデルの実行時間を加速することで、時系列予測プロセスの効率化を更に推進します。これにより、あなたのチームは「時系列予測モデルを一度に一つずつ作成する負担」が軽減し、真の例外ベースのプロセスへと移行することができます。解放された時間で、事業計画の取り組みや、予測対象を新しい領域に広げる取り組みに注力できるようになります。端的に言うと、少ないリソースで多くのことが行えるようになる、ということです。 いったんモデルを作成した後は、SASが自動的に複数の出力用データセットを生成します。これは単なる時系列予測を超えた機能です。これには「モデルの仕様」、「当てはめ統計量」、「パラメータ推定値」を格納している多種多様なデータセットも含まれています。次に、これらの出力用データセットは ── あなたのご想像通り ── 分散処理にかけられます。このリッチな出力用データはデータサイエンス・チームとビジネス・チームの両方に対し、「重要な需要推進要因」や「モデルの詳細」に関する多くの洞察をもたらします。統計的予測を信用していないビジネス部門の人々と交わしたことのある様々な議論を思い出してください。その点、SASが自動的に作成する出力用データセットは「モデルがなぜ、何を行うのか」を “見える化” するために役立ち、その結果としてビジネス部門側との議論の質が高まり、モデルの採用率が改善されます。 また、SAS Visual Forecasting は、内蔵されているベストプラクティスにより、オープンソース・モデル群の強化も行います。特許取得済みのデータ診断機能やモデル構築プロセスから、リコンサイル(調整)機能付きの自動階層型予測機能、さらには、統合型の時系列セグメンテーション機能に至るまで、SAS Visual Forecastingは単なるアルゴリズムを超えたレベルで、様々なベストプラクティスに基づくエンドツーエンドの時系列予測プロセスを提供します。 自動化機能、加速機能、強化機能は全て、お客様の組織のニーズに合わせた規模調整に対応可能です。組織全体の多種多様な時系列予測ユースケースに応じて処理規模を拡大(または縮小)することができます。製品階層やロケーション階層の最下位レベルの粒度まで掘り下げる大量かつ複雑な処理にも対応できる高度なスケーラビリティにより、任意のレベルで時系列予測を実行し、結果を生成することができます。「最初に上位レベルの時系列予測を作成/調整し、それを手作業で下位レベルに落とし込む(按分する)手法」に頼る必要はもうありません。SASは、ビジネス上の意思決定が行われるのと同じレベルで、高品質な時系列予測を自動的に生成します。 (第3部に続く)
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはMike Gillilandによって執筆されました。オリジナルはこちらです(英語)。 ゲストブロガーのジェシカ・カーティス(Jessica Curtis)とアンドレア・ムーア(Andrea Moore)による3部構成記事の第1部にようこそ。 時系列予測はユビキタスな存在 時系列予測は、事実上あらゆる業種にわたり、ビジネスにおける多種多様な意思決定の中核を支えています。それはあなたの勤務先が、「膨大なSKUの品揃えの計画」や「配送センターや店舗の労働計画の改善」に取り組む小売企業であるか、需要計画プロセスの刷新に取り組んでいる消費財企業であるかを問いません。あるいは、デジタル広告/在庫計画/価格設定のために時系列予測を活用しているメディア企業や、最適なリソース配分のためにネットワーク利用率を予測している通信企業など、挙げればきりがありません。より優れた予測を得ることのインパクトは、あらゆる企業・組織における “ビジネス上の意思決定” に広範囲かつ抜本的な向上効果をもたらします。 44年以上にわたり、SASは世界各地の数千社の企業のために大規模な時系列予測プロセスを改善し続けています。SASはその間、統計的予測の精度向上と時系列予測作成プロセスの効率化を通じて最終利益の押し上げに貢献する強固な時系列予測ソフトウェアを開発および強化し続けてきました。これは決して大げさな表現ではありません。実際、当社は何冊も書籍を出しています。 SASの最新の時系列予測テクノロジーを搭載したSAS Visual Forecasting は、全社規模の様々な時系列予測課題を迅速かつ自動的に解決するための唯一無二の機能を提供します。SAS Visual Forecastingは、最新鋭の各種アルゴリズム ── 機械学習、時系列、アンサンブル ── だけでなく、過去データの診断、複雑な階層にまたがる自動予測、予測の例外管理に関する内蔵型ベストプラクティスも搭載しています。SAS Visual Forecastingの中核にある信条の一つは、「オープンソースのモデルを実行し、それらを大規模にデプロイ(業務実装)するための、オープン・エコシステムを提供する」ということです。 現在、オープンソース・ソフトウェア(OSS)は時系列予測モデルを開発するために広く使われています。多くの企業・組織がオープンソース戦略に取り組み始めており、PythonやRを活用して時系列予測を作成していますが、組織全体の多種多様な時系列予測ユースケースに対応するべく規模を拡張しようとしたときに様々な難題に直面しています。オープンソースの時系列予測モデルを「SASのソリューション」(以下、単に「SAS」)で実行することには複数のメリットがあり、既存のオープンソース戦略に立脚しながら俊敏かつ効率的な方法を確立することができます。もはや、SASとオープンソースのいずれかを選択する必要はなく、両者は真の相補的な関係にあります。 オープンソースで開始する 多くの企業・組織は、頑健な時系列予測を作成することに苦戦しているほか、様々な時系列予測ユースケースのために規模を拡張しようとしたときに難題に直面しています。個々の時系列予測課題には、データが徐々に増加し、複雑性も増大していくという問題が伴います。 例えば、あなたの勤務先が通信企業で、あなたは追加のインフラ(例:携帯電話網のセル)投資を行うべき場所に関する意思決定をガイドするために、データ帯域幅の需要を予測する必要があるとします。新規インフラ投資を計画するためには、帯域幅需要が時の経過とともにどのように変化するかを理解する必要があります。そこであなたは、市場における総需要が徐々に増加する様子を推計するために、オープンソースの時系列予測ソリューションを構築します。そこから得られる予測は、ネットワークをどれほど拡大するべきかに関する年間計画の基礎となります。そしてあなたは、計画プロセスへのアナリティクス活用について高く評価されたとしましょう。次のサイクルでは、計画のための単独の総合的な予測ではなく、「追加データの取り込みを伴う分析」と「通信インフラの個々の構成要素に関する予測の作成」を依頼されることになりました。 図1は今回の要請が「市場だけでなく、個々の都市/中継局/ノード/構内も対象とした予測」であることを示しています。この分析には、大量のデータと多数の時系列を用いて数千あるいは数百万もの時系列予測を生成する作業に対応できる処理規模の拡張性が必要不可欠です。上位レベルの値を下位レベルの値へと配分するのではなく、高粒度レベルの個々のネットワーク・コンポーネントに関する統計的予測を集計していくことが、予測精度の向上へとつながるからです。こうした予測精度の向上が実現すれば、資本計画プロセスは更に洗練されたものとなり、リソースは最も必要性の高い場所にピンポイントで、適切なタイミングで配分されるようになります。 これはネットワーク計画に固有の話ではなく、同じテーマの議論が全ての業種で繰り返されています。ここで必要とされているのはパラダイム・シフトです。あなたはもはや、個々の時系列予測を手作業でチューニングすることはできません。数量が大きすぎるからです。 必要なのは、「あらゆるタイプのユーザー(例:プログラマーと非プログラマー)が “モデルの構築” や “高品質な時系列予測の生成” において生産的になること」および「分散環境でデータを高速に処理すること」を可能にするソリューションです。そうしたソリューションでは様々なプロセスの自動化が、高精度な時系列予測の生成を促進します。 ここまで来ると、予測モデルを構築するだけの話ではなくなります。それよりも遥かに大規模な取り組みになります。また、時系列予測の結果を事業計画プロセスに統合することも必要になります。そのためには、多くのユーザーが結果を確認・操作したり、必要に応じて処理を追加したりできるようなソリューションが必要です。また、結果を共有できる機能や、ビジネスユーザーが業務プロセスの中で結果を利用できる機能も重要です。 多くの企業が難題に直面している理由は、これまでの努力を無駄にしたくないと考えたり、継続性を懸念したりしている一方で、自社の現在のオープンソース・アプローチが既に限界に達していると気付いているからです。 SASのソリューションはオープンソースを強化・拡張する 全社的/全組織的な時系列予測の取り組みにおいてオープンソース・アプローチが限界に達したとしたら、それこそSASが本領を発揮する状況です。オープンソースの時系列予測モデルを構築するために投じてきた膨大な作業の全てを失いたくないと思うのは当然のことです。実際問題、それらを失う必要はありません。SASのアプローチでは、オープンソースのモデル群をSAS Visual Forecastingに取り込んだ上で、それらの利用価値を拡張します。 SAS Visual Forecastingによるオープンソース統合の基礎となっているのは、TSMODELプロシジャとEXTLANGパッケージです。TSMODELは、SAS Visual Forecastingの基底をなしているプロシジャです。EXTLANGパッケージは、外部言語(例:PythonやRなど)のシームレスな統合を可能にします。 TSMODELとEXTLANGは「オープンソースによる時系列予測戦略」を改善します。SASはこれらの技法を通じて、オープンソースのモデルを実行するための「分散処理に対応した拡張性・弾力性の高い方法」を提供します。データの準備から、モデルの開発、モデルのデプロイに至るまで、アナリティクス・ライフサイクルの全てのステップにおいて、SASはオープンソースの時系列予測モデルを強化します。SASはPythonやRで作成されたモデルに対してオープンなだけでなく、分析ワークロードを自動的に分散処理することでオープンソースを拡張します。ちょっと立ち止まって掘り下げましょう。言い換えると、SASが「オープンソースのモデルを改善する」というのは、ひとつには、「その実行を高速化する」ということです。また、それ以外にも、SASが備える数々の “実証済みの利用価値の高い機能性” も手に入ります。もし興味をそそられたのなら、どうぞ読み進めてください。 (第2部に続く)
「ビジュアルパイプラインで将来予測」では、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!
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に絞り込んだチャートです。 ④ 予測結果確認
PythonからSAS Viyaの機能を利用するための基本パッケージであるSWATと、よりハイレベルなPython向けAPIパッケージであるDLPyを使用して、Jupyter NotebookからPythonでSAS Viyaのディープラーニング機能を使用した時系列予測を試してみました。 大まかな処理の流れは以下の通りです。 1.必要なパッケージ(ライブラリ)のインポート 2.Sin波データの生成 3.セッションの作成 4.RNN向け時系列データセットの作成 5.モデル構造の定義 6.モデル生成(学習) 7.予測 1.必要なパッケージ(ライブラリ)のインポート swatやdlpyなど、必要なパッケージをインポートします。 import numpy as np import pandas as pd import matplotlib.pyplot as plt import swat.cas.datamsghandlers as dmh from swat import * import dlpy from dlpy import Sequential from dlpy.layers import * from dlpy.model import Optimizer, AdamSolver, Sequence
SASでは、従来からオープン・AIプラットフォームであるSAS Viyaの機能をPythonから効率的に活用いただくためのハイレベルなPython向けAPIパッケージであるDLPyを提供してきました。 従来のDLPyは、Viya3.3以降のディープラーニング(CNN)と画像処理(image action set)のために作成された、Python API向けハイレベルパッケージです。 DLPyではKerasに似たAPIを提供し、より簡潔なコーディングで高度な画像処理やCNNモデリングが可能でした。 そして、この度、このDLPyが大幅に機能拡張されました。 最新版DLPy1.0では、以下の機能が拡張されています。 ■ 従来からの画像データに加え、テキスト、オーディオ、そして時系列データを解析可能 ■ 新たなAPIの提供: ・ RNN に基づくタスク: テキスト分類、テキスト生成、そして 系列ラベリング(sequence labeling) ・ 一般物体検出(Object Detection) ・ 時系列処理とモデリング ・ オーディオファイルの処理と音声認識モデル生成 ■ 事前定義ネットワーク(DenseNet, DarkNet, Inception, and Yolo)の追加 ■ データビジュアライゼーションとメタデータハンドリングの拡張 今回はこれらの拡張機能の中から「一般物体検出(Object Detection)」機能を覗いてみましょう。 SAS Viyaでは従来から画像分類(資料画像1.の左から2番目:Classification)は可能でした。例えば、画像に映っている物体が「猫」なのか「犬」なのかを認識・分類するものです。 これに加えて、DLPy1.0では、一般物体検出(資料画像1.の左から3番目:Object Detection)が可能になりました。 資料画像1. (引用:Fei-Fei Li & Justin Johnson & Serena Yeung’s Lecture