클러스터링 모델 쿼리 예제Clustering Model Query Examples

데이터 마이닝 모델에 대한 쿼리를 만들 때 모델에 대한 메타데이터를 검색하거나, 분석 시 발견된 패턴에 대한 세부 정보를 제공하는 내용 쿼리를 만들 수 있습니다.When you create a query against a data mining model, you can retrieve metadata about the model, or create a content query that provides details about the patterns discovered in analysis. 또는 모델의 패턴을 사용하여 새 데이터에 대한 예측을 만드는 예측 쿼리를 작성할 수 있습니다.Alternatively, you can create a prediction query, which uses the patterns in the model to make predictions for new data. 각 유형의 쿼리는 서로 다른 정보를 제공합니다.Each type of query will provide different information. 예를 들어 내용 쿼리는 발견된 클러스터에 대한 추가 세부 정보를 제공하지만 예측 쿼리는 새 데이터 요소가 속해 있을 가능성이 가장 높은 클러스터를 알려 줍니다.For example, a content query might provide additional details about the clusters that were found, whereas a prediction query might tell you in which cluster a new data point is most likely to belong.

이 섹션에서는 MicrosoftMicrosoft 클러스터링 알고리즘을 기반으로 하는 모델에 대해 쿼리를 만드는 방법을 설명합니다.This section explains how to create queries for models that are based on the MicrosoftMicrosoft Clustering algorithm.

내용 쿼리Content Queries

DMX를 사용하여 모델 메타데이터 가져오기Getting Model Metadata by Using DMX

스키마 행 집합에서 모델 메타데이터 검색Retrieving Model Metadata from the Schema Rowset

클러스터 또는 클러스터 목록 반환Returning a Cluster or a List of Clusters

클러스터에 대한 특성 반환Returning Attributes for a Cluster

시스템 저장 프로시저를 사용하여 클러스터 프로필 반환Returning a Cluster Profile Using System Stored Procedures

클러스터에 대한 판별 요소 찾기Finding Discriminating Factors for a Cluster

클러스터에 속한 사례 반환Returning Cases that Belong to a Cluster

예측 쿼리Prediction Queries

클러스터링 모델에서 결과 예측Predicting Outcomes from a Clustering Model

클러스터 멤버 자격 결정Determining Cluster Membership

확률과 거리가 포함된 가능한 모든 클러스터 반환Returning All Possible Clusters with Probability and Distance

모델 정보 찾기 Finding Information about the Model

모든 마이닝 모델은 마이닝 모델 스키마 행 집합이라고 하는 표준화된 스키마에 따라, 알고리즘을 통해 학습한 내용을 표시합니다.All mining models expose the content learned by the algorithm according to a standardized schema, the mining model schema rowset. 마이닝 모델 스키마 행 집합에 대한 쿼리는 DMX(Data Mining Extensions) 문을 사용하여 만들 수 있습니다.You can create queries against the mining model schema rowset by using Data Mining Extension (DMX) statements. SQL Server 2017SQL Server 2017에서는 스키마 행 집합을 직접 시스템 테이블로 쿼리할 수도 있습니다.In SQL Server 2017SQL Server 2017, you can also query the schema rowsets directly as system tables.

맨 위로 이동Return to Top

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

다음 쿼리는 기본 데이터 마이닝 자습서에서 만든 클러스터링 모델 TM_Clustering에 대한 기본 메타데이터를 반환합니다.The following query returns basic metadata about the clustering model, TM_Clustering, that you created in the Basic Data Mining Tutorial. 클러스터링 모델의 부모 노드에서 사용할 수 있는 메타데이터에는 모델 이름, 모델이 저장된 데이터베이스, 모델의 자식 노드 수 등이 있습니다.The metadata available in the parent node of a clustering model includes the name of the model, the database where the model is stored, and the number of child nodes in the model. 이 쿼리는 DMX 내용 쿼리를 사용하여 모델의 부모 노드에서 메타데이터를 검색합니다.This query uses a DMX content query to retrieve the metadata from the parent node of the model:

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION  
FROM TM_Clustering.CONTENT  
WHERE NODE_TYPE = 1  

참고

CHILDREN_CARDINALITY 열의 이름을 대괄호로 묶어 동일한 이름의 MDX(Multidimensional Expressions) 예약 키워드와 구분해야 합니다.You must enclose the name of the column, CHILDREN_CARDINALITY, in brackets to distinguish it from the Multidimensional Expressions (MDX) reserved keyword of the same name.

예제 결과:Example results:

MODEL_CATALOGMODEL_CATALOG TM_ClusteringTM_Clustering
MODEL_NAMEMODEL_NAME Adventure Works DWAdventure Works DW
NODE_CAPTIONNODE_CAPTION Cluster ModelCluster Model
NODE_SUPPORTNODE_SUPPORT 1293912939
CHILDREN_CARDINALITYCHILDREN_CARDINALITY 1010
NODE_DESCRIPTIONNODE_DESCRIPTION 모두All

