Naive Bayes 모델 쿼리 예제Naive Bayes Model Query Examples

적용 대상:예SQL Server Analysis Services아니요Azure Analysis ServicesAPPLIES TO:yesSQL Server Analysis ServicesnoAzure Analysis Services데이터 마이닝 모델에 대 한 쿼리를 만들 때 내용 쿼리, 분석 시 발견 된 패턴에 대 한 세부 정보에 제공 하는 만들 수 있습니다 또는 패턴을 사용 하는 모델에 새 데이터에 대 한 예측을 만드는 예측 쿼리를 만들 수 있습니다. When you create a query against a data mining model, you can create either a content query, which provides details about the patterns discovered in analysis, or you can create a prediction query, which uses the patterns in the model to make predictions for new data. 데이터 마이닝 스키마 행 집합에 대한 쿼리를 사용하여 모델에 대한 메타데이터를 검색할 수도 있습니다.You can also retrieve metadata about the model by using a query against the data mining schema rowset. 이 섹션에서는 Microsoft Naive Bayes 알고리즘을 기반으로 하는 모델에 대해 이러한 쿼리를 만드는 방법을 설명합니다.This section explains how to create these queries for models that are based on the Microsoft Naive Bayes algorithm.

내용 쿼리Content Queries

DMX를 사용하여 모델 메타데이터 가져오기Getting model metadata by using DMX

학습 데이터의 요약 검색Retrieving a summary of training data

특성에 대한 추가 정보 찾기Finding more information about attributes

시스템 저장 프로시저 사용Using system stored procedures

예측 쿼리Prediction Queries

단일 쿼리를 사용하여 결과 예측Predicting outcomes using a singleton query

확률 및 지지도 값과 함께 예측 가져오기Getting predictions with probability and support values

연결 예측Predicting associations

Naive Bayes 모델에 대한 정보 찾기Finding Information about a Naive Bayes Model

Naive Bayes 모델의 모델 콘텐츠는 학습 데이터의 값 분포에 대한 집계 정보를 제공합니다.The model content of a Naive Bayes model provides aggregated information about the distribution of values in the training data. 데이터 마이닝 스키마 행 집합에 대한 쿼리를 만들어 모델의 메타데이터에 대한 정보를 검색할 수도 있습니다.You can also retrieve information about the metadata of the model by creating queries against the data mining schema rowsets.

예제 쿼리 1: DMX를 사용하여 모델 메타데이터 가져오기Sample Query 1: Getting Model Metadata by Using DMX

데이터 마이닝 스키마 행 집합을 쿼리하면 모델에 대한 메타데이터를 찾을 수 있습니다.By querying the data mining schema rowset, you can find metadata for the model. 이러한 메타데이터로는 모델이 만들어진 시기, 모델이 마지막으로 처리된 시기, 모델의 기반이 되는 마이닝 구조의 이름, 예측 가능한 특성으로 사용된 열 이름 등이 포함됩니다.This might include when the model was created, when the model was last processed, the name of the mining structure that the model is based on, and the name of the columns used as the predictable attribute. 모델을 만들 때 사용된 매개 변수를 반환할 수도 있습니다.You can also return the parameters that were used when the model was created.

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'  

예제 결과:Sample results:

MODEL_CATALOGMODEL_CATALOG AdventureWorksAdventureWorks
MODEL_NAMEMODEL_NAME TM_NaiveBayes_FilteredTM_NaiveBayes_Filtered
DATE_CREATEDDATE_CREATED 3/1/2008 19:153/1/2008 19:15
LAST_PROCESSEDLAST_PROCESSED 3/2/2008 20:003/2/2008 20:00
SERVICE_NAMESERVICE_NAME Microsoft_Naive_BayesMicrosoft_Naive_Bayes
PREDICTION_ENTITYPREDICTION_ENTITY Bike Buyer,Yearly IncomeBike Buyer,Yearly Income
FILTERFILTER [Region] = 'Europe' OR [Region] = 'North America'[Region] = 'Europe' OR [Region] = 'North America'

이 예에 사용된 모델은 Basic Data Mining Tutorial에서 만드는 Naive Bayes 모델을 기반으로 하되 여기에 두 번째 예측 가능한 특성을 추가하고 학습 데이터에 필터를 적용하여 수정한 것입니다.The model used for this example is based on the Naive Bayes model you create in the Basic Data Mining Tutorial, but was modified by adding a second predictable attribute and applying a filter to the training data.

