4단원: Market Basket 예측 실행

이 단원에서는 DMX SELECT 문을 사용하여 2단원: Market Basket 마이닝 구조에 마이닝 모델 추가에서 만든 연결 모델을 기반으로 예측을 만듭니다. 예측 쿼리는 DMX SELECT 문을 사용하고 PREDICTION JOIN 절을 추가하여 만들어집니다. 예측 조인의 구문에 대한 자세한 내용은 SELECT FROM <model> PREDICTION JOIN(DMX)을 참조하십시오.

SELECT 문의 SELECT FROM <model> PREDICTION JOIN 형식은 다음과 같은 세 부분으로 이루어져 있습니다.

  • 결과 집합에 반환된 마이닝 모델 열 및 예측 함수 목록. 이 목록에는 원본 데이터의 입력 열도 포함될 수 있습니다.

  • 예측을 만드는 데 사용되는 데이터를 정의하는 원본 쿼리. 예를 들어 일괄 처리로 많은 예측을 만드는 경우 원본 쿼리가 고객 목록을 검색할 수 있습니다.

  • 마이닝 모델 열과 원본 데이터 간의 매핑. 열 이름이 일치하는 경우 NATURAL PREDICTION JOIN 구문을 사용할 수 있으며 열 매핑을 생략할 수 있습니다.

예측 함수를 사용하여 쿼리를 개선할 수 있습니다. 예측 함수는 예측 사항의 발생 확률과 같은 추가 정보를 제공하거나 학습 데이터 집합의 예측에 대한 지원을 제공합니다. 예측 함수에 대한 자세한 내용은 함수(DMX)를 참조하십시오.

Business Intelligence Development Studio에서 예측 쿼리 작성기를 사용하여 예측 쿼리를 만들 수도 있습니다. 자세한 내용은 예측 쿼리 작성기를 사용하여 DMX 예측 쿼리 만들기를 참조하십시오.

단일 PREDICTION JOIN 문

첫 번째 단계는 SELECT FROM <model> PREDICTION JOIN 구문을 사용하고 단일 값 집합을 입력으로 제공하여 단일 쿼리를 만드는 것입니다. 다음은 단일 문의 일반적인 예입니다.

SELECT <select list>
    FROM [<mining model>] 
[NATURAL] PREDICTION JOIN
(SELECT '<value>' AS [<column>], 
    (SELECT 'value' AS [<nested column>] UNION
        SELECT 'value' AS [<nested column>] ...) 
    AS [<nested table>])
AS [<input alias>]

코드의 첫 번째 줄에서는 쿼리가 반환하는 마이닝 모델의 열을 정의하고 예측을 생성하는 데 사용되는 마이닝 모델의 이름을 지정합니다.

SELECT <select list> FROM [<mining model>] 

코드의 다음 줄은 수행할 작업을 나타냅니다. 각각의 열에 값을 지정하고 해당 모델과 일치하도록 정확한 열 이름을 입력할 것이기 때문에 NATURAL PREDICTION JOIN 구문을 사용할 수 있습니다. 그러나 열 이름이 서로 다른 경우 ON 절을 추가하여 모델 열과 새 데이터 열 사이의 매핑을 지정해야 합니다.

[NATURAL] PREDICTION JOIN

코드의 다음 줄에서는 고객이 추가할 추가 제품 예측에 사용할 시장 바구니 제품을 정의합니다.

(SELECT '<value>' AS [<column>], 
    (SELECT 'value' AS [<nested column>] UNION
        SELECT 'value' AS [<nested column>] ...) 
    AS [<nested table>])

단원 태스크

이 단원에서는 다음 태스크를 수행합니다.

  • 시장 바구니에 이미 있는 항목을 기반으로 고객이 구매할 가능성이 높은 다른 항목을 예측하는 쿼리를 만듭니다. 기본값이 MINIMUM_PROBABILITY인 마이닝 모델을 사용하여 이 쿼리를 만듭니다.

  • 시장 바구니에 이미 있는 항목을 기반으로 고객이 구매할 가능성이 높은 다른 항목을 예측하는 쿼리를 만듭니다. 이 쿼리는 MINIMUM_PROBABILITY가 0.01로 설정된 다른 모델을 기반으로 합니다. 연결 모델의 MINIMUM_PROBABILITY에 대한 기본값이 0.3이므로 이 모델에 대한 쿼리는 기본 모델에 대한 쿼리보다 가능성이 높은 항목을 반환합니다.

MINIMUM_PROBABILITY가 기본값인 모델을 사용하여 예측 만들기