클러스터링 모델에서 이러한 열의 의미에 대한 정의는 클러스터링 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)를 참조하세요.For a definition of what these columns mean in a clustering model, see Mining Model Content for Clustering Models (Analysis Services - Data Mining).

맨 위로 이동Return to Top

예제 쿼리 2: 스키마 행 집합에서 모델 메타데이터 검색 Sample Query 2: Retrieving Model Metadata from the Schema Rowset

데이터 마이닝 스키마 행 집합을 쿼리하면 DMX 내용 쿼리에 반환되는 것과 동일한 정보를 찾을 수 있는데,By querying the data mining schema rowset, you can find the same information that is returned in a DMX content query. 스키마 행 집합은 몇 개의 열을 추가로 제공합니다.However, the schema rowset provides some additional columns. 여기에는 모델을 만들 때 사용했던 매개 변수, 모델이 마지막으로 처리된 날짜와 시간, 모델 소유자 등이 있습니다.These include the parameters that were used when the model was created, the date and time that the model was last processed, and the owner of the model.

다음 예에서는 모델을 만든 날짜, 수정한 날짜 및 마지막으로 처리한 날짜와 함께 모델을 작성하는 데 사용한 클러스터링 매개 변수와 학습 집합의 크기를 반환합니다.The following example returns the date the model was created, modified, and last processed, together with the clustering parameters that were used to build the model, and the size of the training set. 이 정보는 모델을 문서화하거나 기존 모델을 만들 때 사용했던 클러스터링 옵션을 확인하는 데 유용할 수 있습니다.This information can be useful for documenting the model, or for determining which of the clustering options were used to create an existing model.

SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_Clustering'  

예제 결과:Example results:

MODEL_NAMEMODEL_NAME TM_ClusteringTM_Clustering
DATE_CREATEDDATE_CREATED 10/12/2007 7:42:51 PM10/12/2007 7:42:51 PM
LAST_PROCESSEDLAST_PROCESSED 10/12/2007 8:09:54 PM10/12/2007 8:09:54 PM
PREDICTION_ENTITYPREDICTION_ENTITY Bike BuyerBike Buyer
MINING_PARAMETERSMINING_PARAMETERS CLUSTER_COUNT=10,CLUSTER_COUNT=10,

CLUSTER_SEED=0,CLUSTER_SEED=0,

CLUSTERING_METHOD=1,CLUSTERING_METHOD=1,

MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_INPUT_ATTRIBUTES=255,

MAXIMUM_STATES=100,MAXIMUM_STATES=100,

MINIMUM_SUPPORT=1,MINIMUM_SUPPORT=1,

MODELLING_CARDINALITY=10,MODELLING_CARDINALITY=10,

SAMPLE_SIZE=50000,SAMPLE_SIZE=50000,

STOPPING_TOLERANCE=10STOPPING_TOLERANCE=10

맨 위로 이동Return to Top

클러스터 정보 찾기Finding Information about Clusters

클러스터링 모델에 대한 가장 유용한 내용 쿼리는 일반적으로 클러스터 뷰어에서 찾아볼 수 있는 것과 동일한 유형의 정보를 반환합니다.The most useful content queries on clustering models generally return the same type of information that you can browse by using the Cluster Viewer. 여기에는 클러스터 프로필, 클러스터 특징 및 클러스터 판별 등이 포함됩니다.This includes cluster profiles, cluster characteristics, and cluster discrimination. 이 섹션에서는 이러한 정보를 검색하는 예제 쿼리를 제공합니다.This section provides examples of queries that retrieve this information.

예제 쿼리 3: 클러스터 또는 클러스터 목록 반환 Sample Query 3: Returning a Cluster or List of Clusters

모든 클러스터의 노드 유형이 5이므로 모델 콘텐츠에서 해당 유형의 노드만 쿼리하면 클러스터 목록을 쉽게 검색할 수 있습니다.Because all clusters have a node type of 5, you can easily retrieve a list of the clusters by querying the model content for only the nodes of that type. 이 예에서와 같이 확률 또는 지지도로 반환되는 노드를 필터링할 수도 있습니다.You can also filter the nodes that are returned by probability or by support, as shown in this example.

SELECT NODE_NAME, NODE_CAPTION ,NODE_SUPPORT, NODE_DESCRIPTION  
FROM TM_Clustering.CONTENT  
WHERE NODE_TYPE = 5 AND NODE_SUPPORT > 1000  

예제 결과:Example results:

