時系列予測での置き換え後のデータの使用 (中級者向けデータ マイニング チュートリアル)
ここでは、全世界の売上データに基づく新しいモデルを作成します。 その後、全世界の売上モデルを個々の地域のいずれかに適用する予測クエリを作成します。
汎用モデルの作成
元のマイニング モデルの結果を分析したところ、地域間や製品ライン間で大きな差が見られました。 たとえば、North America では M200 モデルの売上が強い一方で、T1000 モデルの売上はそれほどでもありません。 ただし、一部の系列には十分なデータがなく、開始時期が同じでないデータもあるため、分析は複雑です。 不足しているデータもあります。
データの品質の問題の一部に対処するために、全世界の売上データをマージし、その全体的な売上傾向を使用して、任意の地域の将来の売上を予測するために適用できるモデルを作成します。
予測を作成する際、全世界の売上データをトレーニングして生成されるパターンを使用しますが、履歴データのポイントをそれぞれの地域の売上データに置き換えます。 これにより、全体的な傾向は維持しながら、各予測値をそれぞれの地域やモデルの売上額の履歴と対応させることができます。
時系列モデルでのクロス予測の実行
ある系列のデータを使用して別の系列の傾向を予測するプロセスのことをクロス予測と呼びます。 クロス予測はさまざまなシナリオで使用できます。たとえば、テレビの売上が経済活動全般の適切な予測子であると特定できれば、テレビの売上でトレーニングしたモデルを全般的な経済データに適用できます。
SQL Server データ マイニングでクロス予測を実行するには、PredictTimeSeries (DMX) 関数の引数に REPLACE_MODEL_CASES パラメーターを使用します。
次の作業では、REPLACE_MODEL_CASES の使用方法について学習します。 マージした全世界の売上データを使用してモデルを作成し、汎用モデルを置き換え後のデータにマップする予測クエリを作成します。
データ マイニング モデルの作成方法については、既に理解していることを前提に、ここでは簡略化して説明しています。
集計データを使用してマイニング構造とマイニング モデルを作成するには
ソリューション エクスプローラーで [マイニング構造] を右クリックし、[新しいマイニング構造] をクリックして、データ マイニング ウィザードを起動します。
データ マイニング ウィザードで、以下の選択を行います。
[アルゴリズム]: [Microsoft タイム シリーズ]
モデルのソースとして、この高度なレッスンで既に作成したデータ ソースを使用する。 「高度な時系列予測 (中級者向けデータ マイニング チュートリアル)」を参照してください。
[データ ソース ビュー]: AllRegions
系列キーおよび時間キーの列として、次の列を選択する。
Key time: ReportingDate
Key: Region
Input および Predict の列として、次の列を選択する。
SumQty
SumAmt
AvgAmt
AvgQty
[マイニング構造名]:「All Regions」と入力する。
[マイニング モデル名]:「All Regions」と入力する。
新しい構造と新しいモデルを処理します。
予測クエリを作成して置き換え後のデータをマップするには
モデルがまだ開いていない場合は、AllRegions 構造をダブルクリックして、データ マイニング デザイナーで [マイニング モデル予測] タブをクリックします。
[マイニング モデル] ペインで、モデル AllRegions が選択されています。 選択されていない場合は、[モデルの選択] をクリックしてモデル AllRegions を選択します。
[入力テーブルの選択] ペインで、[ケース テーブルの選択] をクリックします。
[テーブルの選択] ダイアログ ボックスでデータ ソースを T1000 Pacific Region に変更し、[OK] をクリックします。
マイニング モデルと入力データの間の結合線を右クリックし、[接続の変更] をクリックします。 次のように、データ ソース ビューのデータをモデルにマップします。
マイニング モデルの ReportingDate 列が入力データの ReportingDate 列にマップされていることを確認します。
[マッピングの変更] ダイアログ ボックスの AvgQty モデル列の行で、[テーブル列] の下をクリックして T1000 Pacific.Quantity を選択します。 [OK] をクリックします。
この手順によって、平均数量を予測するモデルで作成した列が T1000 系列の販売数量の実際のデータにマップされます。
モデルの Region 列は、どの入力列にもマップしないでください。
モデルはすべての系列にわたってデータを集計しているので、T1000 Pacific などの系列値に一致するものはなく、予測クエリが実行されるとエラーが発生します。
ここで、予測クエリを作成します。
まず、モデルから予測と共に AllRegions ラベルを出力する列を結果に追加します。 これにより、汎用モデルに基づく結果であることがわかるようになります。
グリッドの最初の空白行をクリックし、[ソース] で AllRegions mining model を選択します。
[フィールド] で Region を選択します。
[別名] に「Model Used」と入力します。
次に、予測がどの系列に対するものかを表す別のラベルを結果に追加します。
空白行をクリックし、[ソース] で [カスタム式] を選択します。
[別名] 列に「ModelRegion」と入力します。
[条件と引数] 列に「'T1000 Pacific'」と入力します。
ここで、クロス予測関数を設定します。
空白行をクリックし、[ソース] で [予測関数] を選択します。
[フィールド] 列で、[PredictTimeSeries] を選択します。
[別名] に「Predicted Values」と入力します。
ドラッグ アンド ドロップ操作によって、[マイニング モデル] ペインのフィールド AvgQty を [条件と引数] 列にドラッグします。
[条件と引数] 列で、フィールド名の後に「,5, REPLACE_MODEL_CASES」と入力します。
[条件と引数] ボックスの全テキストは、"[AllRegions].[AvgQty],5,REPLACE_MODEL_CASES" になります。
[結果] をクリックします。
DMX でのクロス予測クエリの作成
既にお気付きかもしれませんが、クロス予測で別のデータ系列 (北米地域の T1000 製品モデルなど) に汎用モデルを適用するには、系列ごとに異なるクエリを作成し、それぞれの入力セットをモデルにマップできるようにする必要があります。
ただし、デザイナーでクエリを作成する代わりに、DMX ビューに切り替えて、作成した 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 DW2003R2], '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 製品の予測を取得できます。
このレッスンの次の作業
予測モデルの予測の比較 (中級者向けデータ マイニング チュートリアル)