연결 쿼리를 만들려면

  1. 개체 탐색기에서 Analysis Services 인스턴스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 가리킨 다음 DMX를 클릭하여 쿼리 편집기를 엽니다.

  2. PREDICTION JOIN 문의 일반적인 예를 빈 쿼리에 복사합니다.

  3. 다음 내용을

    <select list> 
    

    다음 구문으로 바꿉니다.

    PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
    

    단순히 열 이름인 [Products]를 포함할 수도 있지만 Predict(DMX) 함수를 사용하면 알고리즘에서 반환하는 제품 수를 세 개로 제한할 수 있습니다. 또한 각 제품에 대한 지원, 확률 및 조정된 확률을 반환하는 INCLUDE_STATISTICS를 사용할 수 있습니다. 이러한 통계를 사용하면 예측 정확도의 등급을 매길 수 있습니다.

  4. 다음 내용을

    [<mining model>] 
    

    다음 구문으로 바꿉니다.

    [Default Association]
    
  5. 다음 내용을

    (SELECT '<value>' AS [<column>], 
        (SELECT 'value' AS [<nested column>] UNION
            SELECT 'value' AS [<nested column>] ...) 
        AS [<nested table>])
    

    다음 구문으로 바꿉니다.

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
      UNION SELECT 'Mountain Tire Tube' AS [Model]
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
    

    이 문은 UNION 문을 사용하여 예측된 제품과 함께 시장 바구니에 포함되어야 하는 세 가지 제품을 지정합니다. SELECT 문의 Model 열은 중첩된 제품 테이블에 포함된 모델 열에 해당합니다.

    이제 전체 문이 다음과 같아야 합니다.

    SELECT
      PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
    From
      [Default Association]
    NATURAL PREDICTION JOIN
    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
      UNION SELECT 'Mountain Tire Tube' AS [Model]
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
    
  6. 파일 메뉴에서 다른 이름으로 DMXQuery1.dmx 저장을 클릭합니다.

  7. 다른 이름으로 저장 대화 상자에서 해당 폴더로 이동한 다음 파일 이름을 Association Prediction.dmx로 지정합니다.

  8. 도구 모음에서 실행 단추를 클릭합니다.

    쿼리가 HL Mountain Tire, Fender Set - Mountain 및 ML Mountain Tire라는 세 개의 제품을 포함하는 테이블을 반환합니다. 테이블에는 반환된 이러한 제품이 확률 순서대로 나열됩니다. 반환된 제품 중 쿼리에 지정된 세 개의 제품과 동일한 시장 바구니에 포함될 가능성이 가장 높은 제품이 테이블 맨 위에 표시됩니다. 그 다음에 오는 두 개의 제품은 시장 바구니에 포함될 가능성이 다음으로 높은 제품입니다. 이 테이블은 예측의 정확도를 설명하는 통계도 포함합니다.

MINIMUM_PROBABILITY가 0.01인 모델을 사용하여 예측 만들기

연결 쿼리를 만들려면

  1. 개체 탐색기에서 Analysis Services 인스턴스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 가리킨 다음 DMX를 클릭하여 쿼리 편집기를 엽니다.

  2. PREDICTION JOIN 문의 일반적인 예를 빈 쿼리에 복사합니다.

  3. 다음 내용을

    <select list> 
    

    다음 구문으로 바꿉니다.

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
    
  4. 다음 내용을

    [<mining model>] 
    

    다음 구문으로 바꿉니다.

    [Modified Association]
    
  5. 다음 내용을

    (SELECT '<value>' AS [<column>], 
        (SELECT 'value' AS [<nested column>] UNION
            SELECT 'value' AS [<nested column>] ...) 
        AS [<nested table>])
    

    다음 구문으로 바꿉니다.

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
      UNION SELECT 'Mountain Tire Tube' AS [Model]
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
    

    이 문은 UNION 문을 사용하여 예측된 제품과 함께 시장 바구니에 포함되어야 하는 세 가지 제품을 지정합니다. SELECT 문의 [Model] 열은 중첩된 제품 테이블의 열에 해당합니다.

    이제 전체 문이 다음과 같아야 합니다.

    SELECT
      PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
    From
      [Modified Association]
    NATURAL PREDICTION JOIN
    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
      UNION SELECT 'Mountain Tire Tube' AS [Model]
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
    
  6. 파일 메뉴에서 다른 이름으로 DMXQuery1.dmx 저장을 클릭합니다.

  7. 다른 이름으로 저장 대화 상자에서 해당 폴더로 이동한 다음 파일 이름을 Modified Association Prediction.dmx로 지정합니다.

  8. 도구 모음에서 실행 단추를 클릭합니다.

    쿼리가 HL Mountain Tire, Water Bottle 및 Fender Set - Mountain이라는 세 개의 제품을 포함하는 테이블을 반환합니다. 테이블에는 이러한 제품이 확률 순서대로 나열됩니다. 테이블 맨 위에 나타나는 제품은 쿼리에 지정된 세 개의 제품과 동일한 시장 바구니에 포함될 가능성이 가장 높은 제품입니다. 나머지 제품은 시장 바구니에 포함될 가능성이 다음으로 높은 제품입니다. 이 테이블은 예측의 정확도를 설명하는 통계도 포함합니다.

    이 쿼리의 결과를 통해 MINIMUM_PROBABILITY 매개 변수의 값이 쿼리가 반환하는 결과에 영향을 준다는 사실을 알 수 있습니다.

이 단원은 Market Basket 자습서의 마지막 단계입니다. 이제 고객이 동시에 구매할 수 있는 제품을 예측하는 데 사용할 수 있는 모델 집합이 완료되었습니다.

다른 예측 시나리오에서 DMX를 사용하는 방법은 Bike Buyer DMX 자습서를 참조하십시오.