기계 학습의 의사 결정 트리: 기능, 분류, 장단점

게시 됨: 2020-05-14

모든 사람은 자신의 삶에서 결정을 내려야 합니다. 이러한 결정은 상황에 따라 다릅니다. 올바른 결정을 내리는 것은 가장 간단한 방법으로 문제를 해결하고 가장 좋은 방법으로 상황에 대처하는 데 도움이 됩니다. 어린 시절에 대부분의 결정은 무엇을 먹고 학교와 관련된 일을 중심으로 이루어졌습니다.

당신이 성장함에 따라 당신의 결정은 당신의 삶뿐만 아니라 다른 사람들의 삶에도 더 심각한 영향을 미치기 시작합니다. 인생의 어느 시점에서 당신은 직업이나 사업에 관한 결정을 내리게 될 것입니다. 이 비유는 기계 학습에서 의사 결정 트리의 개념을 소개하기 위한 것입니다.

목차

의사결정나무란?

먼저 의사 결정 트리가 의사 결정을 지원하는 예측 모델 또는 도구라는 사실을 알려 드리겠습니다. 나무와 같은 구조를 따르는 디자인, 디자인 모델 또는 표현을 사용하여 정확한 추론을 제공하는 것으로 알려져 있습니다. 이 모델 또는 기계 학습 모델의 주요 목표는 대상의 특정 속성을 고려한 다음 해당 속성을 기반으로 결정을 내리는 것입니다.

의사 결정 트리에서 대부분의 결정은 조건문(if 및 else)을 따릅니다. 의사 결정 트리 모델이 다른 모델보다 우수하려면 더 깊은 구조와 더 복잡한 규칙을 관리해야 합니다. 머신 러닝에서 가장 선호되는 지도 학습 모델 중 하나이며 여러 영역에서 사용됩니다. 조건에 따라 분할이 수행되도록 하는 알고리즘 기술을 염두에 두고 설계된 순서도처럼 보일 수 있습니다.

이 순서도의 구조는 매우 간단합니다. 여기에는 모델 구축의 기초 역할을 하는 루트 노드가 있습니다. 그런 다음 일부 내부 노드와 분기는 각각 기능 또는 테스트 및 테스트 결과를 보여줍니다. 리프 노드는 관련 속성에 대한 결정이 내려졌을 때 얻은 값과 유사한 값을 가진 그룹을 나타냅니다.

의사결정나무는 주로 분류 및 회귀 문제에서 사용됩니다. 기계 학습 알고리즘 응용 프로그램뿐만 아니라 통계, 데이터 과학, 데이터 마이닝 등 여러 분야에서 여러 응용 프로그램에 서비스를 제공하는 자동화된 예측 모델을 만드는 데 사용됩니다. 이러한 트리 기반 구조는 대부분의 다른 예측 모델보다 쉽게 ​​해석할 수 있고 더 안정적인 가장 정확한 예측 모델을 제공합니다.

특정 수의 문제에만 적합한 선형 모델과 달리 의사 결정 트리를 기반으로 하는 모델은 비선형 관계를 매핑하는 데에도 사용할 수 있습니다. 의사결정나무가 그렇게 인기가 있는 것은 당연합니다. 이것에 대한 한 가지 매우 중요한 이유는 최종 의사결정 트리 모델이 얼마나 이해하기 쉬운가입니다. 그것은 예측 뒤에 무엇이 있었는지 아주 명확하게 설명할 수 있습니다. 또한 그래디언트 부스팅, 배깅, 랜덤 포레스트를 비롯한 고급 협업 또는 앙상블 방법의 기반이기도 합니다.

의사 결정 트리를 어떻게 정의합니까?

이제 개념에 대한 기본 이해를 얻었으므로 정의해 보겠습니다. 의사 결정 트리는 분류 기반 및 회귀 기반 문제를 모두 해결하는 데 사용할 수 있는 감독된 기계 학습 알고리즘입니다. 분류에 어떻게 사용되는지 봅시다.

