다음을 통해 공유


시계열 모델 쿼리 예제

데이터 마이닝 모델에 대해 쿼리를 만들 때 분석에서 검색된 패턴에 대한 세부 정보를 제공하는 콘텐츠 쿼리를 만들거나 모델의 패턴을 사용하여 새 데이터에 대한 예측을 만드는 예측 쿼리를 만들 수 있습니다. 예를 들어 시계열 모델에 대한 콘텐츠 쿼리는 검색된 주기적 구조에 대한 추가 세부 정보를 제공할 수 있지만 예측 쿼리는 다음 5-10시간 조각에 대한 예측을 제공할 수 있습니다. 쿼리를 사용하여 모델에 대한 메타데이터를 검색할 수도 있습니다.

이 섹션에서는 Microsoft 시계열 알고리즘을 기반으로 하는 모델에 대해 두 종류의 쿼리를 만드는 방법을 설명합니다.

콘텐츠 쿼리

모델에 대한 주기적 힌트 검색

ARIMA 모델에 대한 수식 검색

ARTxp 모델에 대한 수식 검색

예측 쿼리

시계열 데이터를 바꿀 시기 및 확장 시기 이해

EXTEND_MODEL_CASES 사용하여 예측 만들기

REPLACE_MODEL_CASES 사용하여 예측 만들기

시계열 모델에서 누락된 값 대체

시계열 모델에 대한 정보 가져오기

모델 콘텐츠 쿼리는 모델을 만들 때 사용된 매개 변수, 모델이 마지막으로 처리된 시간 등 모델에 대한 기본 정보를 제공할 수 있습니다. 다음 예제에서는 데이터 마이닝 스키마 행 집합을 사용하여 모델 콘텐츠를 쿼리하기 위한 기본 구문을 보여 줍니다.

샘플 쿼리 1: 모델에 대한 주기적 힌트 검색

ARIMA 트리 또는 ARTXP 트리를 쿼리하여 시계열 내에서 발견된 주기를 검색할 수 있습니다. 그러나 완성된 모델의 주기성은 모델을 만들 때 힌트로 지정한 기간과 같지 않을 수 있습니다. 모델을 만들 때 매개 변수로 제공된 힌트를 검색하려면 다음 DMX 문을 사용하여 마이닝 모델 콘텐츠 스키마 행 집합을 쿼리할 수 있습니다.

SELECT MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = '<model name>'  

일부 결과:

채굴 매개변수
COMPLEXITY_PENALTY=0.1,MINIMUM_SUPPORT=10,PERIODICITY_HINT={1,3},....

기본 주기 힌트는 {1} 모든 모델에 표시되며, 이 샘플 모델은 최종 모델에 없을 수 있는 추가 힌트를 사용하여 만들어졌습니다.

비고

가독성을 위해 여기에서 결과가 일부 생략되었습니다.

샘플 쿼리 2: ARIMA 모델에 대한 수식 검색

개별 트리의 노드를 쿼리하여 ARIMA 모델에 대한 수식을 검색할 수 있습니다. ARIMA 모델 내의 각 트리는 서로 다른 주기를 나타내며, 여러 데이터 계열이 있는 경우 각 데이터 계열에는 고유한 주기 트리 집합이 있습니다. 따라서 특정 데이터 계열에 대한 수식을 검색하려면 먼저 트리를 식별해야 합니다.

예를 들어 TA 접두사는 노드가 ARIMA 트리의 일부임을 알리는 반면, TS 접두사는 ARTXP 트리에 사용됩니다. NODE_TYPE 값이 27인 노드의 모델 콘텐츠를 쿼리하여 모든 ARIMA 루트 트리를 찾을 수 있습니다. ATTRIBUTE_NAME 값을 사용하여 특정 데이터 계열에 대한 ARIMA 루트 노드를 찾을 수도 있습니다. 이 쿼리 예제에서는 유럽 지역의 R250 모델에서 판매된 수량을 나타내는 ARIMA 노드를 찾습니다.

SELECT NODE_UNIQUE_NAME  
FROM Forecasting.CONTENT  
WHERE ATTRIBUTE_NAME = 'R250 Europe: Quantity"  
AND NODE_TYPE = 27  

이 노드 ID를 사용하여 이 트리에 대한 ARIMA 수식에 대한 세부 정보를 검색할 수 있습니다. 다음 DMX 문은 데이터 계열에 대한 ARIMA 수식의 짧은 형식을 검색합니다. 또한 NODE_DISTRIBUTION 중첩 테이블에서 절편을 가져옵니다. 이 예제에서는 노드 고유 ID TA00000007 참조하여 수식을 가져옵니다. 그러나 다른 노드 ID를 사용해야 할 수 있으며 모델에서 약간 다른 결과를 얻을 수 있습니다.

