다음을 통해 공유


Microsoft 의사 결정 트리 알고리즘 기술 참조

Microsoft 의사 결정 트리 알고리즘은 트리를 만들기 위한 다양한 방법을 통합하고 회귀, 분류 및 연결을 비롯한 여러 분석 작업을 지원하는 하이브리드 알고리즘입니다. Microsoft 의사 결정 트리 알고리즘은 불연속 특성과 연속 특성의 모델링을 모두 지원합니다.

이 항목에서는 알고리즘의 구현에 대해 설명하고, 다양한 작업에 대한 알고리즘의 동작을 사용자 지정하는 방법을 설명하고, 의사 결정 트리 모델 쿼리에 대한 추가 정보에 대한 링크를 제공합니다.

의사 결정 트리 알고리즘 구현

Microsoft 의사 결정 트리 알고리즘은 모델에 대한 대략적인 후방 분포를 가져와 인과 상호 작용 모델을 학습하는 Bayesian 접근 방식을 적용합니다. 이 방법에 대한 자세한 설명은 구조 및 매개 변수 학습을 통해 Microsoft Research 사이트의 문서를 참조하세요.

학습에 필요한 사전 의 정보 값을 평가하는 방법은 가능성 동등성을 가정한 것입니다. 이 가정은 데이터가 조건부 독립성의 동일한 어설션을 나타내는 네트워크 구조를 구분하는 데 도움이 되어서는 안 된다고 가정합니다. 각 사례에는 단일 Bayesian 이전 네트워크와 해당 네트워크에 대한 단일 신뢰도 측정값이 있다고 가정합니다.

이러한 이전 네트워크를 사용하여 알고리즘은 현재 학습 데이터를 고려할 때 네트워크 구조의 상대적 후방 확률 을 계산하고 후방 확률이 가장 높은 네트워크 구조를 식별합니다.

Microsoft 의사 결정 트리 알고리즘은 다양한 방법을 사용하여 최상의 트리를 계산합니다. 사용되는 메서드는 선형 회귀, 분류 또는 연결 분석일 수 있는 작업에 따라 달라집니다. 단일 모델에는 예측 가능한 여러 특성에 대한 여러 트리가 포함될 수 있습니다. 또한 각 트리는 데이터에 있는 특성 및 값의 수에 따라 여러 분기를 포함할 수 있습니다. 특정 모델에서 빌드된 트리의 모양과 깊이는 채점 방법 및 사용된 다른 매개 변수에 따라 달라집니다. 매개 변수의 변경 내용은 노드가 분할되는 위치에도 영향을 줄 수 있습니다.

트리 구축

Microsoft 의사 결정 트리 알고리즘은 가능한 입력 값 집합을 만들 때 기능 선택을 수행하여 가장 많은 정보를 제공하는 특성과 값을 식별하고 매우 드문 값을 고려하지 않습니다. 또한 알고리즘은 값을 bin으로 그룹화하여 성능을 최적화하기 위해 단위로 처리할 수 있는 값 그룹화도 만듭니다.

트리는 입력과 대상 결과 간의 상관 관계를 확인하여 빌드됩니다. 모든 특성이 상호 연관되면 알고리즘은 결과를 가장 깔끔하게 구분하는 단일 특성을 식별합니다. 가장 좋은 분리 지점은 정보 이득을 계산하는 수식을 사용하여 측정됩니다. 정보 획득에 가장 적합한 점수가 있는 특성은 사례를 하위 집합으로 나누는 데 사용되며, 트리를 더 이상 분할할 수 없을 때까지 동일한 프로세스에서 재귀적으로 분석됩니다.

정보 게인을 평가하는 데 사용되는 정확한 수식은 알고리즘을 만들 때 설정된 매개 변수, 예측 가능한 열의 데이터 형식 및 입력의 데이터 형식에 따라 달라집니다.

불연속 및 연속 입력

예측 가능한 특성이 불연속이고 입력이 불연속인 경우 입력당 결과를 계산하는 것은 행렬을 만들고 행렬의 각 셀에 대한 점수를 생성하는 문제입니다.

그러나 예측 가능한 특성이 불연속이고 입력이 연속적이면 연속 열의 입력이 자동으로 불연속화됩니다. 기본값을 수용하고 Analysis Services가 최적의 bin 수를 찾게 하거나, DiscretizationMethodDiscretizationBucketCount 속성을 설정하여 연속적인 입력값의 불연속화 방식을 제어할 수 있습니다. 자세한 내용은 마이닝 모델에서 열의 이산화 변경을 참조하세요.

