サプライチェーンチームは長い間、膨大な数のモノの動きを把握しているビジネスアナリストによって支えられてきました。膨大な数のモノの動きがあるということは、大量のデータがあることであり、データ主導型の意思決定を可能にする素晴らしい機会があるということになります。では、サプライチェーンのアナリストがデータ主導型の意思決定を行えるようにするにはどうすべきでしょうか?この2部構成のブログでは、1行もコードを書かかずにエンド・ツー・エンドのサプライチェーンのユースケースを紹介します。
データサイエンスの楽しみに入る前に、まずはプロジェクトの目標とメリットを挙げてみましょう。明確な目標を立てて、データプロジェクトを開始することは、プロジェクトの成功に不可欠です。データプロジェクトでは、さまざまなデータソースを使用して仮説検証を繰り返す必要があります。プロジェクト開始前に、すべての疑問を解決する必要はありません。しかし、目標(納期遅れの削減など)とメリット(数百万ドルの納期遅れによる損害コストを削減)を決めてからプロジェクトを開始することで、避けられない問題に直面したり、プロジェクトの重要な意志決定をしなければならない時でも、プロジェクトの全体像を見据えることができます。
Dataiku活用で、時間通りの配送を実現
パンデミックによる混乱がもたらした興味深い結果の1つに、サプライチェーンに関する議論が一般的になってきたことが挙げられます。これをきっかけに、商取引の極めて重要なプロセスであるサプライチェーンについて詳しく学んでみましょう。
ユースケースの背景
目標:配送の遅延を減らす。時間通りの配送とは、トラックが配達予定日時を守れるかどうかを予測することに焦点をおいたユースケースです。それらを紐解いてみましょう。
- 「予測 ("Prediciting if")」は、機械学習(ML)、正確には分類タスクに相当します。
- 「トラック("Truck")」すべての輸送手段は、商品の輸送に使用されます。今回のユースケースでは、トラックです
- 「配達時間を満たす("Meet its delivery window"」は、商品を注文する小売業者が事前に提示した時間枠です。
ビジネス価値のメリット
配送遅延があった場合は罰金が科せられ、各小売業者は独自の罰金スケジュールが設けています。例えば、ウォルマートは注文商品費用の3%を請求します。四半期ごとに合計で数百万ドルになります。これらの注文が配送センターに向かうことを考えると、潜在的な注文額は数十万ドルであり、何千件の注文数に相当します。MLモデルが配達時間枠を逃す可能性が高い配送を事前に検出することができれば、企業は数百万ドルの営業経費を削減することができます。
要件:
-
データ
各レコードに「時間通り("on-time")」または「時間通りでない("non on-time")」として分類するラベルが付いた、過去の配達データ。このデータは、ほぼ確実に、複数のサプライヤシステムに分散していますが、最終的なMLモデルに必要不可欠となります。 -
人
- データエンジニア(DE): データ要件から、データエンジニア(DE)が必要なことは理解していらっしゃるかもしれません。DEは、他のグループのデータをキュレートするだけでなく、提供するデータに基づいて構築されたプロジェクトとモデルを管理する上でも重要な存在です。
- アナリスト: このグループは、サプライチェーンプロジェクトにとって特に重要です。彼らは配送業者コードのようなものをよく理解しています。サプライチェーンのデータは非常に乱雑になる傾向があり、アナリストはこのデータを毎日把握し、処理しています。このグループは、業界の専門家でもあります。
- データサイエンティスト(DS): 統計に強いグループです。彼らは他の2つの役割のメンバーと緊密に連携する必要があります。彼らはアナリストと協力して、モデリングのためにデータを理解し、変換する必要があります。また、データエンジニアと協力して、次のモデルの管理をサポートします。
データ
各企業には独自のデータシステムがあります。同じユースケースであっても、データソースは会社ごとに異なります。最終的に私たちが必要なデータは、さまざまな通信事業者のフラットファイル、SAPからの延滞料の履歴財務データ、TransplaceやC.H. Robinsonなどのドメイン特有のシステムなど、複数の情報源(ソース)にまたがって分散されていました。これらの3つのシステムは、このブログで使用されているデータセットのソースです。データセットには88の列と約9万行で、各行は「時間通り(on-time)」または「配送遅延("missed delivery window"」とマークされた配送情報が記されています。
データの準備
データの準備は、間違いなく最も重要なステップです。また、ほとんどのデータプロジェクトの中で最も長時間を要する構成要素です。最終的なプロジェクトパイプラインには、70を超える個別の前処理に関するステップがあります。重要なステップをいくつか調べてみましょう。
データの準備には、手元にあるデータを理解する必要があります。そのために、DataikuにはEDA(探索的データ分析)機能がプラットフォームに組み込まれています。詳細は、Dataikuを使用したデータ探索に関する4分間の動画(英語)をご覧ください。
データリーケージ
データリーケージとは、本番環境ではモデルが利用できない情報を使って予測モデルを作成してしまうという概念です(たとえば、配送を依頼されたとき、どの運送業者がその注文を受け取りに来るのか分からない場合があります)。そのため、配送業者に特化した列を使ってモデルをトレーニングすることはできません。そこで、配達リクエストで利用できなかった40以上の列をデータセットから削除しました。サプライチェーンプロジェクトは、配送業者や購入者からのデータがさまざまな頻度で提供されるため、特にデータリーケージの影響を受けやすくなります。
どの列を削除するかを理解することは、試行錯誤のアプローチが必要であるため、非常に負担のかかる作業です。アナリストチームとコラボレーションすることで、彼らの専門知識を活用し、試行錯誤のサイクルを減らすための優れた方法です。Dataikuのコラボレーション動画 (2分間のデモ)(英語) をご覧ください。
クラス再調整
分類基盤モデルの一般的な問題は、マイノリティクラスを正確に予測することです。我々のデータセットでは、マイノリティクラスは「配送遅延」です。これは、レコードの80%以上が時間通りの配送であるためです。ビジネスの観点からは、80%という数値が許容できる可能性があります。MLの観点からは、時間通りの配送データと、配送遅延データが均等に分散されている必要があります。以下のgifが示すように、配送遅延の記録を複製する簡単な手順で、モデルのパフォーマンスを大幅に向上させることができます。
最終的なデータの準備
これまでのトレーニングパイプラインの準備ステップ(結合、文字列操作、集計、ピボット)において一切コードを使用せずに準備できたことに注目してください。しかし、Dataikuではコードを書く方々も、完全にサポートしています。Dataiku Academyには、コーディングに特化したコースも用意しています。
さらに、Dataikuがなければ、代入、ダミー変数、循環時間エンコーディング、およびデータ正規化のための追加準備が必要になります。以下のスクリーンショットにあるように、Dataikuにはこれらの各ステップの機能が全て組み込まれています。
要約
重要な内容をたくさん取り上げました。いくつかの主要なポイントを要約します。
- データプロジェクトは、目標と付随するメリットを明らかにするところから始める必要があります。
- データリーケージに注意してください。過度に最適化されたモデルに基づいて不適切なビジネス上の意思決定をしてしまう可能性があります。
- ターゲットクラスのバランスに注意してください。そうしないと、予測モデルはマイノリティクラスをうまく予測することができません。
今回のプロジェクトでは、予測モデルのトレーニング開始準備が整いました。モデルのトレーニングについては第2部で詳しくご紹介します。
DataikuとSupply Chainについて、詳細をご希望の方はこちら(英語)をご参照ください。
原文:Supply Chain Analysts: Ensure On-Time Delivery With Dataiku