Menu
CoddyTech

결정 트리

Coddy의 머신 러닝 입문 코스 레슨. 19개 중 17번째.

결정 트리(Decision Tree)는 분류와 회귀 작업 모두에 사용되는 비선형 모델입니다. 다른 알고리즘보다 인간의 의사 결정 과정을 더 밀접하게 반영하므로, 복잡한 데이터셋을 처리하는 데 직관적이면서도 강력합니다. 핵심적으로, 결정 트리는 일련의 단순한 규칙을 사용하여 데이터를 하위 집합으로 분할하는데, 이는 데이터 포인트의 특성에 대해 일련의 예/아니오 질문을 던지는 것과 비슷합니다.
 

출처: 위키백과

결정 트리를 다음과 같은 트리 모양의 그래프로 시각화해 보세요:

  • 각 내부 노드(internal node)는 속성에 대한 "테스트"를 나타냅니다 (예: 동전 던지기가 앞면인지 뒷면인지 여부). 
  • 각 가지(branch)는 테스트의 결과를 나타냅니다.
  • 각 잎 노드(leaf node)는 클래스 레이블(모든 속성을 계산한 후 내린 결정)을 나타냅니다.

결정 트리의 유형:

  • 분류 트리(Classification Trees): 예측된 결과가 데이터가 속한 클래스일 때 사용됩니다.
  • 회귀 트리(Regression Trees): 예측된 결과가 실수(예: 주택 가격)로 간주될 수 있을 때 사용됩니다.


 

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

중급

다음과 같은 형식의 규칙 목록을 받는 decide_outcome이라는 이름의 함수를 만드세요:

rules = {
	rule1: {"type": "bigger", "value": 5},
	rule2: {"type": "smaller", "value": 7},

}

그리고 결과의 충족 여부에 따라 다음에 진행할 규칙을 정의한 데이터를 받습니다:

outcome = {
	"rule1": {True: "rule2", False: "rule3"},
	"rule2": {True: "rule3", False: "rule4"},
	"rule3": {True: None, False: None}
	"rule4": {True: None, False: None}

}
data_point = {
	"rule1": 8,
	"rule2": 10,
}

출력값은 rule4가 되어야 합니다.

  • 8 is bigger than 5 (True) → "rule1": {True: "rule2", False: "rule3"},에 의해 rule2로 이동합니다.
  • 10 is smaller than 7 (False) → "rule2": {True: "rule3", False: "rule4"},에 의해 rule4로 이동합니다.
  • 더 이상 진행할 방법이 없으므로 출력값은 rule4입니다.

항상 <strong>rule1</strong>에서 시작하세요.

직접 해보기

def decide_outcome(rules, outcome, point):
    current_rule = "rule1"
    # 여기에 코드를 작성하세요

머신 러닝 입문의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러