5단원: 시계열 모델 확장

 <_caps3a_sxs _xmlns3a_caps="http://schemas.microsoft.com/build/caps/2013/11"><_caps3a_sxstarget>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로 지정합니다.도구 모음에서 실행 단추를 클릭합니다.쿼리가 Europe 및 Pacific 지역에서의 M200 자전거 판매 수량 예측 값을 반환합니다.EXTEND_MODEL_CASES로 예측 시작 지점 이해원래 모델을 기반으로 예측을 만들었으므로 이제 새 데이터로 결과를 비교하여, 판매 데이터를 업데이트할 경우 예측에 어떠한 영향이 있는지 확인할 수 있습니다.이렇게 하기 전에 방금 만든 코드를 검토하고 다음 사항을 확인합니다.Europe 지역에 대해서만 새 데이터를 제공했습니다.2개월에 상당하는 새 데이터만 제공했습니다. 다음 표에서는 M200 Europe에 대해 제공된 새 값이 예측에 어떠한 영향을 주는지 보여 줍니다.Pacific 지역의 M200 제품에 대해서는 새 데이터를 제공하지 않았지만 이 계열은 비교용으로 제공됩니다.제품 및 지역기존 모델(PredictTimeSeries)판매 데이터가 업데이트된 모델(EXTEND_MODEL_CASES가 있는 PredictTimeSeries)M200 EuropeM200 Europe7/25/2008 12:00:00 AM77M200 Europe8/25/2008 12:00:00 AM64M200 Europe9/25/2008 12:00:00 AM59M200 Europe10/25/2008 12:00:00 AM56M200 Europe11/25/2008 12:00:00 AM56M200 Europe12/25/2008 12:00:00 AM74M200 Europe7/25/2008 12:00:00 AM10M200 Europe8/25/2008 12:00:00 AM15M200 Europe9/25/2008 12:00:00 AM72M200 Europe10/25/2008 12:00:00 AM69M200 Europe11/25/2008 12:00:00 AM68M200 Europe12/25/2008 12:00:00 AM89M200 PacificM200 Pacific7/25/2008 12:00:00 AM41M200 Pacific8/25/2008 12:00:00 AM44M200 Pacific9/25/2008 12:00:00 AM38M200 Pacific10/25/2008 12:00:00 AM41M200 Pacific11/25/2008 12:00:00 AM36M200 Pacific12/25/2008 12:00:00 AM39M200 Pacific7/25/2008 12:00:00 AM41M200 Pacific8/25/2008 12:00:00 AM44M200 Pacific9/25/2008 12:00:00 AM38M200 Pacific10/25/2008 12:00:00 AM41M200 Pacific11/25/2008 12:00:00 AM36M200 Pacific12/25/2008 12:00:00 AM39이러한 결과를 통해 다음 두 가지 사실을 알 수 있습니다. 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개월에 상당하는 새 데이터 다음입니다. 제품 및 지역데이터가 업데이트된 모델(EXTEND_MODEL_CASES가 있는 PredictTimeSeries)M200 EuropeM200 Europe9/25/2008 12:00:00 AM72M200 Europe10/25/2008 12:00:00 AM69M200 Europe11/25/2008 12:00:00 AM68M200 Europe12/25/2008 12:00:00 AM89REPLACE_MODEL_CASES로 예측 수행모델 사례 대체는 하나의 사례 집합을 학습시킨 다음 이 모델을 다른 데이터 계열에 적용하려는 경우 유용합니다.이 시나리오에 대한 자세한 연습은 Lesson 2: Building a Forecasting Scenario (Intermediate Data Mining Tutorial)을 참조하십시오.Querying a Time Series Model (Analysis Services - Data Mining) PredictTimeSeries (DMX) <_caps3a_sxssource>In SQL Server 2014 Enterprise, you can add new data to a time series model and automatically incorporate the new data into the model.You add new data to a time series mining model in one of two ways:Use a PREDICTION JOIN to join data in an external source to the training data.Use a singleton prediction query to provide data one slice at a time. For example, assume that you trained the mining model on existing sales data some months ago.When you get new sales, you might want to update the sales predictions to incorporate the new data.You can do this in one step, by supplying the new sales figures as input data and generating new predictions based on the composite data set.Making Predictions with EXTEND_MODEL_CASESThe following are generic examples of a time series prediction using EXTEND_MODEL_CASES.The first example enables you to specify the number of predictions starting from the last time step of the original model:SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES) FROM <mining model> PREDICTION JOIN <source query> [WHERE <criteria>]The second example enables you to specify the time step where predictions should start, and where they should end.This option is important when you extend the model cases because, by default, the time steps used for prediction queries always start at the end of the original series.SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES) FROM <mining model> PREDICTION JOIN <source query> [WHERE <criteria>}In this tutorial, you will create both kinds of queries.To create a singleton prediction query on a time series modelIn Object Explorer, right-click the instance of Analysis Services, point to New Query, and then click DMX.Query Editor opens and contains a new, blank query.Copy the generic example of the singleton statement into the blank query.Replace the following:SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES) with: SELECT [Model Region], PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQtyThe first line retrieves a value from the model that identifies the series. The second line contains the prediction function, which gets 6 predictions for Quantity.An alias, PredictQty, is assigned to the prediction result column to make it easier to understand the results.Replace the following:FROM <mining model>with: FROM [Forecasting_MIXED]Replace the following: PREDICTION JOIN <source query>with: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 tReplace the following: [WHERE <criteria>]with:WHERE [ModelRegion] = 'M200 Europe' OR [ModelRegion] = 'M200 Pacific'The complete statement should now be as follows: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'On the File menu, click Save DMXQuery1.dmx As.In the Save As dialog box, browse to the appropriate folder, and name the file Singleton_TimeSeries_Query.dmx.On the toolbar, click the Execute button.The query returns predictions of sales quantity for the M200 bicycle in the Europe and Pacific regions.Understanding Prediction Start with EXTEND_MODEL_CASESNow that you have created predictions based on the original model, and with new data, you can compare the results to see how updating the sales data affects the predictions.Before you do so, review the code that you just created, and notice the following:You supplied new data for only the Europe region.You supplied only two months' worth of new data. The following table shows how the new values supplied for M200 Europe affect predictions.You did not provide any new data for the M200 product in the Pacific region, but this series is presented for comparison:Product and RegionExisting model (PredictTimeSeries)Model with updated sales data (PredictTimeSeries with EXTEND_MODEL_CASES)M200 EuropeM200 Europe7/25/2008 12:00:00 AM77M200 Europe8/25/2008 12:00:00 AM64M200 Europe9/25/2008 12:00:00 AM59M200 Europe10/25/2008 12:00:00 AM56M200 Europe11/25/2008 12:00:00 AM56M200 Europe12/25/2008 12:00:00 AM74M200 Europe7/25/2008 12:00:00 AM10M200 Europe8/25/2008 12:00:00 AM15M200 Europe9/25/2008 12:00:00 AM72M200 Europe10/25/2008 12:00:00 AM69M200 Europe11/25/2008 12:00:00 AM68M200 Europe12/25/2008 12:00:00 AM89M200 PacificM200 Pacific7/25/2008 12:00:00 AM41M200 Pacific8/25/2008 12:00:00 AM44M200 Pacific9/25/2008 12:00:00 AM38M200 Pacific10/25/2008 12:00:00 AM41M200 Pacific11/25/2008 12:00:00 AM36M200 Pacific12/25/2008 12:00:00 AM39M200 Pacific7/25/2008 12:00:00 AM41M200 Pacific8/25/2008 12:00:00 AM44M200 Pacific9/25/2008 12:00:00 AM38M200 Pacific10/25/2008 12:00:00 AM41M200 Pacific11/25/2008 12:00:00 AM36M200 Pacific12/25/2008 12:00:00 AM39From these results, you can see two things: The first two predictions for the M200 Europe series are exactly the same as the new data you supplied.By design, Analysis Services returns the actual new data points instead of making a prediction.That is because when you extend the model cases, the time steps used for prediction queries always start at the end of the original series.Therefore, if you add two new data points, the first two predictions returned overlap with the new data.After all the new data points are used up, Analysis Services makes predictions based on the updated model.Therefore, starting in September 2005, you can see the difference between predictions for M200 Europe from the original model, in the left-hand column, and the model that uses EXTEND_MODEL_CASES, in the right-hand column.The predictions are different because the model has been updated with the new data.Using Start and End Time Steps to Control PredictionsWhen you extend a model, the new data is always attached to the end of the series.However, for the purpose of prediction, the time slices used for prediction queries start at the end of the original series.If you want to obtain only the new predictions when you add the new data, you must specify the starting point as a number of time slices.For example, if you are adding two new data points and want to make four new predictions, you would do the following:Create a PREDICTION JOIN on a time series model, and specify two months of new data.Request predictions for four time slices, where the starting point is 3, and the ending point is time slice 6. In other words, if your new data contains n time slices, and you request predictions for time steps 1 through n, the predictions will coincide with the same period as the new data.To get new predictions for a time periods not covered by your data, you must either start predictions at the time slice n+1 after the new data series, or make sure that you request additional time slices.You cannot make historical predictions when you add new data. The following example shows the DMX statement that lets you get only the new predictions for the two series in the previous example. 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'The prediction results start at time slice 3, which is after the 2 months of new data that you supplied. Product and RegionModel with updated data (PredictTimeSeries with EXTEND_MODEL_CASES)M200 EuropeM200 Europe9/25/2008 12:00:00 AM72M200 Europe10/25/2008 12:00:00 AM69M200 Europe11/25/2008 12:00:00 AM68M200 Europe12/25/2008 12:00:00 AM89Making Predictions with REPLACE_MODEL_CASESReplacing the model cases is useful when you want to train a model on one set of cases and then apply that model to a different data series.A detailed walkthrough of this scenario is presented in Lesson 2: Building a Forecasting Scenario (Intermediate Data Mining Tutorial).Querying a Time Series Model (Analysis Services - Data Mining) PredictTimeSeries (DMX)
표시: