다음을 통해 공유


5단원: 시계열 모델 확장

SQL Server 2014 Enterprise에서 시계열 모델에 새 데이터를 추가하고 새 데이터를 모델에 자동으로 통합할 수 있습니다. 다음 두 가지 방법 중 하나로 시계열 마이닝 모델에 새 데이터를 추가합니다.

  • PREDICTION JOIN을 사용하여 외부 원본의 데이터를 학습 데이터에 조인합니다.

  • 단일 예측 쿼리를 사용하여 데이터를 한 조각씩 제공합니다.

예를 들어 몇 달 전에 기존 판매 데이터에 대한 마이닝 모델을 학습했다고 가정합니다. 새 판매가 발생하면 새 데이터를 통합하도록 판매 예측을 업데이트할 수 있습니다. 새 판매 수치를 입력 데이터로 제공하고 복합 데이터 집합을 기반으로 새 예측을 생성하여 한 단계에서 이 작업을 수행할 수 있습니다.

EXTEND_MODEL_CASES 사용하여 예측 만들기

다음은 EXTEND_MODEL_CASES 사용하는 시계열 예측의 일반적인 예입니다. 첫 번째 예제를 사용하면 원래 모델의 마지막 단계부터 시작하는 예측 수를 지정할 수 있습니다.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>]  

두 번째 예제에서는 예측을 시작해야 하는 시간 단계와 종료할 위치를 지정할 수 있습니다. 이 옵션은 기본적으로 예측 쿼리에 사용되는 시간 단계가 항상 원래 계열의 끝에서 시작되므로 모델 사례를 확장할 때 중요합니다.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>}  

이 자습서에서는 두 종류의 쿼리를 모두 만듭니다.

시계열 모델에서 단일 예측 쿼리를 만들려면

  1. 개체 탐색기에서 Analysis Services 인스턴스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 가리킨 다음 DMX를 클릭합니다.

    쿼리 편집기가 열리고 비어 있는 새 쿼리가 포함됩니다.

  2. 싱글톤 문의 제네릭 예제를 빈 쿼리에 복사합니다.

  3. 다음을 대체하십시오

    SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
    

    와 함께

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    

    첫 번째 줄은 계열을 식별하는 모델에서 값을 검색합니다.

    두 번째 줄에는 Quantity에 대한 6개의 예측을 가져오는 예측 함수가 포함되어 있습니다. 결과를 더 쉽게 이해할 수 있도록 예측 결과 열에 별칭 PredictQty이 할당됩니다.

  4. 다음을 대체하십시오

    FROM <mining model>  
    

    와 함께

    FROM [Forecasting_MIXED]  
    
  5. 다음을 대체하십시오

    PREDICTION JOIN <source query>  
    

    와 함께

    NATURAL PREDICTION JOIN   
    (  
       SELECT 1 AS [Reporting Date],  
       '10' AS [Quantity],  
       'M200 Europe' AS [Model Region]  
       UNION SELECT  
       2 AS [Reporting Date],  
       15 AS [Quantity]),  
       'M200 Europe' AS [Model Region]  
    ) AS t  
    
  6. 다음을 대체하십시오

    [WHERE <criteria>]  
    

    와 함께

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

    이제 전체 문은 다음과 같습니다.

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    FROM  
       [Forecasting_MIXED]  
    NATURAL PREDICTION JOIN   
       SELECT 1 AS [ReportingDate],  
      '10' AS [Quantity],  
      'M200 Europe' AS [ModelRegion]  
    UNION SELECT  
      2 AS [ReportingDate],  
      15 AS [Quantity]),  
      'M200 Europe' AS [ModelRegion]  
    ) AS t  
    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    
  7. 파일 메뉴에서 DMXQuery1.dmx 다른 이름으로 저장을 클릭합니다.

  8. 다른 이름으로 저장 대화 상자에서 적절한 폴더로 이동하고 파일 Singleton_TimeSeries_Query.dmx이름을 지정합니다.

  9. 도구 모음에서 실행 단추를 클릭합니다.

    이 쿼리는 유럽 및 태평양 지역의 M200 자전거에 대한 판매 수량 예측을 반환합니다.

예측 시작을 이해하기 위해 EXTEND_MODEL_CASES 활용

원래 모델을 기반으로 하고 새 데이터를 사용하여 예측을 만들었으므로 결과를 비교하여 판매 데이터 업데이트가 예측에 미치는 영향을 확인할 수 있습니다. 이렇게 하기 전에 방금 만든 코드를 검토하고 다음을 확인합니다.

  • 유럽 지역에 대해서만 새 데이터를 제공했습니다.

  • 2개월 분량의 새 데이터만 제공했습니다.

다음 표에서는 M200 Europe에 제공된 새 값이 예측에 미치는 영향을 보여 줍니다. 태평양 지역의 M200 제품에 대한 새 데이터는 제공하지 않았지만 이 계열은 비교를 위해 제공됩니다.

제품 및 지역: M200 유럽

