데이터 마이닝 모델에 대해 쿼리를 만들 때 분석에서 검색된 패턴에 대한 세부 정보를 제공하는 콘텐츠 쿼리를 만들거나 모델의 패턴을 사용하여 새 데이터에 대한 예측을 만드는 예측 쿼리를 만들 수 있습니다. 데이터 마이닝 스키마 행 집합에 대한 쿼리를 사용하여 모델에 대한 메타데이터를 검색할 수도 있습니다. 이 섹션에서는 Microsoft Naive Bayes 알고리즘을 기반으로 하는 모델에 대해 이러한 쿼리를 만드는 방법을 설명합니다.
콘텐츠 쿼리
예측 쿼리
Naive Bayes 모델에 대한 정보 찾기
Naive Bayes 모델의 모델 콘텐츠는 학습 데이터의 값 분포에 대한 집계된 정보를 제공합니다. 데이터 마이닝 스키마 행 집합에 대한 쿼리를 만들어 모델의 메타데이터에 대한 정보를 검색할 수도 있습니다.
샘플 쿼리 1: DMX를 사용하여 모델 메타데이터 가져오기
데이터 마이닝 스키마 행 집합을 쿼리하여 모델에 대한 메타데이터를 찾을 수 있습니다. 여기에는 모델을 만들 때, 모델이 마지막으로 처리된 경우, 모델이 기반으로 하는 마이닝 구조의 이름 및 예측 가능한 특성으로 사용되는 열의 이름이 포함될 수 있습니다. 모델을 만들 때 사용된 매개 변수를 반환할 수도 있습니다.
SELECT MODEL_CATALOG, MODEL_NAME, DATE_CREATED, LAST_PROCESSED,
SERVICE_NAME, PREDICTION_ENTITY, FILTER
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_NaiveBayes_Filtered'
샘플 결과:
| 모델 카탈로그 | AdventureWorks |
| MODEL_NAME | TM_NaiveBayes_Filtered |
| 생성일 | 3/1/2008 19:15 |
| 마지막 처리됨 | 3/2/2008 20:00 |
| 서비스_이름 | Microsoft_Naive_Bayes |
| 예측_엔티티 | 자전거 구매자, 연간 소득 |
| 필터 | [Region] = 'Europe' OR [Region] = 'North America' |
이 예제에 사용되는 모델은 기본 데이터 마이닝 자습서에서 만든 Naive Bayes 모델을 기반으로 하지만 예측 가능한 두 번째 특성을 추가하고 학습 데이터에 필터를 적용하여 수정되었습니다.
샘플 쿼리 2: 학습 데이터 요약 검색
Naive Bayes 모델에서 한계 통계 노드는 학습 데이터의 값 분포에 대한 집계된 정보를 저장합니다. 이 요약은 편리하며 동일한 정보를 찾기 위해 학습 데이터에 대해 SQL 쿼리를 만들지 않아도 됩니다.
다음 예제에서는 DMX 콘텐츠 쿼리를 사용하여 노드에서 데이터를 검색합니다(NODE_TYPE = 24). 통계는 중첩 테이블에 저장되므로 FLATTENED 키워드를 사용하여 결과를 더 쉽게 볼 수 있습니다.
SELECT FLATTENED MODEL_NAME,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT], [PROBABILITY], VALUETYPE FROM NODE_DISTRIBUTION) AS t
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 26
비고
동일한 이름의 MDX(Multidimensional Expressions) 예약 키워드와 구분하려면 열 이름(SUPPORT 및 PROBABILITY)을 대괄호로 묶어야 합니다.
일부 결과:
| MODEL_NAME | t.ATTRIBUTE_NAME | 속성값 | t.지원 | t.확률 | t.VALUETYPE |
|---|---|---|---|---|---|
| TM_NaiveBayes | 자전거 구매자 | 없어진 | 0 | 0 | 1 |
| TM_NaiveBayes | 자전거 구매자 | 0 | 8869 | 0.507263784 | 4 |
| TM_NaiveBayes | 자전거 구매자 | 1 | 8615 | 0.492736216 | 4 |
| TM_NaiveBayes (나이브 베이즈 알고리즘) | 성별 | 없어진 | 0 | 0 | 1 |
| TM_NaiveBayes | 성별 | F | 8656 | 0.495081217 | 4 |
| TM_나이브베이즈 (NaiveBayes 알고리즘) | 성별 | M | 8828 | 0.504918783 | 4 |
예를 들어 이러한 결과는 누락된 값에 맞게 조정된 계산된 확률과 함께 각 불연속 값(VALUETYPE = 4)에 대한 학습 사례 수를 알려줍니다(VALUETYPE = 1).
Naive Bayes 모델의 NODE_DISTRIBUTION 테이블에 제공된 값의 정의는 Naive Bayes 모델용 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요. 누락된 값으로 인해 지원 및 확률 계산의 영향을 받는 방법에 대한 자세한 내용은 누락 값(Analysis Services - 데이터 마이닝)을 참조하세요.
샘플 쿼리 3: 특성에 대한 자세한 정보 찾기
Naive Bayes 모델에는 종종 서로 다른 특성 간의 관계에 대한 복잡한 정보가 포함되어 있으므로 이러한 관계를 보는 가장 쉬운 방법은 Microsoft Naive Bayes 뷰어를 사용하는 것입니다. 그러나 DMX 쿼리를 만들어 데이터를 반환할 수 있습니다.
다음 예제에서는 모델에서 특정 특성 Region에 대한 정보를 반환하는 방법을 보여 있습니다.
SELECT NODE_TYPE, NODE_CAPTION,
NODE_PROBABILITY, NODE_SUPPORT, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE ATTRIBUTE_NAME = 'Region'
이 쿼리는 입력 특성(NODE_TYPE = 10)을 나타내는 노드와 특성의 각 값에 대한 노드(NODE_TYPE = 11)의 두 가지 유형의 노드를 반환합니다. 캡션에 특성 이름과 특성 값이 모두 표시되므로 노드 캡션은 노드 이름이 아닌 노드를 식별하는 데 사용됩니다.
| 노드_유형 | 노드 캡션 | 노드 확률 | 노드 지원 | MSOLAP_NODE_SCORE | 노드_유형 |
|---|---|---|---|---|---|
| 10 | 자전거 구매자 -> 지역 | 1 | 17484 | 84.51555875 | 10 |
| 11 | 자전거 구매자 -> 지역 = 누락됨 | 0 | 0 | 0 | 11 |
| 11 | 자전거 구매자 -> 지역 = 북아메리카 | 0.508236102 | 8886 | 0 | 11 |
| 11 | 자전거 구매자 -> 지역 = 태평양 | 0.193891558 | 3390 | 0 | 11 |
| 11 | 자전거 구매자 -> 지역 = 유럽 | 0.29787234 | 5208 | 0 | 11 |
노드에 저장된 열 중 일부는 노드 확률 점수 및 노드 지원 값과 같은 한계 통계 노드에서 가져올 수 있는 것과 동일합니다. 그러나 MSOLAP_NODE_SCORE 입력 특성 노드에만 제공되는 특수 값이며 모델에서 이 특성의 상대적 중요도를 나타냅니다. 뷰어의 종속성 네트워크 창에서 거의 동일한 정보를 볼 수 있습니다. 그러나 뷰어는 점수를 제공하지 않습니다.
다음 쿼리는 모델에 있는 모든 특성의 중요도 점수를 반환합니다.
SELECT NODE_CAPTION, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 10
ORDER BY MSOLAP_NODE_SCORE DESC
샘플 결과:
| 노드 캡션 | MSOLAP_NODE_SCORE |
|---|---|
| 자전거 구매자 -> 총 자녀 수 | 181.3654836 |
| 자전거 구매자 -> 통근 거리 | 179.8419482 |
| 자전거 구매자 -> 영어 교육 | 156.9841928 |
| 자전거 구매자 -> 집에 있는 자녀 수 | 111.8122599 |
| 자전거 구매자 -> 지역 | 84.51555875 |
| 자전거 구매자 -> 결혼 상태 | 23.13297354 |
| 자전거 구매자 -> 영어 직업 | 2.832069191 |
Microsoft 일반 콘텐츠 트리 뷰어에서 모델 콘텐츠를 검색하면 어떤 통계가 흥미로울지 더 잘 알 수 있습니다. 여기서는 몇 가지 간단한 예제를 보여 줍니다. 더 자주 여러 쿼리를 실행하거나 결과를 저장하고 클라이언트에서 처리해야 할 수 있습니다.
샘플 쿼리 4: 시스템 저장 프로시저 사용
고유한 콘텐츠 쿼리를 작성하는 것 외에도 몇 가지 Analysis Services 시스템 저장 프로시저를 사용하여 결과를 탐색할 수 있습니다. 시스템 저장 프로시저를 사용하려면 저장 프로시저 이름 앞에 CALL 키워드를 접두사로 추가합니다.
CALL GetPredictableAttributes ('TM_NaiveBayes')
일부 결과:
| 속성_이름 | 노드_고유_이름 |
|---|---|
| 자전거 구매자 | 100000001 |
비고
이러한 시스템 저장 프로시저는 Analysis Services 서버와 클라이언트 간의 내부 통신을 위한 것이며 마이닝 모델을 개발하고 테스트할 때만 편의상 사용해야 합니다. 프로덕션 시스템에 대한 쿼리를 만들 때는 항상 DMX를 사용하여 고유한 쿼리를 작성해야 합니다.
Analysis Services 시스템 저장 프로시저에 대한 자세한 내용은 데이터 마이닝 저장 프로시저(Analysis Services - 데이터 마이닝)를 참조하세요.
Naive Bayes 모델을 사용하여 예측
Microsoft Naive Bayes 알고리즘은 일반적으로 입력 및 예측 가능한 특성 간의 관계를 탐색하는 것보다 예측에 덜 사용됩니다. 그러나 모델은 예측 및 연결 모두에 대해 예측 함수의 사용을 지원합니다.
샘플 쿼리 5: Singleton 쿼리를 사용하여 결과 예측
다음 쿼리는 싱글톤 쿼리를 사용하여 새 값을 제공하고 모델에 따라 이러한 특성을 가진 고객이 자전거를 구입할 가능성이 있는지 여부를 예측합니다. 회귀 모델에서 단일 쿼리를 만드는 가장 쉬운 방법은 단일 쿼리 입력 대화 상자를 사용하는 것입니다. 예를 들어, TM_NaiveBayes 모델을 선택하고 Singleton 쿼리를 선택한 다음, [Commute Distance]와 Gender의 드롭다운 목록에서 값을 선택하여 다음 DMX 쿼리를 작성할 수 있습니다.
SELECT
Predict([TM_NaiveBayes].[Bike Buyer])
FROM
[TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
'F' AS [Gender]) AS t
결과 예:
| 표현 |
|---|
| 0 |
예측 함수는 가장 가능성이 큰 값(이 경우 0)을 반환합니다. 이는 이러한 유형의 고객이 자전거를 구매할 가능성이 낮다는 것을 의미합니다.
샘플 쿼리 6: 확률 및 지원 값을 사용하여 예측 가져오기
결과를 예측하는 것 외에도 예측이 얼마나 강한지 알고 싶어하는 경우가 많습니다. 다음 쿼리는 이전 예제와 동일한 단일 쿼리를 사용하지만 예측 함수인 PredictHistogram(DMX)을 추가하여 예측을 지원하는 통계가 포함된 중첩 테이블을 반환합니다.
SELECT
Predict([TM_NaiveBayes].[Bike Buyer]),
PredictHistogram([TM_NaiveBayes].[Bike Buyer])
FROM
[TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
'F' AS [Gender]) AS t
결과 예:
| 자전거 구매자 | $지원 | $PROBABILITY | $조정된확률 | $분산 | $STDEV |
|---|---|---|---|---|---|
| 0 | 10161.5714 | 0.581192599 | 0.010530981 | 0 | 0 |
| 1 | 7321.428768 | 0.418750215 | 0.008945684 | 0 | 0 |
| 0.999828444 | 5.72E-05 | 5.72E-05 | 0 | 0 |
테이블의 마지막 행은 누락된 값에 대한 지원 조정 및 확률을 보여 줍니다. Naive Bayes 모델은 연속 값을 모델링할 수 없으므로 분산 및 표준 편차 값은 항상 0입니다.
샘플 쿼리 7: 연결 예측
마이닝 구조에 예측 가능한 특성이 있는 중첩 테이블이 키로 포함된 경우 Microsoft Naive Bayes 알고리즘을 연결 분석에 사용할 수 있습니다. 예를 들어 3단원: 데이터 마이닝 자습서의 시장 바구니 시나리오 빌드(중간 데이터 마이닝 자습서) 에서 만든 마이닝 구조를 사용하여 Naive Bayes 모델을 빌드할 수 있습니다. 이 예제에 사용된 모델은 사례 테이블에 소득 및 고객 지역에 대한 정보를 추가하도록 수정되었습니다.
다음 쿼리 예제에서는 제품 'Road Tire Tube'구매와 관련된 제품을 예측하는 단일 쿼리를 보여 줍니다. 이 정보를 사용하여 특정 유형의 고객에게 제품을 추천할 수 있습니다.
SELECT PredictAssociation([Association].[v Assoc Seq Line Items])
FROM [Association_NB]
NATURAL PREDICTION JOIN
(SELECT 'High' AS [Income Group],
'Europe' AS [Region],
(SELECT 'Road Tire Tube' AS [Model])
AS [v Assoc Seq Line Items])
AS t
일부 결과:
| 모델 |
|---|
| 여성용 마운틴 쇼츠 |
| 물병 |
| 투어링-3000 |
| 투어링-2000 |
| 투어링-1000 |
함수 목록
모든 Microsoft 알고리즘은 일반적인 함수 집합을 지원합니다. 그러나 Microsoft Naive Bayes 알고리즘은 다음 표에 나열된 추가 함수를 지원합니다.
| 예측 함수 | 사용법 |
| IsDescendant(DMX) | 한 노드가 모델에서 다른 노드의 자식인지 여부를 확인합니다. |
| Predict(DMX) | 지정된 열에 대해 예측된 값 또는 값 집합을 반환합니다. |
| PredictAdjustedProbability(DMX) | 가중 확률을 반환합니다. |
| PredictAssociation(DMX) | 결합 데이터 세트의 멤버 자격을 예측합니다. |
| PredictNodeId(DMX) | 각 사례에 대한 Node_ID 반환합니다. |
| PredictProbability(DMX) | 예측 값의 확률을 반환합니다. |
| PredictSupport(DMX) | 지정된 상태에 대한 지원 값을 반환합니다. |
특정 함수의 구문을 보려면 DMX(데이터 마이닝 확장) 함수 참조를 참조하세요.
또한 참조하십시오
Microsoft Naive Bayes 알고리즘 기술 참조
Microsoft Naive Bayes 알고리즘
Naive Bayes 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)