次の方法で共有


レッスン 4: DMX を使用した時系列予測の作成

このレッスンと次のレッスンでは、データ マイニング拡張機能 (DMX) を使用して、「 レッスン 1: 時系列マイニング モデルとマイニング構造の作成 」および 「レッスン 2: 時系列マイニング構造へのマイニング モデルの追加」で作成した時系列モデルに基づいて、さまざまな種類の予測を作成します。

時系列モデルでは、予測を行う多くのオプションがあります。

  • マイニング モデルで既存のパターンとデータを使用する

  • マイニング モデルで既存のパターンを使用するが、新しいデータを提供する

  • モデルに新しいデータを追加するか、モデルを更新します。

これらの予測型を作成するための構文を次に示します。

既定の時系列予測
PredictTimeSeries (DMX) を使用して、トレーニング済みのマイニング モデルから指定された数の予測を返します。

たとえば、「 PredictTimeSeries (DMX) 」または 「時系列モデル クエリの例」を参照してください。

EXTEND_MODEL_CASES
EXTEND_MODEL_CASES引数と共に PredictTimeSeries (DMX) を使用して、新しいデータの追加、系列の拡張、更新されたマイニング モデルに基づく予測の作成を行います。

このチュートリアルでは、EXTEND_MODEL_CASESの使用方法の例を示します。

REPLACE_MODEL_CASES
PredictTimeSeries (DMX) と REPLACE_MODEL_CASES 引数を使用して、元のデータを新しいデータ系列に置き換え、マイニング モデルのパターンを新しいデータ系列に適用することに基づいて予測を作成します。

REPLACE_MODEL_CASESの使用方法の例については、「 レッスン 2: 予測シナリオの構築 (中間データ マイニング チュートリアル)」を参照してください。

このレッスンの作業

このレッスンでは、次のタスクを実行します。

  • 既存のデータに基づいて既定の予測を取得するクエリを作成します。

次のレッスンでは、次の関連タスクを実行します。

  • 新しいデータを提供し、更新された予測を取得するクエリを作成します。

DMX を使用してクエリを手動で作成するだけでなく、SQL Server Data Tools (SSDT) の予測クエリ ビルダーを使用して予測を作成することもできます。

単純な時系列予測クエリ

最初の手順では、 SELECT FROM ステートメントを PredictTimeSeries 関数と共に使用して時系列予測を作成します。 時系列モデルでは、予測を作成するための簡略化された構文がサポートされています。入力を指定する必要はありませんが、作成する予測の数を指定するだけで済みます。 使用するステートメントの一般的な例を次に示します。

SELECT <select list>   
FROM [<mining model name>]   
WHERE [<criteria>]  

選択リストには、モデルの列 (予測を作成する製品ラインの名前など) や、タイム シリーズ マイニング モデル専用の Lag (DMX)PredictTimeSeries (DMX) などの予測関数を含めることができます。

単純な時系列予測クエリを作成するには

  1. オブジェクト エクスプローラーで、Analysis Services のインスタンスを右クリックし、[新しいクエリ] をポイントして、[DMX] をクリックします。

    クエリ エディターが開き、新しい空のクエリが含まれています。

  2. ステートメントの一般的な例を空白のクエリにコピーします。

  3. 次のコードを置き換えます。

    <select list>   
    

    次の内容に置き換えます。

    [Forecasting_MIXED].[ModelRegion],  
    PredictTimeSeries([Forecasting_MIXED].[Quantity],6) AS PredictQty,  
    PredictTimeSeries ([Forecasting_MIXED].[Amount],6) AS PredictAmt  
    

    最初の行は、系列を識別するマイニング モデルから値を取得します。

    2 行目と 3 行目は、 PredictTimeSeries 関数を使用します。 各行は、異なる属性、 [Quantity] 、または [Amount]を予測します。 予測可能な属性の名前の後の数値は、予測する時間ステップの数を指定します。

    AS句は、各予測関数によって返される列の名前を指定するために使用されます。 エイリアスを指定しない場合、既定では両方の列にラベル Expressionが返されます。

  4. 次のコードを置き換えます。

    [<mining model>]   
    

    次の内容に置き換えます。

    [Forecasting_MIXED]  
    
  5. 次のコードを置き換えます。

    WHERE [criteria>]   
    

    次の内容に置き換えます。

    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    

    これで、完全なステートメントは次のようになります。

    SELECT  
    [Forecasting_MIXED].[ModelRegion],  
    PredictTimeSeries([Forecasting_MIXED].[Quantity],6) AS PredictQty,  
    PredictTimeSeries ([Forecasting_MIXED].[Amount],6) AS PredictAmt  
    FROM   
    [Forecasting_MIXED]  
    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    
  6. [ ファイル ] メニューの [ DMXQuery1.dmx As の保存] をクリックします。

  7. [ 名前を付けて保存 ] ダイアログ ボックスで、適切なフォルダーを参照し、ファイルに SimpleTimeSeriesPrediction.dmx名前を付けます。

  8. ツール バーの [ 実行 ] ボタンをクリックします。

    このクエリでは、 WHERE 句で指定された製品と地域の 2 つの組み合わせごとに 6 つの予測が返されます。

次のレッスンでは、新しいデータをモデルに提供するクエリを作成し、その予測の結果を先ほど作成した予測と比較します。

このレッスンの次の作業

レッスン 5: 時系列モデルの拡張

こちらもご覧ください

PredictTimeSeries (DMX)
ラグ (DMX)
タイム シリーズ モデル クエリの例
レッスン 2: 予測シナリオの構築 (中間データ マイニング チュートリアル)