기존 모델(PredictTimeSeries) 업데이트된 판매 데이터를 사용하여 모델(PredictTimeSeries 포함 EXTEND_MODEL_CASES)
M200 Europe 2008년 7월 25일 오전 12:00:00 77 10
M200 Europe 2008년 8월 25일 오전 12:00:00 64 15
M200 Europe 2008년 9월 25일 오전 12:00:00 59 72
M200 Europe 2008년 10월 25일 오전 12:00:00 56 69
M200 Europe 2008년 11월 25일 오전 12:00:00 56 68
M200 Europe 2008년 12월 25일 오전 12:00:00 74 89

제품 및 지역: M200 Pacific

기존 모델(PredictTimeSeries) 업데이트된 판매 데이터를 사용하여 모델(PredictTimeSeries 포함 EXTEND_MODEL_CASES)
M200 Pacific 2008년 7월 25일 오전 12:00:00 41 41
M200 Pacific 2008년 8월 25일 오전 12:00:00 44 44
M200 Pacific 2008년 9월 25일 오전 12:00:00 38 38
M200 Pacific 2008년 10월 25일 오전 12:00:00 41 41
M200 Pacific 2008년 11월 25일 오전 12:00:00 36 36
M200 Pacific 2008년 12월 25일 오전 12:00:00 39 39

이러한 결과에서 다음 두 가지를 볼 수 있습니다.

  • M200 유럽 시리즈에 대한 처음 두 예측은 제공한 새 데이터와 정확히 동일합니다. 기본적으로 Analysis Services는 예측을 만드는 대신 실제 새 데이터 요소를 반환합니다. 이는 모델 사례를 확장할 때 예측 쿼리에 사용되는 시간 단계가 항상 원래 계열의 끝에서 시작되기 때문입니다. 따라서 두 개의 새 데이터 요소를 추가하는 경우 반환된 처음 두 예측은 새 데이터와 겹칩니다.

  • 모든 새 데이터 요소를 사용한 후 Analysis Services는 업데이트된 모델을 기반으로 예측을 만듭니다. 따라서 2005년 9월부터 원래 모델과 EXTEND_MODEL_CASES를 사용하는 모델 간의 M200 Europe에 대한 예측 차이를 왼쪽 열과 오른쪽 열에서 확인할 수 있습니다. 모델이 새 데이터로 업데이트되었기 때문에 예측은 다릅니다.

시작 및 종료 시간 단계를 사용하여 예측 제어

모델을 확장하면 새 데이터가 항상 계열의 끝에 연결됩니다. 그러나 예측을 위해 예측 쿼리에 사용되는 시간 조각은 원래 계열의 끝에서 시작됩니다. 새 데이터를 추가할 때 새 예측만 가져오려면 시작점을 여러 시간 조각으로 지정해야 합니다. 예를 들어 두 개의 새 데이터 요소를 추가하고 4개의 새 예측을 수행하려는 경우 다음을 수행합니다.

  • 시계열 모델에 PREDICTION JOIN을 만들고 2개월의 새 데이터를 지정합니다.

  • 시작점이 3이고 끝점이 시간 조각 6인 네 개의 시간 조각에 대한 예측을 요청합니다.

즉, 새 데이터에 n개의 시간 조각이 포함되어 있고 시간 단계 1~n에 대한 예측을 요청하는 경우 예측은 새 데이터와 동일한 기간과 일치합니다. 데이터가 적용되지 않는 기간에 대한 새 예측을 얻으려면 새 데이터 계열 이후 시간 조각 n+1에서 예측을 시작하거나 추가 시간 조각을 요청해야 합니다.

비고

새 데이터를 추가할 때 기록 예측을 수행할 수 없습니다.

다음 예제에서는 이전 예제의 두 계열에 대한 새 예측만 가져올 수 있는 DMX 문을 보여 줍니다.

SELECT [Model Region],  
PredictTimeSeries([Quantity],3,6, EXTEND_MODEL_CASES) AS PredictQty  
FROM  
   [Forecasting_MIXED]  
NATURAL PREDICTION JOIN   
   SELECT 1 AS [ReportingDate],  
  '10' AS [Quantity],  
  'M200 Europe' AS [ModelRegion]  
UNION SELECT  
  2 AS [ReportingDate],  
  15 AS [Quantity]),  
  'M200 Europe' AS [ModelRegion]  
) AS t  
WHERE [ModelRegion] = 'M200 Europe'  

예측 결과는 입력한 새 데이터의 2개월 이후인 시간 조각 3에서 시작됩니다.

제품 및 지역: M200 유럽

"업데이트된 데이터로 모델링(PredictTimeSeries, EXTEND_MODEL_CASES 적용)"

M200 Europe 2008년 9월 25일 오전 12:00:00 72
M200 Europe 2008년 10월 25일 오전 12:00:00 69
M200 Europe 2008년 11월 25일 오전 12:00:00 68
M200 Europe 2008년 12월 25일 오전 12:00:00 89

REPLACE_MODEL_CASES 사용하여 예측을 생성하기

모델 사례를 바꾸는 것은 한 사례 집합에서 모델을 학습시킨 다음 해당 모델을 다른 데이터 계열에 적용하려는 경우에 유용합니다. 이 시나리오에 대한 자세한 연습은 2단원: 예측 시나리오 빌드(중간 데이터 마이닝 자습서)에 제공됩니다.

또한 참조하십시오

시계열 모델 쿼리 예제
PredictTimeSeries(DMX)