마이닝 모델에 대한 필터(Analysis Services - 데이터 마이닝)Filters for Mining Models (Analysis Services - Data Mining)

데이터 기반 모델 필터링을 사용하면 마이닝 구조에서 데이터의 하위 집합을 사용하는 마이닝 모델을 만들 수 있습니다.Data-based model filtering helps you create mining models that use subsets of data in a mining structure. 포괄적인 데이터 원본 뷰를 기반으로 단일 마이닝 구조를 만들 수 있으므로 필터링을 사용하면 마이닝 구조 및 데이터 원본을 유연하게 디자인할 수 있습니다.Filtering gives you flexibility when you design your mining structures and data sources, because you can create a single mining structure, based on a comprehensive data source view. 그런 다음 데이터의 각 하위 집합에 대해 서로 다른 구조 및 관련 모델을 작성하는 대신 다양한 모델의 학습 및 테스트에 해당 데이터의 일부만 사용하기 위한 필터를 만들 수 있습니다.You can then create filters to use only a part of that data for training and testing a variety of models, instead of building a different structure and related model for each subset of data.

예를 들어 Customers 테이블 및 관련 테이블에 대한 데이터 원본 뷰를 정의합니다.For example, you define the data source view on the Customers table and related tables. 그런 다음 필요한 모든 필드를 포함하는 단일 마이닝 구조를 정의합니다.Next, you define a single mining structure that includes all the fields you need. 마지막으로 Region과 같은 특정 고객 특성으로 필터링되는 모델을 만듭니다.Finally, you create a model that is filtered on a particular customer attribute, such as Region. 그러면 해당 모델의 복사본을 쉽게 만들고, 필터 조건만 변경하여 다른 지역을 기반으로 하는 새 모델을 생성할 수 있습니다.You can then easily make a copy of that model, and change just the filter condition to generate a new model based on a different region.

이 기능이 유용할 수 있는 일부 실제 시나리오는 다음과 같습니다.Some real-life scenarios where you might benefit from this feature include the following:

  • 성별, 지역 등과 같은 불연속 값에 대한 별도의 모델 만들기.Creating separate models for discrete values such as gender, regions, and so forth. 예를 들어 모든 고객에 대한 단일 데이터 원본에서 판매 데이터를 가져온 경우에도 의류점에서는 고객 인구 통계를 사용하여 성별에 따른 별도의 모델을 작성할 수 있습니다.For example, a clothing store might use customer demographics to build separate models by gender, even though the sales data comes from a single data source for all customers.

  • 20-30세, 20-40세, 20-25세 연령과 같이 동일한 데이터에 대한 여러 그룹화를 만든 다음 테스트하여 모델 시험Experimenting with models by creating and then testing multiple groupings of the same data, such as ages 20-30 vs. ages 20-40 vs. ages 20-25.

  • 고객이 특정 항목을 두 개 이상 구매한 경우에만 사례가 모델에 포함되도록 요구하는 경우에서와 같이 중첩 테이블 내용에 복잡한 필터 지정Specifying complex filters on nested table contents, such as requiring that a case be included in the model only if the customer has purchased at least two of a particular item.

    이 섹션에서는 마이닝 모델에 대해 필터를 작성하고 사용하며 관리하는 방법에 대해 설명합니다.This section explains how to build, use, and manage filters on mining models.

모델 필터 만들기Creating Model Filters

다음과 같은 방법으로 필터를 만들고 적용할 수 있습니다.You can create and apply filters in the following ways:

  • 데이터 마이닝 디자이너의 마이닝 모델 탭을 사용하여 필터 편집기 대화 상자를 통해 조건 작성Using the Mining Models tab in Data Mining Designer to build conditions with the help of filter editor dialog boxes.

  • 마이닝 모델의 Filter 속성에 필터 식 직접 입력Typing a filter expression directly into the Filter property of the mining model.

  • AMO를 사용하여 모델에 대한 필터 조건을 프로그래밍 방식으로 설정Setting filter conditions on a model programmatically, by using AMO.

데이터 마이닝 디자이너를 사용하여 모델 필터 만들기Creating Model Filters using Data Mining Designer