연속 특성의 경우 알고리즘은 선형 회귀를 사용하여 의사 결정 트리가 분할되는 위치를 결정합니다.

예측 가능한 특성이 연속 숫자 데이터 형식인 경우 가능한 결과 수를 줄이고 모델을 더 빠르게 빌드하기 위해 기능 선택도 출력에 적용됩니다. 기능 선택에 대한 임계값을 변경하여 MAXIMUM_OUTPUT_ATTRIBUTES 매개 변수를 설정하여 가능한 값 수를 늘리거나 줄일 수 있습니다.

Microsoft 의사 결정 트리 알고리즘이 불연속 예측 가능한 열에서 작동하는 방식에 대한 자세한 내용은 Bayesian Networks: 지식 및 통계 데이터의 조합 학습을 참조하세요. Microsoft 의사 결정 트리 알고리즘이 예측 가능한 연속 열에서 작동하는 방식에 대한 자세한 내용은 Time-Series 분석을 위한 자동 회귀 트리 모델의 부록을 참조하세요.

점수 매기기 메서드 및 기능 선택

Microsoft 의사 결정 트리 알고리즘은 채점 정보 획득을 위한 세 가지 수식을 제공합니다. 섀넌의 엔트로피, K2 이전의 Bayesian 네트워크 및 이전 항목의 균일한 Dirichlet 분포가 있는 Bayesian 네트워크. 세 가지 메서드는 모두 데이터 마이닝 필드에 잘 설정됩니다. 최상의 결과를 제공하는 매개 변수와 점수 매기기 메서드를 사용하여 실험하는 것이 좋습니다. 이러한 점수 매기기 방법에 대한 자세한 내용은 기능 선택을 참조하세요.

모든 Analysis Services 데이터 마이닝 알고리즘은 자동으로 기능 선택을 사용하여 분석을 개선하고 처리 부하를 줄입니다. 기능 선택에 사용되는 메서드는 모델을 빌드하는 데 사용되는 알고리즘에 따라 달라집니다. 의사 결정 트리 모델의 특성 선택을 제어하는 알고리즘 매개 변수는 MAXIMUM_INPUT_ATTRIBUTES 및 MAXIMUM_OUTPUT입니다.

알고리즘 분석 방법 코멘트
의사 결정 트리 흥미롭기 점수

섀넌의 엔트로피

베이즈 방식의 K2 우선권 사용

이전에 유니폼을 입은 베이지안 디리히렛(기본값)
열에 이진이 아닌 연속 값이 포함된 경우 일관성을 보장하기 위해 모든 열에 대해 흥미롭기 점수가 사용됩니다. 그렇지 않으면 기본 또는 지정된 메서드가 사용됩니다.
선형 회귀 흥미롭기 점수 선형 회귀는 연속 열만 지원하기 때문에 흥미도만 사용합니다.

확장성 및 성능

분류는 중요한 데이터 마이닝 전략입니다. 일반적으로 사례를 분류하는 데 필요한 정보의 양은 입력 레코드 수에 비례하여 증가합니다. 이렇게 하면 분류할 수 있는 데이터의 크기가 제한됩니다. Microsoft 의사 결정 트리 알고리즘은 다음 방법을 사용하여 이러한 문제를 해결하고 성능을 향상시키며 메모리 제한을 제거합니다.

  • 특성 선택을 최적화하기 위한 기능 선택입니다.

  • 트리의 성장을 제어하기 위한 베이지안 점수화.

  • 연속 특성에 대한 범주화 최적화

  • 입력 값을 동적으로 그룹화하여 가장 중요한 값을 결정합니다.

Microsoft 의사 결정 트리 알고리즘은 빠르고 확장 가능하며 쉽게 병렬 처리되도록 설계되었으므로 모든 프로세서가 함께 작동하여 일관된 단일 모델을 빌드합니다. 이러한 특성의 조합은 의사 결정 트리 분류자를 데이터 마이닝에 이상적인 도구로 만듭니다.

