このタスクでは、世界中の売上データに基づいて新しいモデルを構築します。 次に、世界の販売モデルを個々のリージョンのいずれかに適用する予測クエリを作成します。
一般的なモデルの構築
元のマイニング モデルの結果を分析すると、リージョン間と製品ライン間で大きな違いが明らかになったことに注意してください。 たとえば、北米での販売はM200モデルでは好調でしたが、T1000モデルの販売はそれほど良くありませんでした。 ただし、一部の系列に多くのデータが含まれていない、またはデータが別の時点で開始されたという事実によって、分析は複雑になります。 一部のデータも見つかりませんでした。
データ品質の問題の一部に対処するには、世界中の売上からのデータをマージし、その一連の一般的な販売傾向を使用して、任意の地域での将来の売上を予測するために適用できるモデルを構築することにします。
予測を作成するときは、世界中の売上データに関するトレーニングによって生成されるパターンを使用しますが、履歴データ ポイントを個々のリージョンの売上データに置き換えます。 そうすることで、傾向の形状は維持されますが、予測値は各地域とモデルの売上の履歴数値に合わせて調整されます。
時系列モデルを使用したクロス予測の実行
ある系列のデータを使用して別の系列の傾向を予測するプロセスは、クロス予測と呼ばれます。 クロス予測は、多くのシナリオで使用できます。たとえば、テレビの売上が全体的な経済活動の良い予測因子であると判断し、テレビの売上でトレーニングされたモデルを一般的な経済データに適用できます。
SQL Server データ マイニングでは、関数 PredictTimeSeries (DMX) の引数内でREPLACE_MODEL_CASESパラメーターを使用してクロス予測を実行します。
次のタスクでは、REPLACE_MODEL_CASESの使用方法について説明します。 マージされた世界売上データを使用してモデルを構築し、一般的なモデルを置換データにマップする予測クエリを作成します。
現時点ではデータ マイニング モデルを構築する方法に慣れていると想定されているため、モデルを構築するための手順が簡略化されています。
集計データを使用してマイニング構造とマイニング モデルを構築するには
ソリューション エクスプローラーで[マイニング構造]を右クリックし、[新しいマイニング構造]を選択してデータ マイニング ウィザードを開始します。
データ マイニング ウィザードで、次の項目を選択します。
アルゴリズム: Microsoft Time Series
この高度なレッスンで前に作成したデータ ソースをモデルのソースとして使用します。 詳細な時系列予測 (中間データ マイニング チュートリアル) を参照してください。
データ ソース ビュー:
AllRegions系列キーと時刻キーに対して次の列を選択します。
重要時点: 報告日
キー: リージョン
InputとPredictの次の列を選択します。合計数量
SumAmt
AvgAmt
AvgQty
マイニング構造名には、次のように入力します。
All Regionsマイニング モデル名には、次のように入力します。
All Regions
新しい構造と新しいモデルを処理します。
予測クエリを作成し、置換データをマップするには
モデルがまだ開いていない場合は、AllRegions 構造をダブルクリックし、データ マイニング デザイナーで [ マイニング モデル予測 ] タブをクリックします。
[ マイニング モデル ] ウィンドウで、モデル AllRegions が既に選択されている必要があります。 選択されていない場合は、[モデルの 選択] をクリックし、モデルの AllRegions を選択します。
[ 入力テーブルの選択 ] ウィンドウで、[ ケース テーブルの選択] をクリックします。
[ テーブルの選択 ] ダイアログ ボックスで、データ ソースを T1000 Pacific Region に変更し、[ OK] をクリックします。
マイニング モデルと入力データの間の結合線を右クリックし、[ 接続の変更] を選択します。 次のように、データ ソース ビューのデータをモデルにマップします。
マイニング モデルの ReportingDate 列が入力データの ReportingDate 列にマップされていることを確認します。
マッピングの変更 ダイアログボックスで、モデル列 AvgQty の行にある テーブル列 の項目をクリックして、T1000 Pacific.Quantity を選択します。 OK をクリックします。
この手順では、平均数量を予測するためにモデルで作成した列を、販売数量の T1000 系列の実際のデータにマップします。
モデル内の列領域を入力列にマップしないでください。
モデルではすべての系列のデータが集計されているため、T1000 Pacific などの系列値に一致するものはなく、予測クエリの実行時にエラーが発生します。
次に、予測クエリを作成します。
まず、予測と共にモデルから AllRegions ラベルを出力する列を結果に追加します。 これにより、結果が一般的なモデルに基づいていたことがわかります。
グリッドで、最初の空の行をクリックし、[ ソース] で [AllRegions マイニング モデル] を選択します。
[フィールド] で[リージョン]を選択します。
[エイリアス] には、「Model Used」と入力します。
次に、予測対象の系列を確認できるように、結果に別のラベルを追加します。
空の行をクリックし、[ ソース] で [ カスタム式] を選択します。
[ エイリアス ] 列に「 ModelRegion」と入力します。
[ 抽出条件/引数] 列に「
'T1000 Pacific'」と入力します。
次に、クロス予測関数を設定します。
空の行をクリックし、[ ソース] で [ 予測関数] を選択します。
[フィールド] 列で、[PredictTimeSeries] を選択します。
[エイリアス] に「予測値」と入力します。
ドラッグ アンド ドロップ操作を使用して、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 製品の予測が得られます。
このレッスンの次の作業
予測モデルの予測の比較 (中間データ マイニング チュートリアル)