데이터 마이닝 디자이너에서 마이닝 모델의 Filter 속성을 변경하여 모델을 필터링합니다.You filter a model in Data Mining Designer by changing the Filter property of the mining model. 필터 식을 속성 창에 직접 입력하거나 필터 대화 상자를 열어 조건을 작성할 수 있습니다.You can either type a filter expression directly into the Properties pane, or you can open a filter dialog box to build conditions.

두 개의 필터 대화 상자가 있습니다.There are two filter dialog boxes. 첫 번째 대화 상자를 사용하면 사례 테이블에 적용되는 조건을 만들 수 있습니다.The first lets you create conditions that are applied to the case table. 데이터 원본에 여러 테이블이 포함되어 있는 경우 먼저 테이블을 선택한 다음 열을 선택하고 해당 열에 적용할 연산자와 조건을 지정합니다.If the data source contains multiple tables, first you select a table, and then you select a column and specify operators and conditions that apply to that column. AND/OR 연산자를 사용하여 여러 조건을 연결할 수 있습니다.You can link multiple conditions by using AND/OR operators. 값을 정의하는 데 사용할 수 있는 연산자는 열에 불연속 값이 포함되어 있는지, 아니면 연속 값이 포함되어 있는지에 따라 달라집니다.The operators that are available for defining values depend on whether the column contains discrete or continuous values. 예를 들어 연속 값의 경우 greater thanless than 연산자를 사용할 수 있습니다.For example, with continuous values, you can use greater than and less than operators. 그러나 불연속 값의 경우에는 =(같음), !=(같지 않음)is null 연산자만 사용할 수 있습니다.However, for discrete values, you can only use = (equal to), != (not equal to), and is null operators.

참고

LIKE 키워드는 지원되지 않습니다.The LIKE keyword is not supported. 여러 불연속 특성을 포함하려는 경우 별도의 조건을 만들고 OR 연산자를 사용하여 연결해야 합니다.If you want to include multiple discrete attributes, you must create separate conditions and link them by using the OR operator.

조건이 복잡한 경우 두 번째 필터 대화 상자를 사용하여 한 번에 한 테이블로 작업할 수 있습니다.If the conditions are complex, you can use the second filter dialog box to work with one table at a time. 두 번째 필터 대화 상자를 닫으면 식이 평가된 다음 사례 테이블의 다른 열에 설정된 필터 조건과 결합됩니다.When you close the second filter dialog box, the expression is evaluated and then combined with filter conditions that have been set on other columns in the case table.

중첩 테이블에 필터 만들기Creating Filters on Nested Tables

데이터 원본 뷰에 중첩 테이블이 포함되어 있는 경우 두 번째 필터 대화 상자를 사용하여 중첩 테이블의 행에 대한 조건을 작성할 수 있습니다.If the data source view contains nested tables, you can use the second filter dialog box to build conditions on the rows in the nested tables.

예를 들어 사례 테이블이 고객과 관련되어 있고 중첩 테이블에 고객이 구매한 제품이 표시되는 경우 중첩 테이블 필터에 다음 [ProductName]=’Water Bottle’ OR ProductName=’Water Bottle Cage'구문을 사용하여 특정 항목을 구매한 고객에 대한 필터를 만들 수 있습니다.For example, if your case table is related to customers, and the nested table shows the products that a customer has purchased, you can create a filter for customers who have purchased particular items by using the following syntax in the nested table filter: [ProductName]=’Water Bottle’ OR ProductName=’Water Bottle Cage'.

EXISTS 또는 NOT EXISTS 키워드 및 하위 쿼리를 사용하여 중첩 테이블에 특정 값이 있는지 여부를 필터링할 수도 있습니다.You can also filter on the existence of a particular value in the nested table by using the EXISTS or NOT EXISTS keywords and a subquery. 이렇게 하면 EXISTS (SELECT * FROM Products WHERE ProductName=’Water Bottle’)와 같은 조건을 만들 수 있습니다.This lets you create conditions such as EXISTS (SELECT * FROM Products WHERE ProductName=’Water Bottle’). 중첩 테이블에 EXISTS SELECT(<subquery>) 값을 포함하는 하나 이상의 행이 있는 경우 true Water Bottle를 반환합니다.The EXISTS SELECT(<subquery>) returns true if the nested table contains at least one row that includes the value, Water Bottle.

