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 인스턴스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 가리킨 다음 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이름을 지정합니다.도구 모음에서 실행 단추를 클릭합니다.
이 쿼리는 유럽 및 태평양 지역의 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단원: 예측 시나리오 빌드(중간 데이터 마이닝 자습서)에 제공됩니다.