현재 작업 중인 데이터 세트가 있다고 가정해 보겠습니다. 각 영역의 포인트가 같은 클래스로 지정되도록 서로 다른 영역으로 나눌 수 있는 2D 평면도를 작성합니다. 분할 또는 분할은 고유한 문자로 표시됩니다. 이것은 우리가 여기서 작업하고 있는 이진 트리입니다.

이제 이 의사결정 트리에는 사전 표현이 없지만 우리에게 제공된 훈련 데이터를 사용하여 생성되는 다른 것들이 있습니다. 여기에는 이 트리가 가질 노드 수, 가장자리 위치 및 구조가 포함됩니다. 우리는 여기서 처음부터 트리를 만들지 않을 것입니다. 우리는 우리의 나무가 이미 거기에 있다는 것을 고려하여 앞으로만 나아갈 것입니다.

이제 새로운 입력 포인트를 어떻게 분류할 수 있습니까? 우리는 그것을 하기 위해 나무 아래로 이동해야 합니다. 탐색하는 동안 모든 노드에 도달할 때 데이터 포인트에 대한 질문을 계속 제기할 것입니다. 예를 들어 루트 노드에서 이 질문을 하면 대답은 오른쪽 또는 왼쪽으로 분기하도록 합니다. 일반적인 규칙은 질문이 참이면 조건에 있는 조건이 충족되면 왼쪽으로 분기해야 한다는 것입니다. 그것이 사실이 아니라면, 우리는 오른쪽으로 분기해야 합니다. 조건이 왼쪽 노드로 이동하면 입력 포인트를 할당해야 하는 클래스를 알 수 있습니다.

의사 결정 트리를 시연하는 방법과 관련하여 절대 잊지 말아야 할 몇 가지 사항이 있습니다. 의사 결정 트리를 탐색하는 동안 두 좌표 간에 교대해야 한다는 규칙이나 필요성은 없습니다. 우리는 하나의 기능이나 차원만 선택할 수 있습니다. 의사 결정 트리는 모든 차원의 데이터 세트와 함께 사용할 수 있음을 명심해야 합니다. 이 예에서는 2D 데이터를 사용했지만 이것이 의사 결정 트리가 2차원 데이터 세트만을 위한 것이라는 의미는 아닙니다.

확인: 이진 트리의 유형

Twenty Questions 콘테스트에 참여한 적이 있습니까? 의사 결정 트리가 작동하는 방식과 매우 유사합니다. 방법을 알아볼까요? Twenty Questions 게임의 궁극적인 목표는 질문에 대답하는 사람이 질문에 대답하는 동안 생각하고 있는 대상을 찾는 것입니다. 질문은 예 또는 아니오로만 대답할 수 있습니다.

게임을 진행하면서 게임이 끝나기 전에 정답에 도달하기 위해 어떤 특정 질문을 해야 하는지 이전 답변에서 알 수 있습니다. 의사 결정 트리는 더 관련성이 높은 질문을 하도록 안내하여 궁극적인 답변에 도달하는 데 도움이 되는 일련의 질문입니다.

음성 메일로 회사에서 말하고 싶은 사람에게 어떻게 안내했는지 기억하십니까? 먼저 전산화된 조수에게 말을 걸고 전화기의 일련의 버튼을 누르고 계정에 대한 몇 가지 세부 정보를 입력한 다음 처음에 대화하고 싶은 사람에게 연락합니다. 이것은 당신에게 번거로운 경험이 될 수 있지만 이것이 대부분의 회사에서 의사 결정 트리를 사용하여 고객이 올바른 부서에 도달하거나 적절한 사람과 대화할 수 있도록 하는 방법입니다. 또한 반드시 알아야 할 6가지 유형의 지도 학습을 읽으십시오 .

의사 결정 트리는 어떻게 작동합니까?

완벽한 의사 결정 트리를 만드는 방법에 대해 생각하고 계십니까? 앞에서 언급했듯이 의사 결정 트리는 분류 및 회귀 유형에 속하는 기계 학습 문제를 해결하는 데 사용되는 알고리즘 클래스입니다. 범주형 변수와 연속형 변수 모두에 사용할 수 있습니다.