NODE_NAMENODE_NAME 002002
NODE_CAPTIONNODE_CAPTION 클러스터 2Cluster 2
NODE_SUPPORTNODE_SUPPORT 16491649
NODE_DESCRIPTIONNODE_DESCRIPTION English Education=Graduate Degree , 32 <=Age <=48 , Number Cars Owned=0 , 35964.0771121808 <=Yearly Income <=97407.7163393957 , English Occupation=Professional , Commute Distance=2-5 Miles , Region=North America , Bike Buyer=1 , Number Children At Home=0 , Number Cars Owned=1 , Commute Distance=0-1 Miles , English Education=Bachelors , Total Children=1 , Number Children At Home=2 , English Occupation=Skilled Manual , Marital Status=S , Total Children=0 , House Owner Flag=0 , Gender=F , Total Children=2 , Region=PacificEnglish Education=Graduate Degree , 32 <=Age <=48 , Number Cars Owned=0 , 35964.0771121808 <=Yearly Income <=97407.7163393957 , English Occupation=Professional , Commute Distance=2-5 Miles , Region=North America , Bike Buyer=1 , Number Children At Home=0 , Number Cars Owned=1 , Commute Distance=0-1 Miles , English Education=Bachelors , Total Children=1 , Number Children At Home=2 , English Occupation=Skilled Manual , Marital Status=S , Total Children=0 , House Owner Flag=0 , Gender=F , Total Children=2 , Region=Pacific

클러스터를 정의하는 특성은 데이터 마이닝 스키마 행 집합의 두 열에서 찾을 수 있습니다.The attributes that define the cluster can be found in two columns in the data mining schema rowset.

  • NODE_DESCRIPTION 열에는 쉼표로 구분된 특성 목록이 들어 있습니다.The NODE_DESCRIPTION column contains a comma-separated list of attributes. 특성 목록이 표시용으로 축약될 수도 있습니다.Note that the list of attributes might be abbreviated for display purposes.

  • NODE_DISTRIBUTION 열의 중첩 테이블에는 클러스터에 대한 전체 특성 목록이 들어 있습니다.The nested table in the NODE_DISTRIBUTION column contains the full list of attributes for the cluster. 클라이언트에서 계층적 행 집합을 지원하지 않는 경우 SELECT 열 목록 앞에 FLATTEN 키워드를 추가하여 중첩 테이블을 반환할 수 있습니다.If your client does not support hierarchical rowsets, you can return the nested table by adding the FLATTENED keyword before the SELECT column list. FLATTENED 키워드 사용에 대한 자세한 내용은 SELECT FROM <model>.CONTENT (DMX)를 참조하세요.For more information about the use of the FLATTENED keyword, see SELECT FROM <model>.CONTENT (DMX).

    맨 위로 이동Return to Top

예제 쿼리 4: 클러스터에 대한 특성 반환 Sample Query 4: Returning Attributes for a Cluster

클러스터 뷰어 에는 각 클러스터의 특성과 특성 값을 나열하는 프로필이 표시됩니다.For every cluster, the Cluster Viewer displays a profile that lists the attributes and their values. 또한 모델에 포함된 사례의 전체 모집단에 대한 값 분포를 보여 주는 히스토그램도 표시됩니다.The viewer also displays a histogram that shows the distribution of values for the whole population of cases in the model. 뷰어에서 모델을 검색하는 경우 마이닝 범례에서 히스토그램을 손쉽게 복사한 다음 Excel 또는 Word 문서에 붙여넣을 수 있습니다.If you are browsing the model in the viewer, you can easily copy the histogram from the Mining Legend and then paste it to Excel or a Word document. 또한 뷰어의 클러스터 특징 창에서 다른 클러스터의 특성을 그래픽으로 비교할 수도 있습니다.You can also use the Cluster Characteristics pane of the viewer to graphically compare the attributes of different clusters.

그러나 한 번에 둘 이상의 클러스터에 대한 값을 구해야 하는 경우 모델을 쿼리하는 것이 더 간단합니다.However, if you must obtain values for more than one cluster at a time, it is easier to query the model. 예를 들어 모델을 검색할 때 Number Cars Owned특성과 관련하여 상위 두 클러스터가 서로 다를 경우For example, when you browse the model, you might notice that the top two clusters differ with regard to one attribute, Number Cars Owned. 각 클러스터에 대한 값을 추출하려고 합니다.Therefore, you want to extract the values for each cluster.