예제 쿼리 2: 학습 데이터의 요약 검색Sample Query 2: Retrieving a Summary of Training Data

Naive Bayes 모델에서 한계 통계 노드에는 학습 데이터의 값 분포에 대한 집계 정보가 저장됩니다.In a Naive Bayes model, the marginal statistics node stores aggregated information about the distribution of values in the training data. 따라서 이와 같은 요약 정보를 찾기 위해 학습 데이터에 대한 SQL 쿼리를 만들지 않아도 되므로 편리합니다.This summary is convenient and saves you from having to create SQL queries against the training data to find the same information.

다음 예에서는 DMX 내용 쿼리를 사용하여 노드(NODE_TYPE = 24)에서 데이터를 검색합니다.The following example uses a DMX content query to retrieve the data from the node (NODE_TYPE = 24). 통계는 중첩 테이블에 저장되어 있으므로 결과를 보기 쉽게 만들기 위해 FLATTENED 키워드가 사용됩니다.Because the statistics are stored in a nested table, the FLATTENED keyword is used to make the results easier to view.

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  

참고

SUPPORT 및 PROBABILITY 열의 이름을 대괄호로 묶어 동일한 이름의 MDX(Multidimensional Expressions) 예약 키워드와 구별해야 합니다.You must enclose the name of the columns, SUPPORT and PROBABILITY, in brackets to distinguish them from the Multidimensional Expressions (MDX) reserved keywords of the same names.

일부 결과:Partial results:

MODEL_NAMEMODEL_NAME t.ATTRIBUTE_NAMEt.ATTRIBUTE_NAME t.ATTRIBUTE_VALUEt.ATTRIBUTE_VALUE t.SUPPORTt.SUPPORT t.PROBABILITYt.PROBABILITY t.VALUETYPEt.VALUETYPE
TM_NaiveBayesTM_NaiveBayes Bike BuyerBike Buyer MissingMissing 00 00 11
TM_NaiveBayesTM_NaiveBayes Bike BuyerBike Buyer 00 88698869 0.5072637840.507263784 44
TM_NaiveBayesTM_NaiveBayes Bike BuyerBike Buyer 11 86158615 0.4927362160.492736216 44
TM_NaiveBayesTM_NaiveBayes GenderGender MissingMissing 00 00 11
TM_NaiveBayesTM_NaiveBayes GenderGender FF 86568656 0.4950812170.495081217 44
TM_NaiveBayesTM_NaiveBayes GenderGender MM 88288828 0.5049187830.504918783 44

예를 들어 이러한 결과는 누락 값(VALUETYPE = 1)에 대해 조정된 계산된 확률과 함께 각 불연속 값(VALUETYPE = 4)의 학습 사례 수를 나타냅니다.For example, these results tell you the number of training cases for each discrete value (VALUETYPE = 4), together with the computed probability, adjusted for missing values (VALUETYPE = 1).

Naive Bayes 모델의 NODE_DISTRIBUTION 테이블에 제공되는 값에 대한 정의는 Naive Bayes 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.For a definition of the values provided in the NODE_DISTRIBUTION table in a Naive Bayes model, see Mining Model Content for Naive Bayes Models (Analysis Services - Data Mining). 누락 값이 지지도 및 확률 계산에 주는 영향에 대한 자세한 내용은 누락 값(Analysis Services - 데이터 마이닝)을 참조하세요.For more information about how support and probability calculations are affected by missing values, see Missing Values (Analysis Services - Data Mining).

예제 쿼리 3: 특성에 대한 추가 정보 찾기Sample Query 3: Finding More Information about Attributes

Naive Bayes 모델에는 서로 다른 특성 간의 관계에 대한 복잡한 정보가 들어 있는 경우도 있으므로 이러한 관계를 가장 쉽게 보는 방법은 Microsoft Naive Bayes 뷰어를 사용하는 것입니다.Because a Naive Bayes model often contains complex information about the relationships among different attributes, the easiest way to view these relationships is to use the Microsoft Naive Bayes Viewer. 그러나 DMX 쿼리를 만들어 데이터를 반환할 수도 있습니다.However, you can create DMX queries to return the data.

다음 예에서는 모델에서 특정 특성 Region에 대한 정보를 반환하는 방법을 보여 줍니다.The following example shows how to return information from the model about a particular attribute, 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)는 특성의 각 값에 대한 노드입니다.This query returns two types of nodes: the node that represents the input attribute (NODE_TYPE = 10), and nodes for each value of the attribute (NODE_TYPE = 11). 노드 캡션에는 특성 이름과 특성 값이 모두 표시되므로 노드 이름 대신 노드 캡션이 노드를 식별하는 데 사용됩니다.The node caption is used to identify the node, rather than the node name, because the caption shows both the attribute name and attribute value.