이 알고리즘은 앞으로 나아갈 수 있는 간단한 방법을 가지고 있습니다. 데이터 세트 또는 샘플 데이터를 동일한 속성을 공유하는 함께 그룹화된 각 데이터 세트를 사용하여 다른 데이터 세트로 분할합니다. 의사 결정 트리는 분할, 가장 중요한 변수, 더 많은 세분화를 생성할 수 있는 최상의 결과 값을 식별하는 다양한 목적을 위해 여러 알고리즘을 사용합니다.

일반적으로 의사 결정 트리의 워크플로에는 데이터를 교육 및 테스트 데이터 세트로 나누고 알고리즘을 적용하고 모델 성능을 평가하는 작업이 포함됩니다. 아주 간단한 예를 들어 어떻게 작동하는지 이해합시다. 어떤 사람이 직업에 적합한지 여부를 확인하고 싶다고 가정해 봅시다. 이것은 나무의 뿌리가 될 것입니다.

이제 내부 노드를 구성할 트리의 기능 또는 속성으로 이동합니다. 이러한 속성을 기반으로 결정이 내려집니다. 트리의 가지가 형성됩니다. 여기서 또 다른 가정을 해보자. 직무에 적합하다고 판단되는 사람의 매개변수는 5년 이상의 경력입니다. 첫 번째 분할은 방금 설정한 이 매개변수에서 발생합니다.

추가 분할을 위해 더 많은 매개변수 세트가 필요합니다. 이러한 매개변수는 특정 연령 그룹에 속하는지 여부, 어느 정도 보유 여부 등에 관한 것일 수 있습니다. 결과는 뿌리와 가지를 제외한 나무의 잎으로 묘사됩니다. 잎은 결코 쪼개지지 않고 결정을 묘사합니다. 이 트리는 후보자가 해당 직무에 적합한지 여부를 결정하는 데 도움이 됩니다.

이미 언급했듯이 의사 결정 트리에는 문제를 해결할 수 있는 고유한 표현이 있습니다. 루트, 내부 노드, 가지 및 잎이 있으며 각각 특정 목적을 수행하거나 특정 작업을 수행합니다. 다음 단계는 트리 표현을 만드는 데 도움이 됩니다.

  1. 트리의 루트는 최상의 속성의 최적화된 버전을 특징으로 합니다.
  2. 적절한 속성을 사용하여 샘플 데이터를 하위 집합으로 분할합니다. 데이터의 새 하위 집합 또는 그룹이 동일한 속성에 대해 다른 값을 전달하지 않는지 확인합니다.
  3. 의사 결정 트리의 모든 분기에 대한 리프가 있을 때까지 위의 두 단계를 반복합니다.

분류 또는 회귀 트리(CART)

예를 들어 보겠습니다. 프로세스가 끝날 때 자격이 있는 후보자만 선택되도록 미리 정의된 속성을 기반으로 후보자를 분류하는 작업이 주어진다고 상상해 보십시오. 후보자를 선택하는 결정은 실시간 또는 가능한 이벤트에 따라 달라집니다. 우리에게 필요한 것은 분류를 위한 올바른 기준을 찾기 위한 의사 결정 트리입니다. 결과는 분류가 수행되는 방식에 따라 달라집니다.

우리 모두가 알고 있듯이 분류에는 두 단계가 포함됩니다. 첫 번째 단계는 샘플 데이터 세트에 무작위 모델을 구축하는 것입니다. 두 번째 단계에는 예측이 포함됩니다. 첫 번째 단계에서 훈련된 모델은 주어진 데이터에 대한 응답에 대한 예측을 수행하기 위해 구현됩니다.

이제 목표 변수가 실수이거나 연속 데이터에 대한 결정이 내려지는 특정 상황이 있습니다. 인건비를 기준으로 품목 가격을 예측하라는 요청을 받을 수 있습니다. 또는 이전 급여, 기술 세트, 경험 및 기타 관련 정보를 기반으로 후보자의 급여를 결정하도록 요청받을 수 있습니다.