성능 제약 조건이 심각한 경우 다음 방법을 사용하여 의사 결정 트리 모델을 학습하는 동안 처리 시간을 향상시킬 수 있습니다. 그러나 이렇게 하면 처리 성능을 향상시키기 위해 특성을 제거하면 모델의 결과가 변경되고 전체 모집단을 덜 대표할 수 있습니다.

  • 트리 증가를 제한하려면 COMPLEXITY_PENALTY 매개 변수의 값을 늘입니다.

  • 빌드된 트리 수를 제한하도록 연결 모델의 항목 수를 제한합니다.

  • 과잉 맞춤을 방지하기 위해 MINIMUM_SUPPORT 매개 변수의 값을 늘입니다.

  • 모든 특성의 불연속 값 수를 10 이하로 제한합니다. 다양한 모델에서 여러 가지 방법으로 값을 그룹화하려고 할 수 있습니다.

    비고

    SQL Server 2014 Integration Services(SSIS)에서 사용할 수 있는 데이터 탐색 도구를 사용하여 데이터에서 값의 분포를 시각화하고 데이터 마이닝을 시작하기 전에 값을 적절하게 그룹화할 수 있습니다. 자세한 내용은 데이터 프로파일링 태스크 및 뷰어를 참조하세요. Excel 2007용 데이터 마이닝 추가 기능을 사용하여 Microsoft Excel에서 데이터를 탐색, 그룹화 및 레이블을 다시 지정할 수도 있습니다.

의사 결정 트리 알고리즘 사용자 지정

Microsoft 의사 결정 트리 알고리즘은 결과 마이닝 모델의 성능 및 정확도에 영향을 주는 매개 변수를 지원합니다. 마이닝 모델 열 또는 마이닝 구조 열에 모델링 플래그를 설정하여 데이터가 처리되는 방식을 제어할 수도 있습니다.

비고

