クラスタリング¶
時系列クラスタリングは、DataRobotに固有の事前定義済みソリューションであり、複数系列データセット全体で類似の系列を簡単に識別してグループ化できます。 プラットフォームの外部で時系列クラスタリング手法を手動で実行し、クラスター割り当てをセグメント化特徴量として使用する代わりに、時系列ワークフロー内にこのプロセス全体が含まれています。 DataRobotはDTWと速度の両方のクラスタリングモデルを構築するため、クラスタリング機能を使用するには、動的時間伸縮法(DTW)などの高度な概念に慣れたり、コードに精通したりする必要はありません(詳細については、 こちらを参照してください)。
備考
時間認識以外のプロジェクトでもクラスタリングは利用できますが、セグメントモデリングは利用できません。
例:北米の店舗全体での靴の売上を予測しています。 クラスタリングを使用すると、DataRobotは、サンフランシスコとクリーブランドのすべての店舗を1つのクラスターに自動的にグループ化できます。これは、これらの場所の販売プロファイルが同じであるためです。
簡単に言えば、クラスタリングは系列をグループ化するためのメカニズムです。 見つかったクラスターは、時系列 セグメント化モデリングへの入力として使用できます。 (さらに、クラスタリングを使用すると、データをさらに理解することができます。) クラスタリングなしで、設定されたセグメントIDに基づいて系列をグループ化する方法を自身で定義します。 一方、クラスタリングは、データを見てどの系列が最も類似しているかを判断することで、系列を自動的にグループ化します。 クラスターが確立されると、次のことが可能になります。
-
セグメント化されたモデリングワークフローの一部として 即時使用するクラスタリングモデルを作成します。
-
クラスタリングモデルを作成し、 モデルレジストリに保存して、後でセグメント化されたモデリングに使用します。
クラスター化する場合、ターゲット(「出力」)変数はありません。 DataRobotは、類似性に基づいて系列をグループ化します。 ただし、セグメント化されたモデリングで使用するターゲット特徴量について考える必要があります。 DataRobotでは、セグメント化されたモデリングプロジェクトでターゲットとして選択する予定の変数を、クラスタリングの出力変数として使用することをお勧めします。
時系列固有のクラスタリングに関する注意事項も参照してください。
クラスターの検出¶
DataRobotがクラスターを検出できるようにするには:
-
データをアップロードし、ターゲットなし?をクリックし、クラスターを選択します。
モデリングモードのデフォルトは[包括的]で、最適化指標のデフォルトはシルエットスコアです。
-
時間認識モデリングを設定をクリックして、プライマリー日付/時刻の特徴量を選択します。 (モデリングモードは包括的からオートパイロットに切り替わります。)
-
系列IDを設定する。 DataRobotは時間認識クラスタリングプロジェクトを設定します—クラスターオプションが有効になっている教師なしプロジェクトです。
-
クラスター化する特徴量を設定します。 モデリングに使用できるのは選択した特徴量だけです。 DataRobotは、日付/時刻特徴量と系列IDを自動的に追加します。
-
セグメント化されたモデリングでクラスターを使用するには、目的の出力変数(「ターゲット」)のみを追加します。 DataRobotでは、セグメント化されたモデリングプロジェクトでターゲットとして選択する予定の変数を、クラスタリングの出力変数として使用することをお勧めします。
-
セグメンテーションなしでクラスター化するには、特徴量を追加します。
クラスター特徴量を設定をクリックします。
注意
DataRobotは、クラスタリング時に 特徴量派生プロセス中に作成された特徴量を使用しません。
-
-
(オプション)DataRobotが発見するクラスターの数を変更します。 ヘルプテキストのクラスタリングをクリックして、高度なオプションの クラスタリングタブを開きます。 手動モードを使用している場合は、リポジトリから数値を設定するオプションが表示されます。
詳細:クラスタリングバッファー
クラスタリングモデルには、開始と終了のタイムスタンプがあります。 開始と終了の違いは、クラスタリングのトレーニング期間です。 終了後の任意の時間は、ホールドアウトバッファーと見なされます。
利用可能なデータが十分にある場合、DataRobotはクラスタリングバッファーを作成します。これは、詳細オプションのパーティショニングセクションに表示されます。 クラスタリングバッファーとは、ホールドアウトが後続のセグメンテーションプロジェクトでどうなるかを表すためにDataRobotが計算するデータ部分です。 次に、トレーニングデータの日付をシフトしてホールドアウト期間を考慮し、データリーケージを防ぎ、セグメンテーションでホールドアウト パーティションになるものにクラスタリングモデルをトレーニングしていないことを確認します。
バッファを削除するには、クラスタリングバッファを含めるを切り替えてオフにします。
-
開始をクリックして、オートパイロットを開始します。
検出されたクラスターを使用して探索できます。—クラスターは、データセット内の列で明示的にキャプチャされていない潜在動作をキャプチャできます。 または、 ワークフローを続行して、セグメント化されたモデリング プロジェクトでクラスターを使用するか、 後で使用するためにモデルをモデルレジストリに保存します。
クラスターモデルを今すぐ使用¶
オートパイロットが完了すると、 系列インサイトタブでクラスターと系列の分布情報を確認できます。 新しく見つかったクラスターを使用してセグメントを定義するセグメント化されたモデリングプロジェクトを作成するには:
-
リーダーボードからモデルを選択して、予測をクリックします。セグメンテーションに使用するタブが開きます。 このタブでは、以下の操作を実行できます。
-
新しいプロジェクトで何を予測するかフィールドには、セグメント化されたモデリングプロジェクトのターゲット特徴量を入力します。
-
プロジェクトを作成して、モデルレジストリに保存をクリックします。
クラスタリングモデルを保存し、後でプロジェクトを作成するには
ここでセグメンテーションプロジェクトを作成する代わりに、モデルレジストリに保存を選択してクラスタリングモデルをモデルパッケージとして保存できます。
-
プロジェクトに移動をクリックします。
セグメンテーションメソッドは、クラスタリングモデルを使用して設定されます。
-
開始をクリックしセグメント化されたモデルを構築します。 セグメンテーションプロジェクトを実行することを、プロンプトで確認します。
ヒント
この手順では、時系列クラスタリングモデルをモデルパッケージとして保存します。 後で保存したクラスタリングモデルを使用して、 セグメント化されたモデリングプロジェクトを作成できます。
モデルレジストリのクラスターモデルの使用¶
時系列クラスタリングモデルをモデルパッケージとして保存した後、それをセグメント化された新規モデリングプロジェクトで使用できます。
備考
クラスタリングプロジェクトからセグメント化されたモデリングプロジェクトを構築する場合、クラスターの生成で使用した同じデータセットを使用する必要があります。
-
標準ワークフローを使用して 時系列プロジェクトを設定します。
- 上記の手順でクラスターを作成した際に、新しいプロジェクトで何を予測するかで指定したターゲットを入力します。
- モデリング方法として自動時系列予測を設定します。
- 系列IDを設定する
-
必要に応じてウィンドウ設定を変更し、セグメンテーション方法の横にある鉛筆をクリックします。
-
セグメントごとの構築モデルを確認します。 次に、既存のクラスタリングモデルを使用することを選択し、定義セクションで+モデルレジストリを参照をクリックします。
-
表示されるポップアップウィンドウで、時系列クラスタリングモデルパッケージを選択し、モデルパッケージを選択をクリックします。
-
パッケージがセグメンテーション定義画面の一部として表示されるようになりました。 DataRobotは、セグメンテーションプロジェクトでのクラスタリングプロジェクトのトレーニング長ウィンドウを使用して、セグメンテーション プロジェクトに使用されるクラスターがクラスタリングプロジェクトで評価されたことを確認します。 セグメンテーション方法を設定をクリックします。
-
開始をクリックしセグメント化されたモデルを構築します。 セグメンテーションプロジェクトを実行することを、プロンプトで確認します。