데이터 마이닝 모델에 대한 쿼리를 만들 때 분석에서 검색된 패턴에 대한 세부 정보를 제공하는 콘텐츠 쿼리를 만들거나 모델의 패턴을 사용하여 새 데이터에 대한 예측을 만드는 예측 쿼리를 만들 수 있습니다. 예를 들어 의사 결정 트리 모델에 대한 콘텐츠 쿼리는 트리의 각 수준에서 사례 수 또는 사례를 구분하는 규칙에 대한 통계를 제공할 수 있습니다. 또는 예측 쿼리는 권장 사항, 분류 등을 생성하기 위해 모델을 새 데이터에 매핑합니다. 쿼리를 사용하여 모델에 대한 메타데이터를 검색할 수도 있습니다.
이 섹션에서는 Microsoft 의사 결정 트리 알고리즘을 기반으로 하는 모델에 대한 쿼리를 만드는 방법을 설명합니다.
콘텐츠 쿼리
데이터 마이닝 스키마 행 집합에서 모델 매개 변수 검색
DMX를 사용하여 모델의 트리에 대한 세부 정보 가져오기
예측 쿼리
의사 결정 트리 모델에 대한 정보 찾기
의사 결정 트리 모델의 콘텐츠에 대한 의미 있는 쿼리를 만들려면 모델 콘텐츠의 구조와 어떤 노드 형식이 어떤 종류의 정보를 저장하는지 이해해야 합니다. 자세한 내용은 의사 결정 트리 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.
샘플 쿼리 1: 데이터 마이닝 스키마 행 집합에서 모델 매개 변수 검색
데이터 마이닝 스키마 행 집합을 쿼리하면 모델 생성 시기, 모델이 마지막으로 처리된 시간, 모델의 기반이 되는 마이닝 구조의 이름 및 예측 가능한 특성으로 사용되는 열의 이름과 같은 모델에 대한 메타데이터를 찾을 수 있습니다. 모델을 처음 만들 때 사용된 매개 변수를 반환할 수도 있습니다.
select MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'
샘플 결과:
채굴 매개변수
COMPLEXITY_PENALTY=0.5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=
샘플 쿼리 2: DMX를 사용하여 모델 콘텐츠에 대한 세부 정보 반환
다음 쿼리는 기본 데이터 마이닝 자습서에서 모델을 빌드할 때 생성된 의사 결정 트리에 대한 몇 가지 기본 정보를 반환합니다. 각 트리 구조는 자체 노드에 저장됩니다. 이 모델에는 예측 가능한 단일 특성이 포함되어 있으므로 하나의 트리 노드만 있습니다. 그러나 의사 결정 트리 알고리즘을 사용하여 연결 모델을 만드는 경우 각 제품에 하나씩 수백 개의 트리가 있을 수 있습니다.
이 쿼리는 예측 가능한 특정 특성을 나타내는 트리의 최상위 노드인 형식 2의 모든 노드를 반환합니다.
비고
열 CHILDREN_CARDINALITY은 같은 이름의 MDX 예약 키워드와 구분하려면 대괄호로 묶어야 합니다.
SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2
결과 예:
| MODEL_NAME | 노드 이름 | 노드 캡션 | 노드 지원 | 자식 수 |
|---|---|---|---|---|
| TM_의사결정트리 | 000000001 | 모두 | 12939 | 5 |
이러한 결과는 무엇을 알려 주나요? 의사 결정 트리 모델에서 특정 노드의 카디널리티는 노드에 있는 직계 자식 수를 알려줍니다. 이 노드의 카디널리티는 5입니다. 즉, 모델은 잠재적인 자전거 구매자의 대상 모집단을 5개의 하위 그룹으로 나눕니다.
다음 관련 쿼리는 자식 노드의 특성 및 값 분포와 함께 이러한 5개 하위 그룹에 대한 자식을 반환합니다. 지원, 확률 및 분산과 같은 통계는 중첩 테이블에 NODE_DISTRIBUTION저장되므로 이 예제에서는 키워드를 사용하여 FLATTENED 중첩 테이블 열을 출력합니다.
비고
중첩 테이블 열 SUPPORT은 같은 이름의 예약된 키워드와 구분하려면 대괄호로 묶어야 합니다.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]
FROM NODE_DISTRIBUTION) AS t
FROM TM_DecisionTree.CONTENT
WHERE [PARENT_UNIQUE_NAME] = '000000001'
결과 예:
| 노드 이름 | 노드 캡션 | T.ATTRIBUTE_NAME | T.속성_값 | 별칭 |
|---|---|---|---|---|
| 00000000100 | 소유 차량 수 = 0 | 자전거 구매자 | 없어진 | 0 |
| 00000000100 | 소유 차량 수 = 0 | 자전거 구매자 | 0 | 1067 |
| 00000000100 | 소유 차량 수 = 0 | 자전거 구매자 | 1 | 1875 |
| 00000000101 | 소유 차량 수 = 3 | 자전거 구매자 | 없어진 | 0 |
| 00000000101 | 소유 차량 수 = 3 | 자전거 구매자 | 0 | 678 |
| 00000000101 | 소유 차량 수 = 3 | 자전거 구매자 | 1 | 473 |
이러한 결과에서 자전거를 구입한 고객([Bike Buyer] = 1), 1067명의 고객에게 0대의 자동차가 있고 473명의 고객에게 3대의 자동차가 있음을 알 수 있습니다.
샘플 쿼리 3: 모델에서 하위 트리 검색
자전거를 구입한 고객에 대해 자세히 알아보고 싶다고 가정해 보겠습니다. 다음 예제와 같이 쿼리에서 IsDescendant(DMX) 함수를 사용하여 하위 트리에 대한 추가 세부 정보를 볼 수 있습니다. 이 쿼리는 42세 이상의 고객이 포함된 트리에서 리프 노드(NODE_TYPE = 4)를 검색하여 자전거 구매자 수를 반환합니다. 쿼리는 중첩 테이블의 행을 Bike Buyer = 1인 행으로 제한합니다.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,
(
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'
) AS t
FROM TM_DecisionTree.CONTENT
WHERE ISDESCENDANT('0000000010001')
AND NODE_TYPE = 4
결과 예:
| 노드 이름 | 노드 캡션 | t.지원 |
|---|---|---|
| 000000001000100 | 연간 소득 >= 26000 및 < 42000 | 266 |
| 00000000100010100 | 총 자식 = 3 | 75 |
| 0000000010001010100 | 집에 있는 자녀 수 = 1 | 75 |
의사 결정 트리 모델을 사용하여 예측하기
의사 결정 트리는 분류, 회귀, 연결 등 다양한 작업에 사용할 수 있으므로 의사 결정 트리 모델에 대한 예측 쿼리를 만들 때 사용할 수 있는 많은 옵션이 있습니다. 예측 결과를 이해하려면 모델을 만든 용도를 이해해야 합니다. 다음 쿼리 샘플에서는 세 가지 시나리오를 보여 줍니다.
예측이 정확할 확률과 함께 분류 모델에 대한 예측을 반환한 다음 확률로 결과를 필터링합니다.
연결을 예측하는 단일 쿼리 만들기
입력과 출력 간의 관계가 선형인 의사 결정 트리의 일부에 대한 회귀 수식을 검색합니다.
샘플 쿼리 4: 확률을 사용하여 예측 반환
다음 샘플 쿼리는 기본 데이터 마이닝 자습서에서 만든 의사 결정 트리 모델을 사용합니다. 쿼리는 테이블 dbo에서 새 샘플 데이터 집합을 전달합니다. AdventureWorks2012 DW의 ProspectiveBuyers는 새 데이터 세트의 고객 중 자전거를 구매할 고객을 예측합니다.
이 쿼리는 모델에서 검색된 확률에 대한 유용한 정보를 포함하는 중첩된 테이블을 반환하는 예측 함수 PredictHistogram(DMX)을 사용합니다. 쿼리의 최종 WHERE 절은 0보다 큰 확률로 자전거를 구입할 가능성이 있는 것으로 예측되는 고객만 반환하도록 결과를 필터링%합니다.
SELECT
[TM_DecisionTree].[Bike Buyer],
PredictHistogram([Bike Buyer]) as Results
From
[TM_DecisionTree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'SELECT
[FirstName],
[LastName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM_DecisionTree].[First Name] = t.[FirstName] AND
[TM_DecisionTree].[Last Name] = t.[LastName] AND
[TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND
[TM_DecisionTree].[Gender] = t.[Gender] AND
[TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND
[TM_DecisionTree].[Total Children] = t.[TotalChildren] AND
[TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]
WHERE [Bike Buyer] = 1
AND PredictProbability([Bike Buyer]) >'.05'
기본적으로 Analysis Services는 열 레이블인 Expression을 사용하여 중첩된 테이블을 반환합니다. 반환되는 열의 별칭을 지정하여 이 레이블을 변경할 수 있습니다. 이렇게 하면 별칭(이 경우 결과)이 열 머리글과 중첩 테이블의 값으로 사용됩니다. 결과를 보려면 중첩 테이블을 확장해야 합니다.
예제 결과 여기서 Bike Buyer = 1:
| 자전거 구매자 | $지원 | $PROBABILITY | $조정된확률 | $분산 | $STDEV |
|---|---|---|---|---|---|
| 1 | 2540 | 0.634849242045644 | 0.013562168281562 | 0 | 0 |
| 0 | 1460 | 0.364984174579377 | 0.00661336932550915 | 0 | 0 |
| 0 | 0.000166583374979177 | 0.000166583374979177 | 0 | 0 |
공급자가 여기에 표시된 것과 같은 계층적 행 집합을 지원하지 않는 경우 쿼리에서 FLATTENED 키워드를 사용하여 반복되는 열 값 대신 null이 포함된 테이블로 결과를 반환할 수 있습니다. 자세한 내용은 중첩 테이블(Analysis Services - 데이터 마이닝) 또는 DMX Select 문 이해를 참조하세요.
샘플 쿼리 5: 의사 결정 트리 모델에서 연결 예측
다음 샘플 쿼리는 연결 마이닝 구조를 기반으로 합니다. 이 예제를 따르려면 이 마이닝 구조에 새 모델을 추가하고 알고리즘으로 Microsoft 의사 결정 트리를 선택할 수 있습니다. 연결 마이닝 구조를 만드는 방법에 대한 자세한 내용은 3단원: 시장 바구니 시나리오 빌드(중간 데이터 마이닝 자습서)를 참조하세요.
다음 샘플 쿼리는 필드를 선택한 다음 드롭다운 목록에서 해당 필드에 대한 값을 선택하여 SSDT(SQL Server Data Tools)에서 쉽게 만들 수 있는 단일 쿼리입니다.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
FROM
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t
예상 결과:
| 모델 |
|---|
| Mountain-200 |
| Mountain Tire Tube |
| 투어링 타이어 튜브 |
그 결과 패치 키트 제품을 구매한 고객에게 추천할 수 있는 세 가지 최고의 제품이 제공됩니다. 값을 입력하거나 단일 쿼리 입력 대화 상자를 사용하고 값을 추가하거나 제거하여 권장 사항을 만들 때 여러 제품을 입력으로 제공할 수도 있습니다. 다음 샘플 쿼리는 여러 값이 제공되는 방식을 보여 하며, 이를 예측합니다. 값은 입력 값을 정의하는 SELECT 문의 UNION 절에 의해 연결됩니다.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
From
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Racing Socks' AS [Model]
UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t
예상 결과:
| 모델 |
|---|
| Long-Sleeve 로고 저지 |
| Mountain-400-W |
| 클래식 조끼 |
샘플 쿼리 6: 의사 결정 트리 모델에서 회귀 수식 검색
연속 특성에 대한 회귀가 포함된 의사 결정 트리 모델을 만들 때 회귀 수식을 사용하여 예측을 만들거나 회귀 수식에 대한 정보를 추출할 수 있습니다. 회귀 모델에 대한 쿼리에 대한 자세한 내용은 선형 회귀 모델 쿼리 예제를 참조하세요.
의사 결정 트리 모델에 불연속 특성 또는 범위에서 분할되는 회귀 노드와 노드가 혼합된 경우 회귀 노드만 반환하는 쿼리를 만들 수 있습니다. NODE_DISTRIBUTION 테이블에는 회귀 수식의 세부 정보가 포함되어 있습니다. 이 예제에서 열은 평면화되고 NODE_DISTRIBUTION 테이블은 더 쉽게 볼 수 있도록 별칭이 지정됩니다. 그러나 이 모델에서는 Income이 다른 연속적인 속성과 관련되지 않는 것으로 밝혀졌습니다. 이러한 경우 Analysis Services는 특성의 평균 값과 해당 특성에 대한 모델의 총 분산을 반환합니다.
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25
결과 예:
| t.ATTRIBUTE_NAME | 속성값 | t.지원 | t.확률 | t.분산 | t.VALUETYPE |
|---|---|---|---|---|---|
| 연간 소득 | 없어진 | 0 | 0.000457142857142857 | 0 | 1 |
| 연간 소득 | 57220.8876687257 | 17484 | 0.999542857142857 | 1041275619.52776 | 3 |
| 57220.8876687257 | 0 | 0 | 1041216662.54387 | 11 |
회귀 모델에 사용되는 값 형식 및 통계에 대한 자세한 내용은 선형 회귀 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.
예측 함수 목록
모든 Microsoft 알고리즘은 일반적인 함수 집합을 지원합니다. 그러나 Microsoft 의사 결정 트리 알고리즘은 다음 표에 나열된 추가 함수를 지원합니다.
| 예측 함수 | 사용법 |
| IsDescendant(DMX) | 한 노드가 모델에서 다른 노드의 자식인지 여부를 확인합니다. |
| IsInNode(DMX) | 지정된 노드에 현재 사례가 포함되어 있는지 여부를 나타냅니다. |
| PredictAdjustedProbability(DMX) | 가중 확률을 반환합니다. |
| PredictAssociation(DMX) | 결합 데이터 세트의 멤버 자격을 예측합니다. |
| PredictHistogram(DMX) | 현재 예측 값과 관련된 값 테이블을 반환합니다. |
| PredictNodeId(DMX) | 각 사례에 대한 Node_ID 반환합니다. |
| PredictProbability(DMX) | 예측 값의 확률을 반환합니다. |
| PredictStdev(DMX) | 지정된 열에 대해 예측된 표준 편차를 반환합니다. |
| PredictSupport(DMX) | 지정된 상태에 대한 지원 값을 반환합니다. |
| PredictVariance(DMX) | 지정된 열의 분산을 반환합니다. |
모든 Microsoft 알고리즘에 공통적인 함수 목록은 DMX(일반 예측 함수)를 참조하세요. 특정 함수의 구문은 DMX(데이터 마이닝 확장) 함수 참조를 참조하세요.
또한 참조하십시오
데이터 마이닝 쿼리
Microsoft 의사 결정 트리 알고리즘
Microsoft 의사 결정 트리 알고리즘 기술 참조
의사 결정 트리 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)