次の方法で共有


平均予測モデルを使用した予測 (中級者向けデータ マイニング チュートリアル)

このレッスンの前の作業で、予測クエリ ビルダを使用して、Forecasting モデルの既定の予測を生成するクエリを作成しました。ここでは、世界売上モデルを個々の地域のいずれかに適用する予測クエリを作成する方法を学習します。

時系列予測での置き換え後のデータの使用

SQL Server 2008 では、PredictTimeSeries (DMX) 関数に EXTEND_MODEL_CASES と REPLACE_MODEL_CASES の 2 つの新しいパラメータが追加されており、時系列予測のカスタマイズに使用できます。

  • EXTEND_MODEL_CASES を使用すると、データを既存のモデルに追加し、新しいデータに基づいて予測を行うことができます。

  • REPLACE_MODEL_CASES を使用すると、モデルの作成に使用したデータ系列を別の系列のデータに置き換えることができます。

このシナリオでは、REPLACE_MODEL_CASES を使用します。ただし、まず置き換え後のデータのみを含むデータ ソース ビューを設定する必要があります。置き換え後のデータは、個々の系列のデータです。その後、汎用モデルを置き換え後のデータに適用する予測クエリを作成します。

置き換え後のデータを含むデータ ソース ビューを作成するには

  1. ソリューション エクスプローラ[データ ソース ビュー] を右クリックし、[新しいデータ ソース ビュー] をクリックします。

  2. データ ソース ビュー ウィザードで、以下の選択を行います。

    [データ ソース] : Adventure Works DW2008

    [テーブルとビューの選択] : テーブルを選択しない

    [名前] : T1000 Pacific Region

  3. [完了] をクリックします。

  4. T1000 Pacific Region.dsv の空のデザイン画面を右クリックし、[新しい名前付きクエリ] をクリックします。

    [名前付きクエリの作成] ダイアログ ボックスが開きます。名前を再入力し、以下の説明を追加します。

    [名前] : T1000 Pacific Region

    [説明] : 地域とモデルに基づいて vTimeSeries をフィルタ選択する

  5. テキスト ペインに次のクエリを入力します。

    SELECT ReportingDate, ModelRegion, Quantity, Amount
    FROM dbo.vTimeSeries
    WHERE (ModelRegion = N'T1000 Pacific')
    
    注意注意

    クエリ ビルダを使用してクエリを作成することもできますが、クエリ テキストを入力する方が短時間で済みます。ただし、クエリ テキストの入力後に別のペインをクリックして、クエリ テキストがどのように解析されてサポート テーブルからクエリが作成されるかを確認できます。また、クエリ テキストをコピーしてテキスト ファイルに保存し、別のデータ系列で再利用できるようにすることもできます。

  6. [OK] をクリックします。

  7. データ ソース ビュー デザイン画面で T1000 Pacific を右クリックし、[データの探索] をクリックしてデータが正しくフィルタ選択されていることを確認します。

ここで、時系列予測クエリを通常どおり作成しますが、REPLACE_MODEL_CASES パラメータを追加して、予測の基になるデータ系列が指定した新しいデータに置き換えられるように指定します。また、マイニング モデルと入力テーブルの間のマッピングも指定する必要があります。

予測クエリを作成して置き換え後のデータを指定するには

  1. モデルがまだ開いていない場合は、AllRegions 構造をダブルクリックして、データ マイニング デザイナで [マイニング モデル予測] タブをクリックします。

  2. [マイニング モデル] ペインで、モデル AllRegions が選択されている必要があります。選択されていない場合は、[モデルの選択] をクリックしてモデル AllRegions を選択します。

  3. [入力テーブルの選択] ペインで、[ケース テーブルの選択] をクリックします。

  4. [テーブルの選択] ダイアログ ボックスでデータ ソースを T1000 Pacific Region に変更し、[OK] をクリックします。

    作成したデータ ソース ビューが、列を含むテーブルとして表示されます。一部の列がマイニング モデルの列に既にマップされている場合があります。

  5. マイニング モデルと入力データの間の結合線を右クリックし、[接続の変更] をクリックします。

  6. [マッピングの変更] ダイアログ ボックスで、マイニング モデルの ReportingDate 列が入力データの ReportingDate 列にマップされていることを確認します。

  7. [マッピングの変更] ダイアログ ボックスの AvgQty の行で、[テーブル列] の下をクリックして T1000 Pacific.Quantity を選択します。[OK] をクリックします。

    この手順によって、汎用モデルの集計量列が置き換え後のデータ系列の数量列にマップされます。

  8. グリッドの最初の空白行をクリックし、[ソース] で [AllRegions] を選択します。[フィールド] で [Region] を選択します。[別名] に「Model Used」と入力します。

    この手順によって、予測が汎用モデルに基づくことを表す列が結果に追加されます。

  9. 新しい空白行をクリックし、[ソース][カスタム式] を選択します。[別名] に「ModelRegion」と入力します。[条件と引数] に「'T1000 Pacific'」と入力します。

    この手順によって、予測がどの系列に対するものかを表すラベルが結果に追加されます。

  10. 新しい空白行をクリックし、[ソース][予測関数] を選択します。[フィールド][PredictTimeSeries] を選択します。[別名] に「Predicted Quantity」と入力します。

  11. [マイニング モデル] ペインのフィールド AvgQty を [条件と引数] 列にドラッグ アンド ドロップします。

  12. [条件と引数] ボックスで、フィールド名の後に「,5, REPLACE_MODEL_CASES」と入力します。

    [条件と引数] テキスト ボックスの全テキストは、"[AllRegions].[AvgQty],5,REPLACE_MODEL_CASES" になります。

  13. [結果] をクリックします。

結果の表示

予測クエリから、次のような結果が返されます。

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 Pacific

$TIMEAvg Qty
7/25/2004 12:00:00 AM68
8/25/2004 12:00:00 AM52
9/25/2004 12:00:00 AM48
10/25/2004 12:00:00 AM56
11/25/2004 12:00:00 AM44

北米地域の T1000 製品モデルなどの別のデータ系列に汎用モデルを適用するには、系列ごとに異なるクエリを作成する必要があります。ただし、データ ソース ビューを作成するプロセス全体を実行するのではなく、作成した DMX ステートメントを編集して入力のフィルタ選択を変更することができます。たとえば、次の DMX ステートメントは、先ほど作成したクエリを表します。

SELECT
  ([All Regions].[Region]) as [Model Used],
  ( 'T-1000 Pacific') as [ModelRegion],
  (PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM
  [All Regions]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008],
    'SELECT
      [ReportingDate]
    FROM
      (SELECT        ReportingDate, ModelRegion, Quantity, Amount
FROM            dbo.vTimeSeries
WHERE        (ModelRegion = N''T1000 Pacific'')) as [T1000 Pacific]
    ') AS t
ON
  [All Regions].[Reporting Date] = t.[ReportingDate] AND
   [All Regions].[Avg Qty] = t.[Quantity]

このクエリを別のモデルに適用するには、クエリ ステートメントを編集して、フィルタ条件と各結果に適用されているラベルを置き換えるだけで済みます。たとえば、'Pacific' を 'North America' に置き換えてフィルタ条件と列ラベルを変更すると、汎用モデル内のパターンに基づく北米の T1000 製品の予測を取得できます。

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 North America

$TIMEAvg Qty
7/25/2004 12:00:00 AM103
8/25/2004 12:00:00 AM84
9/25/2004 12:00:00 AM79
10/25/2004 12:00:00 AM85
11/25/2004 12:00:00 AM68