이러한 상황에서 목표 값의 값은 실제 값 또는 연속 데이터 세트와 관련된 값이 될 것입니다. 우리는 이러한 문제를 해결하기 위해 회귀 버전의 의사 결정 트리를 사용할 것입니다. 이 트리는 객체의 특징에 대한 관찰을 고려하고 예측을 수행하고 절대적으로 의미가 있는 연속 출력을 제공하도록 모델을 훈련합니다.

이제 분류 및 회귀 결정 트리 간의 몇 가지 유사점과 차이점에 대해 이야기해 보겠습니다. 의사 결정 트리는 대상 변수가 본질적으로 범주형인 상황에서 분류 모델로 사용됩니다. 훈련 데이터 세트가 터미널 노드의 정점에서 바로 얻는 값은 우리가 그 특정 섹션에 대한 관찰 모드를 취할 때 받은 값과 같습니다. 트리의 해당 섹션에 새로운 관찰이 추가되면 모드 값으로 대체한 다음 예측을 수행합니다.

반면에 의사 결정 트리는 대상 변수가 연속 데이터 세트의 일부인 경우 회귀 모델로 사용됩니다. 분류 트리에 대해 논의한 동일한 지점에서 수신된 값은 회귀 트리와 관련하여 해당 섹션의 관측값의 평균값입니다.

몇 가지 유사점도 있습니다. 두 의사 결정 트리 모델은 재귀적 이진 접근 방식을 사용하고 독립 변수를 서로 겹치지 않고 명확한 영역으로 나눕니다. 이 두 트리에서 분할은 트리의 맨 위에서 시작되고 관측값은 한 영역에 있습니다. 이러한 관찰은 변수를 두 개의 분기로 나눕니다. 이 분할은 완전히 자란 나무에 자리를 내주는 연속적인 과정입니다.

읽기: 기계 학습 프로젝트 아이디어

CART 모델을 배우는 방법?

CART 모델을 생성하기 위해 수행해야 하는 몇 가지 중요한 사항이 있습니다. 여기에는 트리가 적절하게 구성되는 방식으로 입력 변수와 분할 지점 선택이 포함됩니다. 비용 함수를 줄이는 탐욕 알고리즘은 입력 변수와 나눗셈 포인트를 선택하는 데 사용됩니다.

트리의 수축은 사전에 정의된 정지 기준의 도움으로 종료됩니다. 중지 기준은 트리의 리프 노드에 할당된 훈련 인스턴스 수와 같은 모든 것을 언급할 수 있습니다.

1. Greedy algorithm : 이진 트리를 만들기 위해서는 입력 공간을 올바르게 분할해야 합니다. 재귀적 이진 분할은 이 목적에 사용되는 욕심 많은 알고리즘입니다. 서로 다른 값을 정렬하는 것과 관련된 수치적 방법입니다. 그런 다음 비용 함수를 사용하여 여러 분할 지점을 시도하고 테스트합니다. 최소 비용의 분할 지점이 선택됩니다. 이 방법은 입력 변수뿐만 아니라 모든 분할 지점을 평가하는 데 사용됩니다.

2. 트리 가지치기 : 기준을 중지하면 의사결정 트리의 성능이 향상됩니다. 더 잘 만들기 위해 학습 후 나무 가지 치기를 시도 할 수 있습니다. 의사 결정 트리의 분할 수를 보면 얼마나 복잡한지 알 수 있습니다. 누구나 다른 사람보다 단순한 나무를 선호합니다. 데이터를 과대적합하지 않으며 쉽게 해독할 수 있습니다.

나무를 가지치기하는 가장 좋은 방법은 모든 잎 노드를 살펴보고 제거하는 것이 나무에 어떤 영향을 미치는지 알아내는 것입니다. 리프 노드 제거는 이 작업이 비용 함수의 하락을 보증할 때 발생합니다. 더 이상 성능을 향상시킬 수 있는 방법이 없다고 생각되면 이 제거 프로세스를 중지할 수 있습니다. 사용할 수 있는 가지치기 방법은 다음과 같습니다.

