평균 예측 모델을 사용하여 예측(중급 데이터 마이닝 자습서)
이 단원의 이전 태스크에서 예측 쿼리 작성기를 사용하여 예측 모델에 대한 기본 예측을 생성하는 쿼리를 만들었습니다. 이 태스크에서는 개별 지역 중 한 곳에 전세계 판매 모델을 적용하는 예측 쿼리를 만드는 방법을 배웁니다.
시계열 예측에서 대체 데이터 사용
SQL Server 2008에서는 PredictTimeSeries(DMX) 함수에 시계열 예측을 사용자 지정하는 두 개의 새 매개 변수인 EXTEND_MODEL_CASES와 REPLACE_MODEL_CASES가 있습니다.
EXTEND_MODEL_CASES를 사용하면 기존 모델에 데이터를 추가하고 새 데이터를 기반으로 예측을 만들 수 있습니다.
REPLACE_MODEL_CASES를 사용하면 모델을 만드는 데 사용된 데이터 계열을 바꾸어서 다른 계열의 데이터로 사용할 수 있습니다.
이 시나리오에서는 REPLACE_MODEL_CASES를 사용합니다. 그러나 먼저 대체 데이터만 포함하는 데이터 원본 뷰를 설정해야 합니다. 대체 데이터는 각 개별 계열에 사용되는 데이터입니다. 대체 데이터 원본 뷰를 만든 후에는 일반 모델을 대체 데이터에 적용하는 예측 쿼리를 만들 수 있습니다.
대체 데이터를 포함하는 데이터 원본 뷰를 만들려면
솔루션 탐색기에서 데이터 원본 뷰를 마우스 오른쪽 단추로 클릭한 다음 새 데이터 원본 뷰를 선택합니다.
데이터 원본 뷰 마법사에서 다음을 선택합니다.
데이터 원본: Adventure Works DW2008R2
테이블 및 뷰 선택: 어떤 테이블도 선택하지 않습니다.
이름: T1000 Pacific Region
마침을 클릭합니다.
T1000 Pacific Region.dsv에 대한 빈 디자인 화면을 마우스 오른쪽 단추로 클릭한 다음 새 명명된 쿼리를 선택합니다.
명명된 쿼리 만들기 대화 상자가 나타납니다. 이름을 다시 입력한 후 설명을 추가합니다.
이름: T1000 Pacific Region
설명: Filter vTimeSeries by region and model
텍스트 창에 다음 쿼리를 입력합니다.
SELECT ReportingDate, ModelRegion, Quantity, Amount FROM dbo.vTimeSeries WHERE (ModelRegion = N'T1000 Pacific')
[!참고]
쿼리 작성기를 사용하여 쿼리를 작성할 수도 있지만 쿼리 텍스트를 입력하는 것이 더 빠릅니다. 그러나 쿼리 텍스트를 입력한 후에는 다른 창을 클릭하여 쿼리 텍스트의 구문을 분석하는 방법 및 지원하는 테이블에서 쿼리를 작성하는 방법을 확인할 수 있습니다. 또한 다른 데이터 계열에 다시 사용할 수 있도록 쿼리 텍스트를 복사하고 텍스트 파일에 저장할 수 있습니다.
확인을 클릭합니다..
데이터 원본 뷰 디자인 화면에서 T1000 Pacific을 마우스 오른쪽 단추로 클릭한 다음 데이터 탐색을 선택하여 데이터가 올바르게 필터링되었는지 확인합니다.
이제 일반적인 방식으로 시계열 예측 쿼리를 작성하지만 REPLACE_MODEL_CASES 매개 변수를 추가하여 예측의 기반 데이터 계열이 사용자가 제공하는 새 데이터로 대체되도록 지정합니다. 또한 마이닝 모델과 입력 테이블 간의 매핑도 지정해야 합니다.
예측 쿼리를 작성하고 대체 데이터를 제공하려면
모델이 아직 열려 있지 않은 경우 AllRegions 구조를 두 번 클릭하고 데이터 마이닝 디자이너에서 마이닝 모델 예측 탭을 클릭합니다.
마이닝 모델 창에서 AllRegions 모델이 이미 선택되어 있어야 합니다. 그렇지 않은 경우 모델 선택을 클릭한 다음 AllRegions 모델을 선택합니다.
입력 테이블 선택 창에서 사례 테이블 선택을 클릭합니다.
테이블 선택 대화 상자에서 데이터 원본을 T1000 Pacific Region으로 변경한 다음 확인을 클릭합니다.
만든 데이터 원본 뷰가 열이 있는 테이블로 표시됩니다. 일부 열이 이미 마이닝 모델 열에 매핑되었을 수 있습니다.
마이닝 모델과 입력 데이터 간의 조인 선을 마우스 오른쪽 단추로 클릭하고 연결 수정을 선택합니다.
매핑 수정 대화 상자에서 마이닝 모델의 ReportingDate 열이 입력 데이터의 ReportingDate 열에 매핑되어 있는지 확인합니다.
매핑 수정 대화 상자의 AvgQty에 대한 행에서 테이블 열 아래를 클릭한 다음 T1000 Pacific.Quantity를 선택합니다. 확인을 클릭합니다.
이 단계에서는 일반 모델의 집계 수량 열을 대체 데이터 계열의 수량 열로 매핑합니다.
표에서 첫 번째 빈 행을 클릭하고 원본 아래에서 AllRegions를 선택합니다. 필드 열에서 Region을 선택하고 별칭 열에 Model Used를 입력합니다.
이 단계에서는 일반 모델에서 예측을 위해 참조할 수 있는 열을 결과에 추가합니다.
빈 행을 클릭하고 원본 아래에서 사용자 지정 식을 선택합니다. 별칭 열에 ModelRegion을 입력합니다. 조건/인수 열에 'T1000 Pacific'을 입력합니다.
이 단계에서는 예측이 계열용임을 알 수 있도록 레이블을 결과에 추가합니다.
빈 행을 클릭하고 원본 아래에서 예측 함수를 선택합니다. 필드 열에서 PredictTimeSeries를 선택합니다. 별칭 열에 Predicted Values를 입력합니다.
끌어서 놓기 작업을 사용하여 마이닝 모델 창에서 AvgQty 필드를 끌어 조건/인수 열에 놓습니다.
조건/인수 열에서 필드 이름 뒤에 ,5, REPLACE_MODEL_CASES라는 텍스트를 입력합니다.
조건/인수 입력란의 전체 텍스트는 다음과 같아야 합니다. [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES
결과를 클릭합니다.
결과 검토
예측 쿼리는 다음 표와 유사한 결과를 반환합니다.
Model Used |
ModelRegion |
Predicted Quantity |
---|---|---|
All Regions |
T-1000 Pacific |
$TIMEAvg Qty
7/25/2008 12:00:00 AM68
8/25/2008 12:00:00 AM52
9/25/2008 12:00:00 AM48
10/25/2008 12:00:00 AM56
11/25/2008 12:00:00 AM44
|
북미 지역의 T1000 제품 모델과 같이 다른 데이터 계열에 일반 모델을 적용하려면 각 계열에 대해 서로 다른 쿼리를 만들어야 합니다. 그러나 프로세스를 다시 시작하지 않고 이미 작성된 DMX 문을 편집하고 입력을 다르게 필터링할 수 있습니다. 예를 들어 다음 DMX 문은 작성한 쿼리를 나타냅니다.
SELECT
([All Regions].[Region]) as [Model Used],
( 'T-1000 Pacific') as [ModelRegion],
(PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM
[All Regions]
PREDICTION JOIN
OPENQUERY([Adventure Works DW2008R2],
'SELECT
[ReportingDate]
FROM
(SELECT ReportingDate, ModelRegion, Quantity, Amount
FROM dbo.vTimeSeries
WHERE (ModelRegion = N''T1000 Pacific'')) as [T1000 Pacific]
') AS t
ON
[All Regions].[Reporting Date] = t.[ReportingDate] AND
[All Regions].[Avg Qty] = t.[Quantity]
이를 다른 모델에 적용하려면 쿼리 문을 편집하여 각 결과에 적용된 필터 조건 및 레이블을 바꿉니다. 예를 들어 'Pacific'을 'North America'로 바꿔 필터 조건 및 열 레이블을 변경하는 경우 일반 모델의 패턴을 기반으로 북미의 T1000 제품에 대한 예측을 얻게 됩니다.
Model Used |
ModelRegion |
Predicted Quantity |
---|---|---|
All Regions |
T-1000 North America |
$TIMEAvg Qty
7/25/2008 12:00:00 AM103
8/25/2008 12:00:00 AM84
9/25/2008 12:00:00 AM79
10/25/2008 12:00:00 AM85
11/25/2008 12:00:00 AM68
|