Microsoft 의사 결정 트리 알고리즘은 모든 버전의 SQL Server에서 사용할 수 있습니다. 그러나 Microsoft 의사 결정 트리 알고리즘의 동작을 사용자 지정하기 위한 일부 고급 매개 변수는 특정 버전의 SQL Server에서만 사용할 수 있습니다. SQL Server 버전에서 지원하는 기능 목록은 SQL Server 2012 버전에서 지원하는 기능 (https://go.microsoft.com/fwlink/?linkid=232473)을 참조하세요.

알고리즘 매개 변수 설정

다음 표에서는 Microsoft 의사 결정 트리 알고리즘과 함께 사용할 수 있는 매개 변수에 대해 설명합니다.

복잡성 패널티
의사 결정 트리의 증가를 제어합니다. 값이 낮을수록 분할 수가 증가하고 값이 높을수록 분할 수가 줄어듭니다. 기본값은 다음 목록에 설명된 대로 특정 모델의 특성 수를 기반으로 합니다.

  • 1~9개 특성의 경우 기본값은 0.5입니다.

  • 10~99개 특성의 경우 기본값은 0.9입니다.

  • 100개 이상의 특성의 경우 기본값은 0.99입니다.

FORCE_REGRESSOR
알고리즘에서 계산한 열의 중요도에 관계없이 알고리즘이 지정된 열을 회귀 변수로 사용하도록 합니다. 이 매개 변수는 연속 특성을 예측하는 의사 결정 트리에만 사용됩니다.

비고

이 매개 변수를 설정하여 알고리즘이 특성을 회귀 변수로 사용하도록 강제합니다. 그러나 특성이 최종 모델에서 실제로 회귀자로 사용되는지 여부는 분석 결과에 따라 달라집니다. 모델 콘텐츠를 쿼리하여 회귀 변수로 사용된 열을 확인할 수 있습니다.

[일부 SQL Server 버전에서만 사용 가능]

최대 입력 속성
알고리즘이 기능 선택을 호출하기 전에 처리할 수 있는 입력 특성 수를 정의합니다.

기본값은 255입니다.

기능 선택을 해제하려면 이 값을 0으로 설정합니다.

[일부 SQL Server 버전에서만 사용 가능]

MAXIMUM_OUTPUT_ATTRIBUTES
알고리즘이 기능 선택을 호출하기 전에 처리할 수 있는 출력 특성 수를 정의합니다.

기본값은 255입니다.

기능 선택을 해제하려면 이 값을 0으로 설정합니다.

[일부 SQL Server 버전에서만 사용 가능]

MINIMUM_SUPPORT
의사 결정 트리에서 분할을 생성하는 데 필요한 최소 리프 사례 수를 결정합니다.

기본값은 10입니다.

데이터 세트가 매우 큰 경우 오버트레인을 방지하기 위해 이 값을 늘려야 할 수 있습니다.

점수 방법
분할 점수를 계산하는 데 사용되는 메서드를 결정합니다. 다음과 같은 옵션을 사용할 수 있습니다.

아이디 이름
1 엔트로피
3 베이즈 방식의 K2 우선권 사용
4 유니폼 사전 분포를 사용하는 베이지안 디리클레 동치(Bayesian Dirichlet Equivalent)

(기본값)

기본값은 4 또는 BDE입니다.

이러한 점수 매기기 방법에 대한 설명은 기능 선택을 참조하세요.

분할_방법
노드를 분할하는 데 사용되는 메서드를 결정합니다. 다음과 같은 옵션을 사용할 수 있습니다.

아이디 이름
1 바이너리: 특성의 실제 값 수에 관계없이 트리를 두 개의 분기로 분할해야 임을 나타냅니다.
2 완성하다: 트리가 특성 값만큼 분할을 만들 수 있음을 나타냅니다.
3 둘다: Analysis Services에서 최상의 결과를 생성하기 위해 이진 또는 전체 분할을 사용할지 여부를 결정할 수 있도록 지정합니다.

기본값은 3입니다.

모델링 플래그

Microsoft 의사 결정 트리 알고리즘은 다음 모델링 플래그를 지원합니다. 마이닝 구조 또는 마이닝 모델을 만들 때 분석 중에 각 열의 값을 처리하는 방법을 지정하는 모델링 플래그를 정의합니다. 자세한 내용은 모델링 플래그(데이터 마이닝)를 참조하세요.

모델링 플래그 설명
모델_존재_전용 열이 두 가지 가능한 상태인 MissingExisting 로 처리될 것임을 의미합니다. null이 누락된 값입니다.

마이닝 모델 열에 적용됩니다.
NULL이 아님 (NOT NULL) 열에 null을 포함할 수 없음을 나타냅니다. 모델 학습 중에 Analysis Services가 null을 발견하면 오류가 발생합니다.

마이닝 구조 열에 적용됩니다.

의사 결정 트리 모델의 회귀 변수

Microsoft 선형 회귀 알고리즘을 사용하지 않더라도 연속 숫자 입력 및 출력이 있는 의사 결정 트리 모델에는 연속 특성의 회귀를 나타내는 노드가 포함될 수 있습니다.

연속 숫자 데이터의 열이 회귀자를 나타내도록 지정할 필요가 없습니다. Microsoft 의사 결정 트리 알고리즘은 열에 REGRESSOR 플래그를 설정하지 않더라도 자동으로 열을 잠재적인 회귀 변수로 사용하고 데이터 세트를 의미 있는 패턴으로 영역으로 분할합니다.

그러나 FORCE_REGRESSOR 매개 변수를 사용하여 알고리즘이 특정 회귀 변수를 사용하도록 보장할 수 있습니다. 이 매개 변수는 Microsoft 의사 결정 트리 및 Microsoft 선형 회귀 알고리즘에서만 사용할 수 있습니다. 모델링 플래그를 설정하면, 알고리즘은 a*C1 + b*C2 + ... 형태의 회귀 방정식을 찾아 트리의 노드에 있는 패턴에 맞추려고 합니다. 잔차의 합계가 계산되고 편차가 너무 크면 트리에서 분할이 강제로 적용됩니다.

예를 들어 Income 을 특성으로 사용하여 고객 구매 동작을 예측하고 열에서 REGRESSOR 모델링 플래그를 설정하는 경우 알고리즘은 먼저 표준 회귀 수식을 사용하여 Income 값에 맞도록 시도합니다. 편차가 너무 크면 회귀 수식이 중단되고 트리가 다른 특성으로 분할됩니다. 그런 다음 의사 결정 트리 알고리즘은 분할 후 각 분기의 수입에 회귀 변수를 맞추려고 시도합니다.

요구 사항

의사 결정 트리 모델에는 키 열, 입력 열 및 하나 이상의 예측 가능한 열이 포함되어야 합니다.

입력 열 및 예측 가능한 열

Microsoft 의사 결정 트리 알고리즘은 다음 표에 나열된 특정 입력 열과 예측 가능한 열을 지원합니다. 마이닝 모델에서 사용할 때 콘텐츠 형식의 의미에 대한 자세한 내용은 콘텐츠 형식(데이터 마이닝)을 참조하세요.

칼럼 내용 유형
입력 특성 연속적인, 주기적인, 이산형, 이산화된, 키, 정렬된, 표
예측 가능한 특성 연속적인, 순환적인, 비연속적인, 이산화된, 정렬된, 표

비고

주기적 및 순서가 지정된 콘텐츠 형식은 지원되지만 알고리즘은 이를 불연속 값으로 처리하며 특수한 처리를 수행하지 않습니다.

또한 참조하십시오

Microsoft 의사 결정 트리 알고리즘
의사 결정 트리 모델 쿼리 예제
의사 결정 트리 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)