SELECT FROM <모델> 예측 JOIN(DMX)

적용 대상: SQL Server Analysis Services

마이닝 모델을 사용하여 외부 데이터 원본의 열 상태를 예측합니다. PREDICTION JOIN 문은 원본 쿼리에서 모델로의 각 사례와 일치합니다.

구문

  
SELECT [FLATTENED] [TOP <n>] <select expression list>   
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN   
<source data query> [ON <join mapping list>]   
[WHERE <condition expression>]  
[ORDER BY <expression> [DESC|ASC]]  

인수

n
선택 사항. 반환할 행 수를 지정하는 정수입니다.

식 목록 선택
마이닝 모델에서 파생된 열 식별자 및 식의 쉼표로 구분된 목록입니다.

model
모델 식별자입니다.

하위 선택
포함된 select 문입니다.

원본 데이터 쿼리
원본 쿼리입니다.

조인 매핑 목록
선택 사항. 모델에서 원본 쿼리의 열과 열을 비교하는 논리 식입니다.

조건 식
선택 사항. 열 목록에서 반환되는 값을 제한하는 조건입니다.

expression
선택 사항. 스칼라 값을 반환하는 식입니다.

설명

ON 절은 원본 쿼리의 열과 마이닝 모델의 열 간의 매핑을 정의합니다. 이 매핑은 열을 입력으로 사용하여 예측을 만들 수 있도록 원본 쿼리에서 마이닝 모델의 열로 열을 전송하는 데 사용됩니다. 조인 매핑 목록>의 <열은 다음 예제와 같이 등호(=)를 사용하여 관련됩니다.

[MiningModel].ColumnA = [source data query].Column1 AND   
[MiningModel].ColumnB = [source data query].Column2 AND  
...  

ON 절에서 중첩 테이블을 바인딩하는 경우 알고리즘이 중첩된 열의 레코드가 속하는 경우를 올바르게 식별할 수 있도록 키 열을 키가 아닌 열과 바인딩해야 합니다.

예측 조인에 대한 원본 쿼리는 테이블 또는 단일 쿼리일 수 있습니다.

select 식 목록> 및 조건 식>에서 <테이블 식을 반환하지 않는 예측 함수를 <지정할 수 있습니다.

NATURAL PREDICTION JOIN 은 모델의 열 이름과 일치하는 원본 쿼리의 열 이름을 자동으로 함께 매핑합니다. NATURAL PREDICTION을 사용하는 경우 ON 절을 생략할 수 있습니다.

WHERE 조건은 예측 가능한 열 또는 관련 열에만 적용할 수 있습니다.

ORDER by 절은 단일 열만 인수로 사용할 수 있습니다. 즉, 둘 이상의 열을 정렬할 수 없습니다.

예제 1: 싱글톤 쿼리

다음 예에서는 특정 개인이 자전거를 구입할지 여부를 실시간으로 예측하는 쿼리를 만드는 방법을 보여 줍니다. 이 쿼리에서 데이터는 테이블 또는 다른 데이터 원본에 저장되지 않고 쿼리에 직접 입력됩니다. 쿼리의 사용자에게는 다음과 같은 특성이 있습니다.

  • 35세

  • 주택 소유

  • 자동차 두 대 소유

  • 동거 자녀 두 명

TM 의사 결정 트리 마이닝 모델 및 주체에 대한 알려진 특성을 사용하여 쿼리는 사람이 자전거를 구입했는지 여부를 설명하는 부울 값과 예측이 어떻게 만들어졌는지 설명하는 PredictHistogram(DMX) 함수에서 반환한 테이블 형식 값 집합을 반환합니다.

SELECT  
  [TM Decision Tree].[Bike Buyer],  
  PredictHistogram([Bike Buyer])  
FROM  
  [TM Decision Tree]  
