본문 바로가기

개발/Deep Learning

[머신러닝] 사이킷런(sklearn)의 DecisionTreeClassifier(결정트리분류기)이란?

DecisionTreeClassifier
Decision Tree Clasifier — dataset example

 

1. 정의

결정 트리 분류기 는 분류 문제에 사용되는 간단한 기계 학습 모델이다. 분류에 사용되는 가장 간단한 기계 학습 모델 중 하나이지만 제대로 수행되고 우수한 교육 데이터가 있으면 일부 작업을 해결하는 데 매우 효과적일 수 있다. 

 

 

Decision Tree Classification

A Decision Tree is a simple representation for classifying examples. It is a Supervised Machine Learning where the data is continuously…

medium.com

 

 

The Basics: Decision Tree Classifiers

An intuition for how decision trees work and are built

towardsdatascience.com

 

 

Decision Tree Classifiers Explained

Decision Tree Classifier is a simple Machine Learning model that is used in classification problems. It is one of the simplest Machine…

medium.com

 

2. 작동 원리

의사 결정 트리 분류기는 모델을 구축하고 올바른 출력과 일치하는 교육 데이터를 제공한 다음 모델이 이러한 패턴에서 학습 하도록 하는 일종의 지도 머신 러닝 이다. 그런 다음 모델에 이전에 본 적이 없는 새 데이터를 제공하여 성능을 확인할 수 있다. 그리고 우리는 Decision Tree Clasifier에 대해 정확히 무엇을 훈련해야 하는지 알아야 하기 때문에 Decision Tree Clasifier가 정확히 무엇인지 보자.

Decision Tree 는 3가지 유형의 구성 요소로 구성된다.

  • Nodes — 특정 속성 값에 대한 결정("50세 이상입니까?", "연봉이 $2000 이상입니까?")
  • Edges — 에지는 실제로 노드("예", "아니오")의 응답 중 하나이며 다음 노드에 대한 연결을 구축합니다.
  • Leaf Nodes — Decision Tree의 결과에 대한 출구 지점 — 예를 들어, 우리의 경우 "예" 및 "아니오" Leaf Node가 여러 개 있을 수 있습니다. 교통 체증이 있거나 없을 것입니다.

 

3. 예시 1

Decision Tree Classifier — Decision Tree example

 

따라서 Decision Tree에서 값을 예측한다는 것은 최상위(루트 노드)에서 시작하여 각 노드에 특정한 질문을 하는 것을 의미합니다. 그런 다음 노드 응답에 따라 올바른 분기를 선택하고, 리프 노드에 도달할 때까지 계속해서 결정을 찾는다.

많은 if-else 문처럼 보인다. Machine Learning은 어디에?

지금쯤 당신이 이 관찰에 도달했다면 축하한다. 이것은 좋은 직관이다. Machine Learning의 이 알고리즘의 핵심은 이 Decision Tree를 구축하는 가장 좋은 방법을 찾는 것이므로 실제 생활에서 새로운 데이터를 볼 때 올바른 Decision(올바른 Leaf Nodes)에 도달하는 방법을 알 수 있다.

(1) 첫 번째 단계는 루트 노드를 선택하는 것이다. 즉, 가장 큰 정보를 얻는 데 도움이 되는 기능을 선택하거나 답을 얻기 위해 취할 수 있는 가장 큰 도약을 선택하는 것이다. 이는 Dataset의 모든 기능을 가져와서 해당 기능의 값으로 Dataset를 분할하고 각 기능에 대한 트리의 정확도를 관찰하여 수행된다. 그런 다음 가장 정확한 기능을 선택하고 트리 루트로 설정한다.

이것은 우리 데이터세트에 묻는 것과 같다. 하나의 기능만 사용할 수 있다면 다른 모든 기능과의 관계에서 가장 정확한 정보를 얻는 데 도움이 될 수 있는 기능은 무엇인가?

그런 다음 이 프로세스를 해당 루트 노드의 모든 분기에 재귀적으로 적용하기만 하면 됩니다. 그런 다음 결과 노드의 모든 분기 등으로 가져온다. 기본적으로 모든 하위 트리를 완전히 새로운 트리로 고려하고 가능한 한 많은 정확도를 얻기 위해 최선을 다하는 것과 같다.

일반적으로 이 재귀 프로세스를 중지하는 데는 두 가지 기준이 있다.

  • 노드는 정직하다. 즉, 이 노드에 대한 데이터 세트의 모든 해당 라인은 대상 변수에 대해 동일한 출력을 가진다. 따라서 여기에 데이터 세트 항목이 동일한 결론에 도달하기 때문에 이 노드를 더 나눌 필요가 없다. 따라서 이 노드를 Leaf Nodes로 표시한다.
  • 레벨이 너무 많아 트리가 너무 복잡해진다. 나무에 대한 최대 레벨을 설정하는 것은 You에게 달려 있으며 이 결정은 실험을 기반으로 이루어져야 한다.

 

 

※ 위 포스팅은 medium의 Afroz Chakure 저자의 포스팅을 번역한 것이며, 개인적인 공부 차원의 포스팅입니다.