SELECT FLATTENED NODE_CAPTION as [Short equation],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE   
FROM NODE_DISTRIBUTION) as t  
FROM Forecasting.CONTENT  
WHERE NODE_NAME = 'TA00000007'  

결과 예:

짧은 수식 t.ATTRIBUTE_NAME 속성값
ARIMA (2,0,7)x(1,0,2)(12) R250 유럽:Quantity(Intercept) 15.24....
ARIMA (2,0,7)x(1,0,2)(12) R250 Europe:Quantity(Periodicity) 1
ARIMA (2,0,7)x(1,0,2)(12) R250 유럽:수량(주기성) 12

이 정보를 해석하는 방법에 대한 자세한 내용은 시계열 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.

샘플 쿼리 3: ARTXP 모델에 대한 수식 검색

ARTxp 모델의 경우 트리의 각 수준에 서로 다른 정보가 저장됩니다. ARTxp 모델의 구조 및 수식의 정보를 해석하는 방법에 대한 자세한 내용은 시계열 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.

다음 DMX 문은 유럽의 R250 모델에 대한 판매량에 관한 정보를 나타내는 ARTxp 트리의 일부를 검색합니다.

비고

중첩 테이블 열의 이름인 VARIANCE는 같은 이름의 예약된 키워드와 구분하기 위해 대괄호로 묶어야 합니다. 중첩 테이블 열인 PROBABILITY 및 SUPPORT는 대부분의 경우 비어 있기 때문에 포함되지 않습니다.

SELECT NODE_CAPTION as [Split information],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,  
   [VARIANCE]  
   FROM NODE_DISTRIBUTION) AS t  
FROM Forecasting.CONTENT  
WHERE NODE_ATTRIBUTE_NAME = 'R250 Europe:Quantity'  
AND NODE_TYPE = 15  

이 정보를 해석하는 방법에 대한 자세한 내용은 시계열 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.

시계열 모델에서 예측 만들기

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

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

  • 단일 예측 쿼리를 사용하여 데이터를 한 조각씩 제공합니다. 단일 예측 쿼리를 만드는 방법에 대한 자세한 내용은 데이터 마이닝 쿼리 인터페이스를 참조하세요.

바꾸기 및 확장 작업의 동작 이해

시계열 모델에 새 데이터를 추가할 때 학습 데이터를 확장할지 아니면 바꿀지 지정할 수 있습니다.

  • 뻗치다: 데이터 계열을 확장하면 Analysis Services는 기존 학습 데이터의 끝에 새 데이터를 추가합니다. 학습 사례의 수도 증가합니다.

    모델 사례를 확장하는 것은 새 데이터로 모델을 지속적으로 업데이트하는 데 유용합니다. 예를 들어 학습 집합이 시간이 지남에 따라 증가하도록 하려면 모델을 확장하기만 하면 됩니다.

    데이터를 확장하려면 시계열 모델을 만들고 PREDICTION JOIN , 새 데이터의 원본을 지정하고, 인수를 EXTEND_MODEL_CASES 사용합니다.

  • 갈다: 데이터 계열의 데이터를 바꾸면 Analysis Services는 학습된 모델을 유지하지만 새 데이터 값을 사용하여 기존 학습 사례의 일부 또는 전부를 대체합니다. 따라서 학습 데이터의 크기는 변경되지 않지만 사례 자체는 지속적으로 최신 데이터로 대체됩니다. 충분한 새 데이터를 제공하는 경우 학습 데이터를 완전히 새로운 시리즈로 바꿀 수 있습니다.

    모델 사례를 바꾸는 것은 한 사례 집합에서 모델을 학습시킨 다음 해당 모델을 다른 데이터 계열에 적용하려는 경우에 유용합니다.

    데이터를 바꾸려면 시계열 모델을 만들고 PREDICTION JOIN , 새 데이터의 원본을 지정하고, 인수를 REPLACE_MODEL_CASES 사용합니다.

비고

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

학습 데이터를 확장하거나 바꿀지 여부에 관계없이 예측은 항상 원래 학습 집합을 종료하는 타임스탬프를 통해 시작됩니다. 즉, 새 데이터에 n개의 시간 조각이 포함되어 있고 1~n단계의 시간 단계에 대한 예측을 요청하는 경우 예측은 새 데이터와 동일한 기간과 일치하며 새 예측을 얻지 않습니다.