3. 정지 기준 : 앞서 이야기한 욕심쟁이 분할 방식은 정지 명령이나 정지 조건을 갖추어야 정지할 때를 알 수 있다. 일반적인 기준은 모든 리프 노드에 할당된 인스턴스 수를 취하는 것입니다. 해당 수에 도달하면 분할이 발생하지 않고 해당 노드가 최종 노드로 간주됩니다.

예를 들어, 미리 정의된 중지 기준이 5개의 인스턴스로 언급된다고 가정해 보겠습니다. 이 숫자는 또한 훈련 데이터에 따른 트리의 정확성에 대해 많은 것을 말해줍니다. 너무 정확하거나 정확하면 과적합이 발생하여 성능이 저하됩니다.

의사 결정 트리에서 과적합을 피하는 방법은 무엇입니까?

대부분의 의사결정나무는 과적합에 노출됩니다. 이상적인 방식으로 데이터를 분류할 수 있는 의사결정 트리를 구축하거나 해당 부문에 대한 속성이 없는 상황이 발생할 수 있습니다. 이것은 테스트 데이터 세트와 잘 작동하지 않습니다. 그러나 훈련 데이터 세트에 적합합니다. 이 상황을 피하기 위해 언급할 두 가지 접근 방식 중 하나를 따를 수 있습니다.

나무가 너무 크면 가지치기를 하거나 과적합 상태에 도달하기 전에 성장을 멈출 수 있습니다. 대부분의 경우, 깊이, 레이어 수 및 기타 가질 수 있는 사항을 언급하는 머릿단의 성장을 제어하기 위해 정의된 제한이 있습니다. 트리가 훈련되어야 하는 데이터 세트는 테스트 데이터 세트와 훈련 데이터 세트로 나뉩니다. 이 두 데이터 세트는 훈련 데이터 세트를 기반으로 최대 깊이를 가지며 테스트 데이터 세트에 대해 테스트됩니다. 이 접근 방식과 함께 교차 검증을 사용할 수도 있습니다.

트리를 가지치기로 선택하면 원래 버전에 대해 트리의 정리된 버전을 테스트합니다. 테스트 데이터 세트에 대해 테스트할 때 가지치기된 트리가 버전보다 더 나은 경우 이 상황이 지속되는 한 트리에서 나뭇잎을 사용할 수 없습니다.

다음에 대해 자세히 알아보기: R의 의사 결정 트리

의사 결정 트리 접근 방식의 장점

  1. 연속 데이터 및 범주형 데이터와 함께 사용할 수 있습니다.
  2. 여러 출력을 제공할 수 있습니다.
  3. 정확한 결과를 해석할 수 있으며 나무의 신뢰성을 정량화하고 신뢰할 수 있습니다.
  4. 이 방법을 사용하면 데이터를 탐색하고 중요한 변수를 찾고 다양한 변수 간의 관계를 찾아 목표 변수를 강화하고 훨씬 짧은 시간에 새로운 기능을 구축할 수 있습니다.
  5. 다른 사람에게 이해하기 쉽고 설명하기 쉽습니다.
  6. 데이터 정리에 도움이 됩니다. 다른 방법에 비해 특정 시점 이후에 결측값 및 이상값의 영향이 없으므로 시간이 많이 걸리지 않습니다.
  7. 의사 결정 트리의 효율성과 성능은 기능 간의 비선형 관계에 영향을 받지 않습니다.
  8. 결측치 대체, 데이터 정규화 등이 필요하지 않으므로 데이터를 준비하는 데 많은 시간이 걸리지 않습니다.
  9. 비모수적 접근 방식입니다. 분류기의 설계 및 공간배치와는 무관

의사결정나무의 단점

  1. 일부 사용자는 자신의 취향에도 불구하고 너무 복잡한 의사 결정 트리를 작성할 수 있습니다. 이 트리는 단순한 트리처럼 데이터를 일반화하지 않습니다.
  2. 특정 클래스의 지배로 인해 편향된 트리가 생성되는 경우가 많습니다. 이것이 샘플 데이터를 사용하기 전에 균형을 맞추는 것이 매우 중요한 이유입니다.
  3. 때때로 이 나무는 너무 안정적이지 않습니다. 데이터 변형으로 인해 청구서에 맞지 않는 트리가 생성될 수 있습니다. 이 이상을 분산이라고 합니다. 부스팅과 배깅을 사용하여 처리할 수 있습니다.
  4. 욕심 많은 알고리즘으로 최상의 의사 결정 트리를 얻을 수는 없습니다. 이 문제를 해결하기 위해 여러 트리를 훈련할 수 있습니다.