사례 테이블에 대한 조건을 중첩 테이블에 대한 조건과 결합할 수 있습니다.You can combine conditions on the case table with conditions on the nested table. 예를 들어 다음 구문에는 사례 테이블에 대한 조건(Age > 30 ), 중첩 테이블에 대한 하위 쿼리(EXISTS (SELECT * FROM Products)) 및 중첩 테이블에 대한 여러 조건(WHERE ProductName=’Milk’ AND Quantity>2)이 포함되어 있습니다.For example, the following syntax includes a condition on the case table (Age > 30 ), a subquery on the nested table (EXISTS (SELECT * FROM Products)), and multiple conditions on the nested table (WHERE ProductName=’Milk’ AND Quantity>2) ).

(Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’  AND Quantity>2) )  

필터 작성이 완료되면 필터 텍스트가 Analysis ServicesAnalysis Services에서 평가되고 DMX 식으로 번역된 다음 모델과 함께 저장됩니다.When you have finished building the filter, the filter text is evaluated by Analysis ServicesAnalysis Services, translated to a DMX expression, and then saved with the model.

SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 필터 대화 상자를 사용하는 방법에 대한 자세한 내용은 마이닝 모델에 필터 적용을 참조하세요.For instructions on how to use the filter dialog boxes in SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), see Apply a Filter to a Mining Model.

마이닝 모델 필터 관리Managing Mining Model Filters

같은 구조를 기반으로 하는 여러 모델을 쉽게 작성할 수 있으므로 데이터 기반 모델 필터링을 사용하면 마이닝 구조 및 마이닝 모델 관리 태스크가 간단해집니다.Data-based model filtering greatly simplifies the task of managing mining structures and mining models, because you can easily create multiple models that are based on the same structure. 또한 기존 마이닝 모델의 복사본을 빠르게 만든 다음 필터 조건만 변경할 수 있습니다.You can also quickly make copies of existing mining models and then change only the filter condition. 그러나 필터로 인해 일부 혼란이 발생할 수 있습니다.However, filters can lead to some confusion.

다음은 마이닝 모델에서 필터를 관리하고 해석하는 방법에 대한 질문과 대답입니다.Here are some frequently asked questions about how to manage and interpret filters on mining models:

필터가 사용 중인지 여부를 어떻게 알 수 있습니까?How can I tell whether a filter is being used?

필터가 모델에 적용되어 있는지 여부를 판단하는 방법은 여러 가지가 있습니다.There are multiple ways to determine whether a filter is applied to a model:

  • 디자이너에서 마이닝 모델 탭을 클릭하고 속성을 열고 마이닝 모델의 Filter 속성을 봅니다.In the designer, click the Mining Models tab, open Properties, and view the Filter property of the mining model.

  • DMV, DMSCHEMA_MINING_MODELS는 필터의 텍스트를 포함하는 열을 출력합니다.The DMV, DMSCHEMA_MINING_MODELS, outputs a column that contains the text of the filter. DMV에서 다음 쿼리를 사용하여 모델 이름과 해당 필터를 반환할 수 있습니다.You can use the following query on a DMV to return the names of models and their filters:

    SELECT MODEL_NAME, [FILTER]   
    FROM $SYSTEM.DMSCHEMA_MINING_MODELS  
    
  • AMO에서 MiningModel 개체의 Filter 속성 값을 가져오거나 XMLA의 Filter 요소를 검사할 수 있습니다.You can get the value of the Filter property of the MiningModel object in AMO, or inspect the Filter element in XMLA.

    모델에 대한 명명 규칙을 만들어 필터 내용을 반영할 수도 있습니다.You might also establish a naming convention for models to reflect the contents of the filter. 이렇게 하면 관련 모델을 쉽게 구분할 수 있습니다.This can make it easier to tell related models apart.

필터를 저장하려면 어떻게 합니까?How can I save a filter?