NODE_TYPENODE_TYPE NODE_CAPTIONNODE_CAPTION NODE_PROBABILITYNODE_PROBABILITY NODE_SUPPORTNODE_SUPPORT MSOLAP_NODE_SCOREMSOLAP_NODE_SCORE NODE_TYPENODE_TYPE
1010 Bike Buyer -> RegionBike Buyer -> Region 11 1748417484 84.5155587584.51555875 1010
1111 Bike Buyer -> Region = MissingBike Buyer -> Region = Missing 00 00 00 1111
1111 Bike Buyer -> Region = North AmericaBike Buyer -> Region = North America 0.5082361020.508236102 88868886 00 1111
1111 Bike Buyer -> Region = PacificBike Buyer -> Region = Pacific 0.1938915580.193891558 33903390 00 1111
1111 Bike Buyer -> Region = EuropeBike Buyer -> Region = Europe 0.297872340.29787234 52085208 00 1111

노드에 저장된 노드 확률 점수 및 노드 지지도 값 등의 일부 열은 한계 통계 노드에서 가져올 수 있는 것과 동일합니다.Some of the columns stored in the nodes are the same that you can get from the marginal statistics nodes, such as the node probability score and the node support values. 그러나 MSOLAP_NODE_SCORE는 입력 특성 노드에 대해서만 제공되는 특수 값이며 모델에서 이 특성의 상대적 중요도를 나타냅니다.However, the MSOLAP_NODE_SCORE is a special value provided only for the input attribute nodes, and indicates the relative importance of this attribute in the model. 뷰어의 종속성 네트워크 창에서도 동일한 정보를 볼 수 있지만 뷰어에는 점수가 표시되지 않습니다.You can see much the same information in the Dependency Network pane of the viewer; however, the viewer does not provide scores.

다음 쿼리는 모델에 있는 모든 특성의 중요도 점수를 반환합니다.The following query returns the importance scores of all attributes in the model:

SELECT NODE_CAPTION, MSOLAP_NODE_SCORE  
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 10  
ORDER BY MSOLAP_NODE_SCORE DESC  

예제 결과:Sample results:

NODE_CAPTIONNODE_CAPTION MSOLAP_NODE_SCOREMSOLAP_NODE_SCORE
Bike Buyer -> Total ChildrenBike Buyer -> Total Children 181.3654836181.3654836
Bike Buyer -> Commute DistanceBike Buyer -> Commute Distance 179.8419482179.8419482
Bike Buyer -> English EducationBike Buyer -> English Education 156.9841928156.9841928
Bike Buyer -> Number Children At HomeBike Buyer -> Number Children At Home 111.8122599111.8122599
Bike Buyer -> RegionBike Buyer -> Region 84.5155587584.51555875
Bike Buyer -> Marital StatusBike Buyer -> Marital Status 23.1329735423.13297354
Bike Buyer -> English OccupationBike Buyer -> English Occupation 2.8320691912.832069191

Microsoft 일반 콘텐츠 트리 뷰어에서 모델 콘텐츠를 찾아보면 주목할 만한 통계를 보다 잘 확인할 수 있습니다.By browsing the model content in the Microsoft Generic Content Tree Viewer, you will get a better idea of what statistics might be interesting. 여기에서는 몇 개의 간단한 예를 보여 주지만 여러 쿼리를 실행하거나 결과를 저장하고 클라이언트에서 처리해야 하는 경우는 보다 많이 있습니다.Some simple examples were demonstrated here; more often you may need to execute multiple queries or store the results and process them on the client.

예제 쿼리 4: 시스템 저장 프로시저 사용Sample Query 4: Using System Stored Procedures

사용자가 직접 내용 쿼리를 작성할 수 있을 뿐 아니라 몇 가지 Analysis Services 시스템 저장 프로시저를 사용하여 결과를 탐색할 수도 있습니다.In addition to writing your own content queries, you can use some Analysis Services system stored procedures to explore the results. 시스템 저장 프로시저를 사용하려면 저장 프로시저 이름 앞에 CALL 키워드를 붙입니다.To use a system stored procedure, prefix the stored procedure name with the CALL keyword:

CALL GetPredictableAttributes ('TM_NaiveBayes')  