SELECT TOP 2 NODE_NAME,   
(SELECT ATTRIBUTE_VALUE, [PROBABILITY] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Number Cars Owned')  
AS t  
FROM [TM_Clustering].CONTENT  
WHERE NODE_TYPE = 5  

첫 번째 코드 줄에는 상위 두 클러스터만 사용하도록 지정되어 있습니다.The first line of the code specifies that you want only the top two clusters.

참고

기본적으로 클러스터는 지지도 순으로 순서가 지정됩니다.By default, the clusters are ordered by support. 따라서 NODE_SUPPORT 열은 생략할 수 있습니다.Therefore, the NODE_SUPPORT column can be omitted.

두 번째 코드 줄에는 중첩 테이블 열에서 특정 열만 반환하는 하위 SELECT 문이 추가되어 있습니다.The second line of the code adds a sub-select statement that returns only certain columns from the nested table column. 또한 중첩 테이블의 행을 대상 특성 Number Cars Owned와 관련된 행으로 제한합니다.Furthermore, it restricts the rows from the nested table to those related to the target attribute, Number Cars Owned. 간단하게 표시하기 위해 중첩 테이블은 별칭으로 지정되어 있습니다.To simplify the display, the nested table is aliased.

참고

중첩 테이블 열 PROBABILITY는 MDX 예약어의 이름이기도 하므로 대괄호로 묶어야 합니다.The nested table column, PROBABILITY, must be enclosed in brackets because it is also the name of a reserved MDX keyword.

예제 결과:Example results:

NODE_NAMENODE_NAME T.ATTRIBUTE_VALUET.ATTRIBUTE_VALUE T.PROBABILITYT.PROBABILITY
001001 22 0.8292077540.829207754
001001 1.1 0.1093541560.109354156
001001 33 0.0344815520.034481552
001001 44 0.0135033020.013503302
001001 00 0.0134532360.013453236
001001 MissingMissing 00
002002 00 0.5769800230.576980023
002002 1.1 0.4066239390.406623939
002002 22 0.0163800820.016380082
002002 33 1.60E-051.60E-05
002002 44 00
002002 MissingMissing 00

맨 위로 이동Return to Top

예제 쿼리 5: 시스템 저장 프로시저를 사용하여 클러스터 프로필 반환 Sample Query 5: Return a Cluster Profile Using System Stored Procedures

DMX를 사용하여 직접 쿼리를 작성하는 것보다는 클러스터 작업을 위해 Analysis ServicesAnalysis Services 에서 사용하는 시스템 저장 프로시저를 호출하는 것이 더 간단할 수 있습니다.As a shortcut, rather than writing your own queries by using DMX, you can also call the system stored procedures that Analysis ServicesAnalysis Services uses to work with clusters. 다음 예에서는 내부 저장 프로시저를 사용하여 ID가 002인 클러스터에 대한 프로필을 반환하는 방법을 보여 줍니다.The following example illustrates how to use the internal stored procedures to return the profile for a cluster with the ID of 002.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('TM_Clustering", '002',0.0005  

마찬가지로 다음 예에서와 같이 시스템 저장 프로시저를 사용하여 특정 클러스터의 특징을 반환할 수 있습니다.Similarly, you can use a system stored procedure to return the characteristics of a specific cluster, as shown in the following example:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('TM_Clustering", '009',0.0005  

예제 결과:Example results:

특성Attributes Values 빈도Frequency 지원Support
Number Children at HomeNumber Children at Home 00 0.9999998290767980.999999829076798 899899
RegionRegion North AmericaNorth America 0.9998528752415080.999852875241508 899899
Total ChildrenTotal Children 00 0.9938609585723230.993860958572323 893893

참고

데이터 마이닝 시스템 저장 프로시저는 내부적으로만 사용할 수 있으며 필요에 따라 이 프로시저를 변경할 수 있는 권한은 MicrosoftMicrosoft 에 있습니다.The data mining system stored procedures are for internal use and MicrosoftMicrosoft reserves the right to change them as needed. 따라서 프로덕션 환경에서는 DMX, AMO 또는 XMLA를 사용하여 쿼리를 만드는 것이 좋습니다.For production use, we recommend that you create queries by using DMX, AMO, or XMLA.

맨 위로 이동Return to Top

예제 쿼리 6: 클러스터에 대한 판별 요소 찾기 Sample Query 6: Find Discriminating Factors for a Cluster

클러스터 뷰어클러스터 판별 탭에서는 손쉽게 한 클러스터와 다른 클러스터를 비교하거나, 한 클러스터와 나머지 모든 사례(나머지 클러스터)를 비교할 수 있습니다.The Cluster Discrimination tab of the Cluster Viewer enables you to easily compare a cluster with another cluster, or compare a cluster with all remaining cases (the complement of the cluster).

그러나 이러한 정보를 반환하는 쿼리를 만드는 것이 복잡할 수 있으며 임시 결과를 저장하고 둘 이상의 쿼리 결과를 비교하기 위해서는 클라이언트에서 약간의 추가 처리가 필요할 수 있습니다.However, creating queries to return this information can be complex, and you might need some additional processing on the client to store the temporary results and compare the results of two or more queries. 이 경우 간단하게 시스템 저장 프로시저를 사용할 수 있습니다.As a shortcut, you can use the system stored procedures.

다음 쿼리는 노드 ID가 각각 009와 007인 두 클러스터 간의 주요 판별 요소를 나타내는 단일 테이블을 반환합니다.The following query returns a single table that indicates the primary discriminating factors between the two clusters that have the node IDs of 009 and 007. 양수 값을 갖는 특성은 클러스터 009를 선호하며 음수 값을 갖는 특성은 클러스터 007을 선호합니다.Attributes with positive values favor cluster 009, whereas attributes with negative values favor cluster 007.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','007',0.0005,true)  

예제 결과:Example results:

특성Attributes Values 점수Score
RegionRegion North AmericaNorth America 100100
English OccupationEnglish Occupation Skilled ManualSkilled Manual 94.900380389865494.9003803898654
RegionRegion EuropeEurope -72.5041051379789-72.5041051379789
English OccupationEnglish Occupation 수동Manual -69.6503163202722-69.6503163202722

첫 번째 드롭다운 목록에서 클러스터 9를 선택하고 두 번째 드롭다운 목록에서 클러스터 7을 선택한 경우 이는 클러스터 판별 뷰어의 차트에 표시되는 정보와 동일합니다.This is the same information that is presented in the chart of the Cluster Discrimination viewer if you select Cluster 9 from the first drop-down list and Cluster 7 from the second drop-down list. 클러스터 9를 나머지 클러스터와 비교하려면 다음 예에서와 같이 두 번째 매개 변수에 빈 문자열을 사용하십시오.To compare cluster 9 with its complement, you use the empty string in the second parameter, as shown in the following example:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)  

참고

데이터 마이닝 시스템 저장 프로시저는 내부적으로만 사용할 수 있으며 필요에 따라 이 프로시저를 변경할 수 있는 권한은 MicrosoftMicrosoft 에 있습니다.The data mining system stored procedures are for internal use and MicrosoftMicrosoft reserves the right to change them as needed. 따라서 프로덕션 환경에서는 DMX, AMO 또는 XMLA를 사용하여 쿼리를 만드는 것이 좋습니다.For production use, we recommend that you create queries by using DMX, AMO, or XMLA.

맨 위로 이동Return to Top

예제 쿼리 7: 클러스터에 속한 사례 반환 Sample Query 7: Returning Cases that Belong to a Cluster

마이닝 모델에 드릴스루를 사용하도록 설정한 경우 모델에 사용된 사례에 대한 세부 정보를 반환하는 쿼리를 만들 수 있습니다.If drillthrough has been enabled on the mining model, you can create queries that return detailed information about the cases used in the model. 또한 마이닝 구조에도 드릴스루를 사용하도록 설정한 경우 StructureColumn(DMX) 함수를 사용하여 기본 구조의 열을 포함할 수 있습니다.Moreover, if drillthrough has been enabled on the mining structure, you can include columns from the underlying structure by using the StructureColumn (DMX) function.

다음 예에서는 모델에 사용된 Age 및 Region 열과 모델에 사용되지 않은 First Name 열을 추가로 반환합니다.The following example returns two columns that were used in the model, Age and Region, and one more column, First Name, that was not used in the model. 이 쿼리는 Cluster 1로 분류된 사례만 반환합니다.The query returns only cases that were classified into Cluster 1.

SELECT [Age], [Region], StructureColumn('First Name')  
FROM [TM_Clustering].CASES  
WHERE IsInNode('001')  

클러스터에 속한 사례를 반환하려면 클러스터 ID를 알아야 합니다.To return the cases that belong to a cluster, you must know the ID of the cluster. 클러스터 ID는 뷰어 중 하나에서 모델을 탐색하여 확인할 수 있습니다.You can obtain the ID of the cluster by browsing the model in one of the viewers. 또는 보다 쉬운 참조를 위해 클러스터의 이름을 바꾼 다음 ID 번호 대신 바꾼 이름을 사용할 수 있습니다.Or, you can rename a cluster for easier reference, after which you could use the name in place of an ID number. 그러나 모델을 다시 처리하면 클러스터에 할당된 이름이 손실됩니다.However, know that the names that you assign to a cluster will be lost if the model is reprocessed.

맨 위로 이동Return to Top

모델을 사용하여 예측 수행Making Predictions using the Model

데이터를 설명하고 이해하는 데 클러스터링이 일반적으로 사용되지만 MicrosoftMicrosoft 구현을 사용해도 클러스터 멤버 자격에 대한 예측을 만들고 예측과 연관된 확률을 반환할 수 있습니다.Although clustering is typically used for describing and understanding data, the MicrosoftMicrosoft implementation also lets you make prediction about cluster membership, and return probabilities associated with the prediction. 이 섹션에서는 클러스터링 모델에 대한 예측 쿼리를 만드는 방법에 대한 예를 제공합니다.This section provides examples of how to create prediction queries on clustering models. 테이블 형식 데이터 원본을 지정하여 여러 사례에 대한 예측을 만들거나 단일 쿼리를 만들어 한 번에 새 값을 제공할 수 있습니다.You can make predictions for multiple cases, by specifying a tabular data source, or you can provide new values on at a time by creating a singleton query. 의미를 명확하게 전달하기 위해 이 섹션의 예는 모두 단일 쿼리입니다.For clarity the examples in this section are all singleton queries.

DMX를 사용하여 예측 쿼리를 만드는 방법은 데이터 마이닝 쿼리 도구를 참조하세요.For more information about how to create prediction queries using DMX, see Data Mining Query Tools.

맨 위로 이동Return to Top

예제 쿼리 8: 클러스터링 모델에서 결과 예측 Sample Query 8: Predicting Outcomes from a Clustering Model

만든 클러스터링 모델에 예측 가능한 특성이 포함되어 있는 경우 이 모델을 사용하여 결과에 대한 예측을 만들 수 있습니다.If the clustering model you create contains a predictable attribute, you can use the model to make predictions about outcomes. 그러나 예측 가능한 열을 Predict 로 설정했는지 또는 PredictOnly로 설정했는지에 따라 모델이 예측 가능한 특성을 다르게 처리합니다.However, the model handles the predictable attribute differently depending on whether you set the predictable column to Predict or PredictOnly. 열 사용법을 Predict로 설정하면 해당 특성 값이 클러스터링 모델에 추가되고 완성된 모델에 특성으로 표시됩니다.If you set the usage of the column to Predict, the values for that attribute are added to the clustering model and appear as attributes in the finished model. 그러나 열 사용법을 PredictOnly로 설정하면 해당 값이 클러스터를 만드는 데 사용되지 않습니다.However, if you set the usage of the column to PredictOnly, the values are not used to create clusters. 대신 모델이 완성된 후 클러스터링 알고리즘이 각 사례가 속해 있는 클러스터를 기반으로 PredictOnly 특성에 대한 새 값을 생성합니다.Instead, after the mode is completed, the clustering algorithm creates new values for the PredictOnly attribute based on the clusters to which each case belongs.

다음 쿼리는 모델에 새로운 단일 사례를 제공하는데, 사례에 대한 유일한 정보는 연령과 성별입니다.The following query provides a single new case to the model, where the only information about the case is the age and gender. SELECT 문에 관심 있는 예측 가능한 특성/값 쌍을 지정하고 PredictProbability(DMX) 함수는 이러한 특성이 포함된 사례의 대상 결과 확률을 알려 줍니다.The SELECT statement specifies the predictable attribute/value pair that you are interested in, and the PredictProbability (DMX) function tells you the probability that a case with those attributes will have the targeted outcome.

SELECT  
  [TM_Clustering].[Bike Buyer], PredictProbability([Bike Buyer],1)  
FROM  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender]) AS t  