필터 식은 연결된 마이닝 모델 또는 중첩 테이블과 함께 저장되는 스크립트로 저장됩니다.The filter expression is saved as a script that is stored with the associated mining model or nested table. 필터 텍스트를 삭제하는 경우 필터 식을 수동으로 다시 만들어야만 해당 텍스트를 복원할 수 있습니다.If you delete the filter text, it can only be restored by manually re-creating the filter expression. 따라서 복잡한 필터 식을 만드는 경우 필터 텍스트의 백업 복사본을 만들어야 합니다.Therefore, if you create complex filter expressions, you should create a backup copy of the filter text.

필터에서 효과가 보이지 않는 이유는 무엇입니까?Why can’t I see any effects from the filter?

필터 식을 변경하거나 추가할 때마다 구조 및 모델을 다시 처리해야 필터 효과를 확인할 수 있습니다.Whenever you change or add a filter expression, you must reprocess the structure and model before you can view the effects of the filter.

예측 쿼리 결과에 필터링된 특성이 나타나는 이유는 무엇입니까?Why do I see filtered attributes in prediction query results?

모델에 필터를 적용할 때는 모델 학습에 사용된 선택한 클래스에만 영향을 미칩니다.When you apply a filter to a model, it affects only the selection of cases used for training the model. 필터는 모델에 알려진 특성에 영향을 미치지 않고 데이터 원본에 있는 데이터를 변경하거나 압축하지도 않습니다.The filter does not affect the attributes known to the model, or change or suppress data that is present in the data source. 따라서 모델에 대한 쿼리는 다른 사례 유형에 대한 예측을 반환하고 모델에서 사용한 값의 드롭다운 목록에 필터에서 제외된 특성 값이 표시될 수 있습니다.As a result, queries against the model can return predictions for other types of cases, and dropdown lists of values used by the model might show attribute values excluded by the filter.

예를 들어 20-30세 사이의 여성과 관련된 경우만 사용하는 [Bike Buyer] 모델을 학습한다고 가정합니다.For example, suppose you train the [Bike Buyer] model using only cases involving women aged 20-30. 자전거를 구입하는 남성의 확률을 예측하는 예측 쿼리를 여전히 실행하거나 30-40세 사이의 여성의 결과를 예측할 수 있습니다.You can still run a prediction query that predicts the probability of a man buying a bike, or predict the outcome for a woman aged 30-40. 이는 데이터 원본에 있는 특성 및 값이 이론상으로 가능한 내용을 정의하지만 사례는 학습에 사용된 발생 횟수를 정의합니다.That is because the attributes and values present in the data source define what is theoretically possible, while the cases define the occurrences used for training. 그러나 학습 데이터는 대상 값을 가진 사례를 포함하지 않으므로 이러한 쿼리는 매우 작은 확률을 반환합니다.However, these queries would return very small probabilities, because the training data does not contain any cases with the target values.

모델에서 특성 값을 완전히 숨기거나 익명화해야 하는 경우 다음과 같은 여러 가지 방법이 있습니다.If you need to completely hide or anonymize attribute values in the model, there are various options:

  • 데이터 원본 뷰 정의의 일부로 또는 관계형 데이터 원본에 있는 수신 데이터를 필터링Filter the incoming data as part of the definition of the data source view, or in the relational data source.

  • 특성 값을 마스킹 또는 인코딩Mask or encode the attribute value.

  • 마이닝 구조 정의의 일부로 제외된 값을 범주로 축소Collapse excluded values into a category as part of the mining structure definition.

필터 구문에 대한 자세한 내용 및 필터 식의 예를 보려면 모델 필터 구문 및 예(Analysis Services - 데이터 마이닝)구문을 사용하여 특정 항목을 구매한 고객에 대한 필터를 만들 수 있습니다.For more information about filter syntax, and examples of filter expressions, see Model Filter Syntax and Examples (Analysis Services - Data Mining).

마이닝 모델을 테스트할 때 모델 필터를 사용하는 방법에 대한 자세한 내용은 정확도 차트 유형 선택 및 차트 옵션 설정을 참조하세요.For information about how to use model filters when you are testing a mining model, see Choose an Accuracy Chart Type and Set Chart Options.

관련 항목:See Also

모델 필터 구문 및 예(Analysis Services - 데이터 마이닝) Model Filter Syntax and Examples (Analysis Services - Data Mining)
테스트 및 유효성 검사(데이터 마이닝)Testing and Validation (Data Mining)