일부 결과:Partial results:

ATTRIBUTE_NAMEATTRIBUTE_NAME NODE_UNIQUE_NAMENODE_UNIQUE_NAME
Bike BuyerBike Buyer 100000001100000001

참고

이러한 시스템 저장 프로시저는 Analysis Services 서버와 클라이언트 간의 내부 통신을 위한 것으로서, 마이닝 모델을 개발하고 테스트할 때 편의를 위해서만 사용해야 합니다.These system stored procedures are for internal communication between the Analysis Services server and the client and should only be used for convenience when developing and testing mining models. 프로덕션 시스템에 대한 쿼리를 만들 때는 항상 DMX를 사용하여 사용자가 직접 쿼리를 작성해야 합니다.When you create queries for a production system, you should always write your own queries by using DMX.

Analysis Services 시스템 저장 프로시저에 대한 자세한 내용은 데이터 마이닝 저장 프로시저(Analysis Services - 데이터 마이닝)를 참조하세요.For more information about Analysis Services system stored procedures, see Data Mining Stored Procedures (Analysis Services - Data Mining).

Naive Bayes 모델을 사용하여 예측 만들기Using a Naive Bayes Model to Make Predictions

Microsoft Naive Bayes 알고리즘은 일반적으로 예측에 사용되는 경우보다 입력 및 예측 가능한 특성 간의 관계를 탐색하는 데 사용되는 경우가 더 많습니다.The Microsoft Naive Bayes algorithm is typically used less for prediction than it is for exploration of relationships among the input and predictable attributes. 그러나 이 모델에서는 예측 및 연결 모두에 대해 예측 함수를 사용할 수 있습니다.However, the model supports the use of prediction functions for both prediction and association.

예제 쿼리 5: 단일 쿼리를 사용하여 결과 예측Sample Query 5: Predicting Outcomes using a Singleton Query

다음 쿼리에서는 단일 쿼리를 사용하여 새 값을 제공하고 모델을 기반으로 해당 특성을 갖는 고객이 자전거를 구입할 가능성이 있는지를 예측합니다.The following query uses a singleton query to provide a new value and predict, based on the model, whether a customer with these characteristics is likely to buy a bike. 회귀 모델에서 단일 쿼리를 만드는 가장 쉬운 방법은 단일 쿼리 입력 대화 상자를 사용하는 것입니다.The easiest way to create a singleton query on a regression model is by using the Singleton Query Input dialog box. 예를 들어 TM_NaiveBayes 모델을 선택하고 단일 쿼리를 선택한 다음 드롭다운 목록에서 [Commute Distance]Gender의 값을 선택하여 다음과 같은 DMX 쿼리를 작성할 수 있습니다.For example, you can build the following DMX query by selecting the TM_NaiveBayes model, choosing Singleton Query, and selecting values from the dropdown lists for [Commute Distance] and Gender.

SELECT  
  Predict([TM_NaiveBayes].[Bike Buyer])  
FROM  
  [TM_NaiveBayes]  
NATURAL PREDICTION JOIN  
(SELECT '5-10 Miles' AS [Commute Distance],  
  'F' AS [Gender]) AS t  

예제 결과:Example results:

Expression
00

이 예측 함수는 가장 가능성이 높은 값(이 경우 0)을 반환합니다. 이 값은 이 유형의 고객이 자전거를 구입할 가능성이 없다는 것을 의미합니다.The prediction function returns the most likely value, in this case, 0, which means this type of customer is unlikely to purchase a bike.

예제 쿼리 6: 확률 및 지지도 값과 함께 예측 가져오기Sample Query 6: Getting Predictions with Probability and Support Values

결과를 예측하는 것 외에도 예측의 정확도를 알고 싶은 경우가 있습니다.In addition to predicting an outcome, you often want to know how strong the prediction is. 다음 쿼리에서는 앞의 예와 동일한 단일 쿼리를 사용하되 예측 함수 PredictHistogram(DMX)을 추가하여 해당 예측을 지원하는 통계가 들어 있는 중첩 테이블을 반환합니다.The following query uses the same singleton query as the previous example, but adds the prediction function, PredictHistogram (DMX), to return a nested table that contains statistics in support of the prediction.

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  

예제 결과:Example results:

Bike BuyerBike Buyer $SUPPORT$SUPPORT $PROBABILITY$PROBABILITY $ADJUSTEDPROBABILITY$ADJUSTEDPROBABILITY $VARIANCE$VARIANCE $STDEV$STDEV
00 10161.571410161.5714 0.5811925990.581192599 0.0105309810.010530981 00 00
11 7321.4287687321.428768 0.4187502150.418750215 0.0089456840.008945684 00 00
0.9998284440.999828444 5.72E-055.72E-05 5.72E-055.72E-05 00 00

표의 마지막 행에서는 누락 값의 지지도 및 확률에 대한 조정을 보여 줍니다.The final row in the table shows the adjustments to support and probability for the missing value. 분산 및 표준 편차 값은 항상 0이지만 Naive Bayes 모델에서는 연속 값을 모델링할 수 없습니다.Variance and standard deviation values are always 0, because Naive Bayes models cannot model continuous values.

예제 쿼리 7: 연결 예측Sample Query 7: Predicting Associations

마이닝 구조에 예측 가능한 특성을 키로 사용하는 중첩 테이블이 들어 있는 경우 연결 분석에 Microsoft Naive Bayes 알고리즘을 사용할 수 있습니다.The Microsoft Naive Bayes algorithm can be used for association analysis, if the mining structure contains a nested table with the predictable attribute as the key. 예를 들어 데이터 마이닝 자습서의 3단원: 시장 바구니 시나리오 구축(중급 데이터 마이닝 자습서)에서 만든 마이닝 구조를 사용하여 Naive Bayes 모델을 작성할 수 있습니다.For example, you could build a Naive Bayes model by using the mining structure created in Lesson 3: Building a Market Basket Scenario (Intermediate Data Mining Tutorial) of the data mining tutorial. 이 예에 사용된 모델을 수정하여 사례 테이블에 수입 및 고객 지역에 대한 정보를 추가했습니다.The model used in this example was modified to add information about income and customer region in the case table.

다음 쿼리 예에서는 'Road Tire Tube'제품의 구매와 관련된 제품을 예측하는 단일 쿼리를 보여 줍니다.The following query example shows a singleton query that predicts products that are related to purchases of the product, 'Road Tire Tube'. 이 정보를 사용하여 특정 유형의 고객에게 제품을 추천할 수 있습니다.You might use this information to recommend products to a specific type of customer.

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  

일부 결과:Partial results:

ModelModel
Women's Mountain ShortsWomen's Mountain Shorts
Water BottleWater Bottle
Touring-3000Touring-3000
Touring-2000Touring-2000
Touring-1000Touring-1000

함수 목록Function List

모든 MicrosoftMicrosoft 알고리즘은 공통 함수 집합을 지원합니다.All MicrosoftMicrosoft algorithms support a common set of functions. 그러나 MicrosoftMicrosoft Naive Bayes 알고리즘은 다음 표에 나열된 추가 함수도 지원합니다.However, the MicrosoftMicrosoft Naive Bayes algorithm supports the additional functions that are listed in the following table.

예측 함수Prediction Function 사용법Usage
IsDescendant(DMX)IsDescendant (DMX) 한 노드가 모델에서 다른 노드의 자식인지 여부를 확인합니다.Determines whether one node is a child of another node in the model.
예측(DMX)Predict (DMX) 지정한 열에 대한 예측 값을 반환합니다.Returns a predicted value, or set of values, for a specified column.
PredictAdjustedProbability(DMX)PredictAdjustedProbability (DMX) 가중치 확률을 반환합니다.Returns the weighted probability.
PredictAssociation(DMX)PredictAssociation (DMX) 연관 데이터 집합에서의 멤버 자격을 예측합니다.Predicts membership in an associative dataset.
PredictNodeId(DMX)PredictNodeId (DMX) 각 사례에 대한 Node_ID를 반환합니다.Returns the Node_ID for each case.
PredictProbability(DMX)PredictProbability (DMX) 예측 값의 확률을 반환합니다.Returns probability for the predicted value.
PredictSupport(DMX)PredictSupport (DMX) 지정한 상태에 대한 지원 값을 반환합니다.Returns the support value for a specified state.

특정 함수의 구문을 보려면 DMX(Data Mining Extensions) 함수 참조를 참조하세요.To see the syntax of specific functions, see Data Mining Extensions (DMX) Function Reference.

관련 항목:See Also

Microsoft Naive Bayes 알고리즘 기술 참조 Microsoft Naive Bayes Algorithm Technical Reference
Microsoft Naive Bayes Algorithm Microsoft Naive Bayes Algorithm
Naive Bayes 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)Mining Model Content for Naive Bayes Models (Analysis Services - Data Mining)