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>}
이 자습서에서는 두 종류 모두의 쿼리를 만듭니다.
시계열 모델에 대한 단일 예측 쿼리를 만들려면
개체 탐색기 Analysis Services의 instance 마우스 오른쪽 단추로 클릭하고 새 쿼리를 가리킨 다음 DMX를 클릭합니다.
비어 있는 새 쿼리가 포함된 쿼리 편집기가 열립니다.
단일 문의 일반적인 예를 빈 쿼리에 복사합니다.
다음 내용을
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
가 할당됩니다.다음 내용을
FROM <mining model>
다음으로 바꿉니다.
FROM [Forecasting_MIXED]
다음 내용을
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
다음 내용을
[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'
파일 메뉴에서 다른 이름으로 DMXQuery1.dmx 저장을 클릭합니다.
다른 이름으로 저장 대화 상자에서 적절한 폴더를 찾아 파일
Singleton_TimeSeries_Query.dmx
이름을 로 지정합니다.도구 모음에서 실행 단추를 클릭합니다.
쿼리가 Europe 및 Pacific 지역에서의 M200 자전거 판매 수량 예측 값을 반환합니다.
EXTEND_MODEL_CASES로 예측 시작 지점 이해
원래 모델을 기반으로 예측을 만들었으므로 이제 새 데이터로 결과를 비교하여, 판매 데이터를 업데이트할 경우 예측에 어떠한 영향이 있는지 확인할 수 있습니다. 이렇게 하기 전에 방금 만든 코드를 검토하고 다음 사항을 확인합니다.
Europe 지역에 대해서만 새 데이터를 제공했습니다.
2개월에 상당하는 새 데이터만 제공했습니다.
다음 표에서는 M200 Europe에 대해 제공된 새 값이 예측에 어떠한 영향을 주는지 보여 줍니다. Pacific 지역의 M200 제품에 대해서는 새 데이터를 제공하지 않았지만 이 계열은 비교용으로 제공됩니다.
제품 및 지역: M200 유럽
기존 모델(PredictTimeSeries ) |
판매 데이터가 업데이트된 모델(PredictTimeSeries 가 있는 EXTEND_MODEL_CASES ) |
||
M200 Europe | 7/25/2008 12:00:00 AM | 77 | 10 |
M200 Europe | 8/25/2008 12:00:00 AM | 64 | 15 |
M200 Europe | 9/25/2008 12:00:00 AM | 59 | 72 |
M200 Europe | 10/25/2008 12:00:00 AM | 56 | 69 |
M200 Europe | 11/25/2008 12:00:00 AM | 56 | 68 |
M200 Europe | 12/25/2008 12:00:00 AM | 74 | 89 |
제품 및 지역: M200 태평양
기존 모델(PredictTimeSeries ) |
판매 데이터가 업데이트된 모델(PredictTimeSeries 가 있는 EXTEND_MODEL_CASES ) |
||
M200 Pacific | 7/25/2008 12:00:00 AM | 41 | 41 |
M200 Pacific | 8/25/2008 12:00:00 AM | 44 | 44 |
M200 Pacific | 9/25/2008 12:00:00 AM | 38 | 38 |
M200 Pacific | 10/25/2008 12:00:00 AM | 41 | 41 |
M200 Pacific | 11/25/2008 12:00:00 AM | 36 | 36 |
M200 Pacific | 12/25/2008 12:00:00 AM | 39 | 39 |
이러한 결과를 통해 다음 두 가지 사실을 알 수 있습니다.
M200 Europe 계열에 대한 처음 두 예측은 사용자가 제공한 새 데이터와 동일합니다. 기본적으로 Analysis Services에서는 예측을 만들지 않고 실제 새 데이터 요소를 반환합니다. 이는 모델 사례를 확장할 때 예측 쿼리에 사용되는 시간 단계가 항상 원래 계열의 끝에서 시작되기 때문입니다. 따라서 두 개의 새 데이터 요소를 추가하면 반환되는 처음 두 예측이 새 데이터와 겹치게 됩니다.
모든 새 데이터 요소를 사용한 후 Analysis Services는 업데이트된 모델을 기반으로 예측을 만듭니다. 따라서 2005년 9월부터 왼쪽 열에 있는 원래 모델의 M200 Europe에 대한 예측과 오른쪽 열에 있는 EXTEND_MODEL_CASES 사용 모델의 M200 Europe에 대한 예측이 달라지는 것을 확인할 수 있습니다. 모델이 새 데이터로 업데이트되었기 때문에 예측이 다릅니다.
시작 및 종료 시간 단계를 사용하여 예측 제어
모델을 확장하면 새 데이터가 항상 계열의 끝에 연결됩니다. 그러나 예측을 위해 예측 쿼리에 사용되는 시간 조각은 원래 계열의 끝에서 시작됩니다. 새 데이터를 추가할 때 새 예측만 얻으려면 시작 지점을 시간 조각 수로 지정해야 합니다. 예를 들어 두 개의 새 데이터 요소를 추가하고 네 개의 새 예측을 만들려면 다음을 수행합니다.
시계열 모델에 대해 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'
예측 결과는 시간 조각 3에서 시작되며 이는 사용자가 제공한 2개월에 상당하는 새 데이터 다음입니다.
제품 및 지역: M200 유럽
데이터가 업데이트된 모델(EXTEND_MODEL_CASES가 있는 PredictTimeSeries)
M200 Europe | 9/25/2008 12:00:00 AM | 72 |
M200 Europe | 10/25/2008 12:00:00 AM | 69 |
M200 Europe | 11/25/2008 12:00:00 AM | 68 |
M200 Europe | 12/25/2008 12:00:00 AM | 89 |
REPLACE_MODEL_CASES로 예측 수행
모델 사례 대체는 하나의 사례 집합을 학습시킨 다음 이 모델을 다른 데이터 계열에 적용하려는 경우 유용합니다. 이 시나리오에 대한 자세한 연습은 단원 2: 예측 시나리오 빌드(중간 데이터 마이닝 자습서)에 제공됩니다.