결론

이 블로그는 학습자가 의사 결정 트리에 대해 알아야 할 모든 중요한 사항에 대해 설명합니다. 이 블로그를 읽고 나면 개념에 대해 더 잘 이해하게 될 것이며 실생활에서 더 잘 구현할 수 있을 것입니다.

기계 학습 및 AI에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제를 제공합니다. IIIT-B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

의사 결정 트리 알고리즘은 무엇에 사용됩니까?

지도 학습 알고리즘 제품군의 일부인 결정 트리는 가장 널리 사용되는 분류 알고리즘 중 하나입니다. 그 인기를 설명하는 것은 이해하기 쉽고 해석하기 쉽습니다. 의사 결정 트리는 과거 훈련 데이터에서 파생된 간단한 의사 결정 명령을 기반으로 대상 변수의 값을 예측할 수 있는 훈련 모델을 개발하는 데 사용할 수 있습니다. 결정 트리 알고리즘의 가장 좋은 점은 다른 지도 학습 알고리즘이 적용할 수 없는 분류 및 회귀 문제를 해결하는 데 효율적으로 사용할 수 있다는 것입니다. 대상 변수의 유형에 따라 다른 종류의 의사 결정 트리를 사용할 수 있습니다.

지도 학습 알고리즘 제품군의 일부인 결정 트리는 가장 널리 사용되는 분류 알고리즘 중 하나입니다. 그 인기를 설명하는 것은 이해하기 쉽고 해석하기 쉽습니다. 의사 결정 트리는 과거 훈련 데이터에서 파생된 간단한 의사 결정 명령을 기반으로 대상 변수의 값을 예측할 수 있는 훈련 모델을 개발하는 데 사용할 수 있습니다. 결정 트리 알고리즘의 가장 좋은 점은 다른 지도 학습 알고리즘이 적용할 수 없는 분류 및 회귀 문제를 해결하는 데 효율적으로 사용할 수 있다는 것입니다. 대상 변수의 유형에 따라 다른 종류의 의사 결정 트리를 사용할 수 있습니다.

AI에서 의사 결정 트리 알고리즘은 다양한 응용 프로그램과 함께 제공됩니다. 의사 결정 트리의 가장 흥미로운 응용 프로그램에는 과거 데이터를 기반으로 회사의 잠재적 성장 기회를 평가하는 것이 포함됩니다. 이를 위해 과거 판매 데이터는 의사 결정 트리가 추가 비즈니스 확장 및 성장을 위한 가능한 경로를 나타내는 데 도움이 될 수 있습니다. 의사 결정 트리는 인구 통계 정보를 사용하여 잠재 고객을 찾는 데에도 사용할 수 있습니다. 또한 금융 기관은 의사 결정 트리를 적용하여 대출에 대한 고객 및 채무 불이행자의 신용도를 평가하기 위한 예측 모델을 생성할 수도 있습니다.

인공 지능에는 어떤 다른 알고리즘이 사용됩니까?

인공 지능에 사용되는 알고리즘은 크게 회귀 알고리즘, 분류 알고리즘 및 클러스터링 알고리즘의 세 부분으로 분류할 수 있습니다. 분류 알고리즘은 특정 방식으로 데이터 세트를 분류하는 데 사용됩니다. 클러스터링 알고리즘은 특정 데이터 포인트 간의 차이점과 유사성을 찾기 위해 전체 데이터 세트에 적용됩니다. 많은 고객 그룹 중에서 같은 나이의 사람들을 가리킬 때 사용할 수 있습니다. 회귀 알고리즘은 입력 데이터에 따라 미래 결과를 예측하는 데 유용합니다. 예를 들어 회귀 알고리즘을 사용하여 날씨를 예측하는 모델을 설계할 수 있습니다.