열 사용법이 Predict로 설정된 경우의 예제 결과는 다음과 같습니다.Example of results when usage is set to Predict:

Bike BuyerBike Buyer Expression
1.1 0.5929247357403380.592924735740338

열 사용법이 PredictOnly 로 설정되어 있고 모델이 다시 처리된 경우의 예제 결과는 다음과 같습니다.Example of results when the usage is set to PredictOnly and the model is reprocessed:

Bike BuyerBike Buyer Expression
1.1 0.558435440031020.55843544003102

이 예에서 모델의 차이는 그다지 중요하지 않습니다.In this example, the difference in the model is not significant. 그러나 실제 값 분포와 모델에서 예측하는 분포의 차이를 알아내는 것이 때로는 중요할 수 있습니다.However, sometimes it can be important to detect differences between the actual distribution of values and what the model predicts. PredictCaseLikelihood (DMX) 함수는 해당 모델이 제공될 경우 사례가 나타날 가능성을 알려 주므로 이러한 경우에 유용합니다.The PredictCaseLikelihood (DMX) function is useful in this scenario, because it tells you how likely a case is, given the model.

PredictCaseLikelihood 함수에 의해 반환되는 값은 확률이므로 항상 0과 1 사이이며 임의의 결과를 나타내는 경우 값이 .5입니다.The number that is returned by the PredictCaseLikelihood function is a probability, and therefore is always between 0 and 1, with a value of .5 representing random outcome. 그러므로 점수가 .5 미만인 경우 해당 모델이 제공될 경우 예측 사례가 나타날 가능성이 별로 없음을 의미하고 점수가 .5 이상인 경우에는 예측 사례가 해당 모델에 적합하지 않은 경우보다 나타날 가능성이 높음을 의미합니다.Therefore, a score less than .5 means that the predicted case is unlikely, given the model, and a score over.5 indicates that the predicted case is more likely than not to fit the model.