NATURAL PREDICTION JOIN  
(SELECT 35 AS [Age],  
  '5-10 Miles' AS [Commute Distance],  
  '1' AS [House Owner Flag],  
  2 AS [Number Cars Owned],  
  2 AS [Total Children]) AS t  

예제 2: OPENQUERY 사용

다음 예제에서는 외부 데이터 세트에 저장된 잠재 고객 목록을 사용하여 일괄 처리 예측 쿼리를 만드는 방법을 보여 줍니다. 테이블은 Analysis Services 인스턴스에 정의된 데이터 원본 뷰의 일부이므로 쿼리는 OPENQUERY를 사용하여 데이터를 검색할 수 있습니다. 테이블의 열 이름이 마이닝 모델의 열과 다르기 때문에 ON 절을 사용하여 테이블의 열을 모델의 열에 매핑해야 합니다.

쿼리는 테이블에 있는 각 개인의 성과 이름 및 각 개인이 자전거를 구입할 가능성이 있는지 여부를 나타내는 부울 열을 반환합니다. 부울 열에서 0은 "자전거를 구입할 가능성이 낮음"을, 1은 "자전거를 구입할 가능성이 높음"을 나타냅니다. 마지막 열에는 예측된 결과에 대한 확률이 포함됩니다.

SELECT  
  t.[LastName],  
  t.[FirstName],  
  [TM Decision Tree].[Bike Buyer],  
  PredictProbability([Bike Buyer])  
From  
  [TM Decision Tree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [LastName],  
      [FirstName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [Education],  
      [Occupation],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND  
  [TM Decision Tree].[Gender] = t.[Gender] AND  
  [TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM Decision Tree].[Total Children] = t.[TotalChildren] AND  
  [TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM Decision Tree].[Education] = t.[Education] AND  
  [TM Decision Tree].[Occupation] = t.[Occupation] AND  
  [TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]  

데이터 집합을 자전거를 구입할 것으로 예측되는 고객으로만 제한한 다음 고객 이름으로 목록을 정렬하려면 이전 예제에 WHERE 절과 ORDER BY 절을 추가할 수 있습니다.

WHERE [BIKE Buyer]  
ORDER BY [LastName] ASC  

예제 3: 연결 예측

다음 예제에서는 Microsoft 연결 알고리즘에서 빌드된 모델을 사용하여 예측을 만드는 방법을 보여줍니다. 연결 모델에 대한 예측을 사용하여 관련 제품을 추천할 수 있습니다. 예를 들어 다음 쿼리는 함께 구매할 가능성이 가장 큰 세 가지 제품을 반환합니다.

  • Mountain Bottle Cage

  • Mountain Tire Tube

  • Mountain-200

Predict(DMX) 함수는 다형이며 모든 모델 형식에서 사용할 수 있습니다. value3을 함수의 인수로 사용하여 쿼리에서 반환되는 항목 수를 제한합니다. NATURAL PREDICTION JOIN 절 뒤에 있는 SELECT 목록은 예측에 대한 입력으로 사용할 값을 제공합니다.

SELECT FLATTENED  
  PREDICT([Association].[v Assoc Seq Line Items], 3)  
FROM  
  [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 [v Assoc Seq Line Items ]) AS t  

예제 결과:

Expression.Model
HL Mountain Tire
물병
펜더 세트 - 마운틴

예측 가능한 특성을 [v Assoc Seq Line Items]포함하는 열이 테이블 열이므로 쿼리는 중첩된 테이블을 포함하는 단일 열을 반환합니다. 기본적으로 중첩 테이블 열의 이름은 Expression입니다. 공급자가 계층적 행 집합을 지원하지 않는 경우 이 예제와 같이 FLATTENED 키워드를 사용하여 결과를 더 쉽게 볼 수 있습니다.

참고 항목

SELECT(DMX)
DMX(데이터 마이닝 확장) 데이터 정의 문
DMX(데이터 마이닝 확장) 데이터 조작 문
DMX(Data Mining Extensions) 문 참조