새 데이터와 겹치지 않는 기간에 대한 새 예측을 얻으려면 시간 조각 n+1에서 예측을 시작하거나 추가 시간 조각을 요청해야 합니다.

예를 들어 기존 모델에 6개월 분량의 데이터가 있다고 가정합니다. 지난 3개월의 판매 수치를 추가하여 이 모델을 확장하려고 합니다. 동시에 향후 3개월에 대한 예측을 만들려고 합니다. 새 데이터를 추가할 때 새 예측만 가져오려면 시작점을 시간 조각 4로 지정하고 끝점을 시간 조각 7로 지정합니다. 총 6개의 예측을 요청할 수도 있지만 처음 3개에 대한 시간 조각은 방금 추가된 새 데이터와 겹칩니다.

쿼리 예제 및 사용 REPLACE_MODEL_CASESEXTEND_MODEL_CASES구문에 대한 자세한 내용은 PredictTimeSeries(DMX)를 참조하세요.

EXTEND_MODEL_CASES 사용하여 예측 만들기

예측 동작은 모델 사례를 확장하거나 바꿀지 여부에 따라 다릅니다. 모델을 확장하면 새 데이터가 계열 끝에 연결되고 학습 집합의 크기가 증가합니다. 그러나 예측 쿼리에 사용되는 시간 조각은 항상 원래 계열의 끝에서 시작됩니다. 따라서 세 개의 새 데이터 요소를 추가하고 6개의 예측을 요청하는 경우 처음 세 개의 예측이 새 데이터와 겹칩니다. 이 경우 Analysis Services는 모든 새 데이터 요소가 사용될 때까지 예측을 만드는 대신 실제 새 데이터 요소를 반환합니다. 그런 다음 Analysis Services는 복합 계열을 기반으로 예측을 만듭니다.

이 동작을 사용하면 프로젝션을 보는 대신 새 데이터를 추가한 다음 예측 차트에 실제 판매 수치를 표시할 수 있습니다.

예를 들어 세 개의 새 데이터 요소를 추가하고 세 가지 새 예측을 수행하려면 다음을 수행합니다.

  • 시계열 모델을 생성하고, 새로운 데이터의 3개월치 출처를 지정합니다.

  • 6개의 시간 조각에 대한 예측을 요청합니다. 이렇게 하려면 시작점이 시간 조각 1이고 끝점이 시간 조각 7인 6개의 시간 조각을 지정합니다. 이는 EXTEND_MODEL_CASES 경우에만 마찬가지입니다.

  • 새 예측만 얻으려면 시작점을 4로, 끝점을 7로 지정합니다.

  • 인수 EXTEND_MODEL_CASES를 사용해야 합니다.

    실제 판매 수치는 처음 세 개의 시간 조각에 대해 반환되며 확장 모델을 기반으로 하는 예측은 다음 세 시간 조각에 대해 반환됩니다.

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

모델의 사례를 바꾸면 모델의 크기는 동일하게 유지되지만 Analysis Services는 모델의 개별 사례를 대체합니다. 이는 일관된 크기로 학습 데이터 집합을 유지하는 것이 중요한 교차 예측 및 시나리오에 유용합니다.

예를 들어 매장 중 하나에 판매 데이터가 부족합니다. 특정 지역의 모든 매장에 대한 평균 매출을 계산한 다음 모델을 학습시켜 일반 모델을 만들 수 있습니다. 매장에 대해 충분한 판매 데이터 없이 예측하기 위해, 해당 매장의 새로운 판매 데이터에서 PREDICTION JOIN를 생성합니다. 이렇게 하면 Analysis Services는 지역 모델에서 파생된 패턴을 유지하지만 기존 학습 사례를 개별 저장소의 데이터로 바꿉니다. 따라서 예측 값은 개별 저장소의 추세선에 더 가깝습니다.

인수를 REPLACE_MODEL_CASES 사용하는 경우 Analysis Services는 사례 집합의 끝에 새 사례를 지속적으로 추가하고 사례 집합의 시작 부분에서 해당 수를 삭제합니다. 원래 학습 집합보다 더 많은 새 데이터를 추가하면 Analysis Services는 가장 빠른 데이터를 삭제합니다. 충분한 새 값을 제공하는 경우 예측은 완전히 새로운 데이터를 기반으로 할 수 있습니다.