예를 들어 다음 쿼리는 새로운 샘플 사례가 나타날 가능성의 특징을 결정하는 두 개의 값을 반환합니다.For example, the following query returns two values that characterize the likelihood of a new sample case. 정규화되지 않은 값은 현재 모델이 제공될 경우의 확률을 나타냅니다.The non-normalized value represents the probability given the current model. NORMALIZED 키워드를 사용할 경우 함수에 의해 반환되는 유사도 점수는 "모델이 포함된 확률"을 "모델이 포함되지 않은 확률"로 나누어 조정됩니다.When you use the NORMALIZED keyword, the likelihood score that is returned by the function is adjusted by dividing "probability with the model" by "probability without the model".

SELECT  
PredictCaseLikelihood(NORMALIZED) AS [NormalizedValue], PredictCaseLikelihood(NONNORMALIZED) AS [NonNormalizedValue]  
FROM  
  [TM_Clustering_PredictOnly]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender]) AS t  

예제 결과:Example results:

NormalizedValueNormalizedValue NonNormalizedValueNonNormalizedValue
5.56438372679893E-115.56438372679893E-11 8.65459953145182E-688.65459953145182E-68

이 결과 값은 과학적 표기법으로 표시됩니다.Note that the numbers in these results are expressed in scientific notation.

