[파이썬][머신러닝] 데이터 분석과 머신러닝 - Desicion Trees
Decision Tree
-
결정 트리라고도 불린다.
비용함수를 최소로 하는 특성과 그 값에 대한 옳고 그름의 답을 통해 데이터를 분할하는 알고리즘이다.
트리 구조
- node(노드)
- root(루트)
부모가 없는 노드로 최초의 노드이다.
- internal(내부)
단말 노드가 아닌 노드들을 의미한다. 대개는 중간에 존재한다.
- leaf(단말)
자식이 없는 노드로 ‘잎 노드’라고도 불린다.
- Parent(부모)
Sub-tree에서 상위에 위치해있는 노드이다. 자식이 존재하는 노드이다.
- Chile(자식)
Parent 노드 밑에 이어지는 노드로서 부모가 좋재하는 노드이다.
- Sibiling(형제)
같은 부모를 가지고 있는 노드이다.
- root(루트)
- edge(엣지)
노드와 노드를 연결하는 선을 의미한다.
장점
- 시각화가 가능하기에 해석이 직관적이다.
- EDA 과정이 많이 필요하지 않다.
- 상관관계를 트리의 분기과정에서 확인이 가능하다.
- Multi-output(다중 출력)이 가능하여, 다중 출력이 필요한 문제 해결이 가능하다.
단점
- 제약사항이 없는 유연한 모델이기에 과적합 가능성이 있다.
- 데이터 변동으로 다수의 트리가 생겨 불안정할 수 있다.
- 주어진 데이터에 대해서 분할하기에 분할된 근사치에 예측값 반환하기에 외삽이 어렵다.
종류
- Binary Tree
- 이진트리라고 불리우며, 트리의 가장 기본적인 형태이다.
- 각 노드가 최대 2개의 자식을 가지고 있다.
- 단, 모든 트리가 이진으로 이루어지지 않았다.
- 이진트리의 순회방식
- in-order traversal
중위 순회
왼쪽 가지 -> 현재 노드 -> 오른쪽 가지
- pre-order traversal
전위 순회
현재 노드 -> 왼쪽 가지 -> 오른쪽 가지
- post-order traversal
후위 순회
왼쪽 가지 -> 오른쪽 가지 -> 현재 노드
- in-order traversal
- Heap
- Min Heap
최소힙
- 트리의 마지막 단계에서 오른쪽을 뺀 나머지 부분이 가득 채워진 완전 이진트리
- 노드의 원소가 자식들의 원소보다 작다.
- 부모 노드가 자식 노드보다 크거나 같은 완전 이진트리
-
Max Heap
최대힙
- 원소가 내림차순으로 정렬되어 있다는 점
- 각 노드의 원소가 자식들보다 크다. 3. Trie
- Prefix Tree(접두사 트리)
- n차 트리의 다른 버젼이다.
- 각 노드에 문자를 저장하는 자료구조이다.
- 접두사를 빠르게 찾아보기 위한 방식중에 하나로, 모든 언어를 저장해 놓은 방식이다.
- 유효한 단어 집합을 이용하면 트라이를 통해 다수의 문제를 최적화할 수 있다.