예를 들어 1000개의 행이 포함된 사례 데이터 집합에 대해 모델을 학습시켰습니다. 그런 다음 100개 행의 새 데이터를 추가합니다. Analysis Services는 학습 집합에서 처음 100개의 행을 삭제하고 총 1000개의 행에 대해 100개의 새 데이터 행을 집합의 끝에 추가합니다. 1100개의 새 데이터 행을 추가하는 경우 가장 최근의 1000개 행만 사용됩니다.

다음은 또 다른 예입니다. 새 달의 데이터 3개를 추가하고 세 가지 새 예측을 수행하려면 다음 작업을 수행합니다.

  • PREDICTION JOIN 시계열 모델을 만들고 REPLACE_MODEL_CASE 인수를 사용합니다.

  • 새 데이터의 3개월 분량의 소스를 지정합니다. 이 데이터는 원래 학습 데이터와 완전히 다른 원본에서 온 것일 수 있습니다.

  • 6개의 시간 조각에 대한 예측을 요청합니다. 이렇게 하려면 6개의 시간 조각을 지정하거나 시작점을 시간 조각 1로 지정하고 끝점을 시간 조각 7로 지정합니다.

    비고

    EXTEND_MODEL_CASES와 달리, 입력 데이터로 추가한 값을 그대로 반환할 수 없습니다. 반환된 6개 값은 모두 이전 데이터와 새 데이터를 모두 포함하는 업데이트된 모델을 기반으로 하는 예측입니다.

    비고

    REPLACE_MODEL_CASES로 인해 타임스탬프 1부터 이전 학습 데이터를 대체하는 새 데이터를 기반으로 새 예측을 받습니다.

쿼리 예제 및 사용 REPLACE_MODEL_CASESEXTEND_MODEL_CASES구문에 대한 자세한 내용은 PredictTimeSeries(DMX)를 참조하세요.

시계열 모델에서 누락된 값 대체

문을 사용하여 PREDICTION JOIN 시계열 모델에 새 데이터를 추가하는 경우 새 데이터 세트에는 누락된 값이 있을 수 없습니다. 계열이 불완전한 경우 모델은 null, 숫자 평균, 특정 숫자 평균 또는 예측 값을 사용하여 누락된 값을 제공해야 합니다. 지정 EXTEND_MODEL_CASES하는 경우 Analysis Services는 누락된 값을 원래 모델을 기반으로 하는 예측으로 바꿉니다. 사용하는 REPLACE_MODEL_CASES경우 Analysis Services는 누락된 값을 MISSING_VALUE_SUBSTITUTION 매개 변수에 지정한 값으로 바꿉니다.

예측 함수 목록

모든 Microsoft 알고리즘은 일반적인 함수 집합을 지원합니다. 그러나 Microsoft 시계열 알고리즘은 다음 표에 나열된 추가 함수를 지원합니다.

예측 함수 사용법
지연 시간(DMX) 현재 사례의 날짜와 학습 집합의 마지막 날짜 사이의 여러 시간 조각을 반환합니다.

이 함수의 일반적인 사용은 사례에 대한 자세한 데이터를 검색할 수 있도록 최근 학습 사례를 식별하는 것입니다.
PredictNodeId(DMX) 지정된 예측 가능한 열의 노드 ID를 반환합니다.

이 함수의 일반적인 용도는 노드와 연결된 사례를 검토하거나 수식 및 기타 세부 정보를 검색할 수 있도록 특정 예측 값을 생성한 노드를 식별하는 것입니다.
PredictStdev(DMX) 지정된 예측 가능한 열에서 예측의 표준 편차를 반환합니다.

이 함수는 시계열 모델에 지원되지 않는 INCLUDE_STATISTICS 인수를 대체합니다.
PredictVariance(DMX) 지정된 예측 가능한 열에 대한 예측의 분산을 반환합니다.

이 함수는 시계열 모델에 지원되지 않는 INCLUDE_STATISTICS 인수를 대체합니다.
PredictTimeSeries(DMX) 시계열에 대해 예측된 기록 값 또는 미래 예측 값을 반환합니다.

일반 예측 함수인 Predict(DMX)를 사용하여 시계열 모델을 쿼리할 수도 있습니다.

모든 Microsoft 알고리즘에 공통적인 함수 목록은 DMX(일반 예측 함수)를 참조하세요. 특정 함수의 구문은 DMX(데이터 마이닝 확장) 함수 참조를 참조하세요.

또한 참조하십시오

데이터 마이닝 쿼리
Microsoft 시계열 알고리즘
Microsoft 시계열 알고리즘 기술 참조
시계열 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)