맨 위로 이동Return to Top

예제 쿼리 3: 클러스터 멤버 자격 결정 Sample Query 9: Determining Cluster Membership

이 예에서는 Cluster(DMX) 함수를 사용하여 새로운 사례가 속해 있을 가능성이 가장 높은 클러스터를 반환하고, ClusterProbability(DMX) 함수를 사용하여 해당 클러스터의 멤버 자격에 대한 확률을 반환합니다.This example uses the Cluster (DMX) function to return the cluster to which the new case is most likely to belong, and uses the ClusterProbability (DMX) function to return the probability for membership in that cluster.

SELECT Cluster(), ClusterProbability()  
FROM  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender],  
  'S' AS [Marital Status]) AS t  

예제 결과:Example results:

$CLUSTER$CLUSTER Expression
클러스터 2Cluster 2 0.3979185969516170.397918596951617

참고 기본적으로 ClusterProbability 함수는 발생할 가능성이 가장 높은 클러스터의 확률을 반환합니다.Note By default, the ClusterProbability function returns the probability of the most likely cluster. 그러나 ClusterProbability('cluster name')구문을 사용하여 다른 클러스터를 지정할 수 있습니다.However, you can specify a different cluster by using the syntax ClusterProbability('cluster name'). 이 경우 각 예측 함수의 결과는 다른 결과에 대해 독립적입니다.If you do this, be aware that the results from each prediction function are independent of the other results. 따라서 두 번째 열의 확률 점수는 첫 번째 열에 명명된 클러스터가 아닌 다른 클러스터를 참조할 수 있습니다.Therefore, the probability score in the second column could refer to a different cluster than the cluster named in the first column.

맨 위로 이동Return to Top

예제 쿼리 10: 확률과 거리가 포함된 가능한 모든 클러스터 반환 Sample Query 10: Returning All Possible Clusters with Probability and Distance

이전 예에서 확률 점수는 그리 높지 않았습니다.In the previous example, the probability score was not very high. 보다 나은 클러스터가 있는지 확인하기 위해 PredictHistogram(DMX) 함수를 Cluster(DMX) 함수와 함께 사용하여 새로운 사례가 각 클러스터에 속해 있을 확률과 함께 가능한 모든 클러스터를 포함하는 중첩 테이블을 반환합니다.To determine if there is a better cluster, you can use the PredictHistogram (DMX) function together with the Cluster (DMX) function to return a nested table that includes all possible clusters, together with the probability that the new case that belongs to each cluster. FLATTENED 키워드는 보다 쉽게 볼 수 있도록 계층적 행 집합을 플랫 테이블로 변경하는 데 사용됩니다.The FLATTENED keyword is used to change the hierarchical rowset into a flat table for easier viewing.

SELECT FLATTENED PredictHistogram(Cluster())  
From  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender],  
  'S' AS [Marital Status])  
Expression.$CLUSTERExpression.$CLUSTER Expression.$DISTANCEExpression.$DISTANCE Expression.$PROBABILITYExpression.$PROBABILITY
클러스터 2Cluster 2 0.6020814030483830.602081403048383 0.3979185969516170.397918596951617
클러스터 10Cluster 10 0.7196916867856750.719691686785675 0.2803083132143250.280308313214325
클러스터 4Cluster 4 0.8677725903787910.867772590378791 0.1322274096212090.132227409621209
클러스터 5Cluster 5 0.9310398722009850.931039872200985 0.06896012779901490.0689601277990149
클러스터 3Cluster 3 0.9423592300721670.942359230072167 0.05764076992783280.0576407699278328
클러스터 6Cluster 6 0.9589736689727560.958973668972756 0.04102633102724370.0410263310272437
클러스터 7Cluster 7 0.9790812759267240.979081275926724 0.02091872407327630.0209187240732763
클러스터 1Cluster 1 0.9991690448186240.999169044818624 0.0008309551813763640.000830955181376364
클러스터 9Cluster 9 0.9998312277958940.999831227795894 0.0001687722041057540.000168772204105754
클러스터 8Cluster 8 1.1 00

기본적으로 결과는 확률 순으로 순위가 지정됩니다.By default, the results are ranked by probability. 결과를 통해 Cluster 2의 확률이 매우 낮지만 그래도 Cluster 2가 새 데이터 요소에 가장 적합하다는 것을 알 수 있습니다.The results tell you that, even though the probability for Cluster 2 is fairly low, Cluster 2 is still the best fit for the new data point.

참고 추가 열 $DISTANCE는 데이터 요소에서 클러스터까지의 거리를 나타냅니다.Note The additional column, $DISTANCE, represents the distance from the data point to the cluster. 기본적으로 MicrosoftMicrosoft 클러스터링 알고리즘은 Scalable EM 클러스터링을 사용하여 여러 개의 클러스터를 각 데이터 요소에 할당하고 가능한 클러스터의 순위를 지정합니다.By default, the MicrosoftMicrosoft Clustering Algorithm uses scalable EM clustering, which assigns multiple clusters to each data point and ranks the possible clusters. 그러나 K-Means 알고리즘을 사용하여 클러스터링 모델을 만드는 경우 각 데이터 요소에 한 개의 클러스터만 할당할 수 있으므로 이 쿼리는 한 개의 행만 반환합니다.However, if you create your clustering model using the K-means algorithm, only one cluster can be assigned to each data point, and this query would return only one row. PredictCaseLikelihood (DMX) 함수를 사용하여 기본 구조의 열을 포함할 수 있습니다.Understanding these differences is necessary to interpret the results of the PredictCaseLikelihood (DMX) function. EM 클러스터링과 K-means 클러스터링의 차이점에 대한 자세한 내용은 Microsoft 클러스터링 알고리즘 기술 참조를 참조하세요.For more information about the differences between EM and K-means clustering, see Microsoft Clustering Algorithm Technical Reference.

맨 위로 이동Return to Top

함수 목록Function List

모든 MicrosoftMicrosoft 알고리즘은 공통 함수 집합을 지원합니다.All MicrosoftMicrosoft algorithms support a common set of functions. 그러나 MicrosoftMicrosoft 클러스터링 알고리즘을 사용하여 작성된 모델은 다음 표에 나열된 함수를 추가로 지원합니다.However, models that are built by using the MicrosoftMicrosoft Clustering algorithm support the additional functions that are listed in the following table.

예측 함수Prediction Function 사용법Usage
Cluster(DMX)Cluster (DMX) 입력 사례가 포함되었을 가능성이 가장 높은 클러스터를 반환합니다.Returns the cluster that is most likely to contain the input case.
ClusterDistance(DMX)ClusterDistance (DMX) 입력 사례와 지정된 클러스터 사이의 거리를 반환합니다. 클러스터가 지정되지 않은 경우에는 입력 사례와 가장 가능성 있는 클러스터 사이의 거리를 반환합니다.Returns the distance of the input case from the specified cluster, or if no cluster is specified, the distance of the input case from the most likely cluster.

입력 사례가 지정한 클러스터에 속할 확률을 반환합니다.Returns the probability that the input case belongs to the specified cluster.
ClusterProbability(DMX)ClusterProbability (DMX) 입력 사례가 지정한 클러스터에 속할 확률을 반환합니다.Returns the probability that the input case belongs to the specified cluster.
IsDescendant(DMX)IsDescendant (DMX) 한 노드가 모델에서 다른 노드의 자식인지 여부를 확인합니다.Determines whether one node is a child of another node in the model.
IsInNode(DMX)IsInNode (DMX) 지정한 노드에 현재 사례가 포함되었는지 여부를 나타냅니다.Indicates whether the specified node contains the current case.
PredictAdjustedProbability(DMX)PredictAdjustedProbability (DMX) 가중치 확률을 반환합니다.Returns the weighted probability.
PredictAssociation(DMX)PredictAssociation (DMX) 연관 데이터 집합에서의 멤버 자격을 예측합니다.Predicts membership in an associative dataset.
PredictCaseLikelihood(DMX)PredictCaseLikelihood (DMX) 입력 사례가 기존 모델에 적합할 가능성을 반환합니다.Returns the likelihood that an input case will fit in the existing model.
PredictHistogram(DMX)PredictHistogram (DMX) 현재 예측된 값과 관련 된 값의 테이블을 반환 합니다.Returns a table of values related to the current predicted value.
PredictNodeId(DMX)PredictNodeId (DMX) 각 사례에 대한 Node_ID를 반환합니다.Returns the Node_ID for each case.
PredictProbability(DMX)PredictProbability (DMX) 예측 값의 확률을 반환합니다.Returns probability for the predicted value.
PredictStdev(DMX)PredictStdev (DMX) 지정된 열의 예측 표준 편차를 반환합니다.Returns the predicted standard deviation for the specified column.
PredictSupport(DMX)PredictSupport (DMX) 지정한 상태에 대한 지원 값을 반환합니다.Returns the support value for a specified state.
PredictVariance(DMX)PredictVariance (DMX) 지정한 열의 분산을 반환합니다.Returns the variance of a specified column.

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

관련 항목:See Also

데이터 마이닝 쿼리 Data Mining Queries
Microsoft 클러스터링 알고리즘 기술 참조 Microsoft Clustering Algorithm Technical Reference
Microsoft 클러스터링 알고리즘Microsoft Clustering Algorithm