티스토리 뷰
지금까지 Decision Tree, Random Forest를 살펴보았다. Extra Tree는 Random Forest와 살짝 다른 무작위성을 가지는 Tree이다. 혹시 Random Forest를 모른다면 밑에 링크를 보거나, 학습을 하고 오는 것을 추천한다.
https://sims-solve.tistory.com/92
1. Extra Tree ( Extremely Randomized Trees ) 란?
Extra Tree는 이름을 해석해보면 정체성이 들어나는 것을 볼 수 있다
Extremely Randomized Trees - 극단적으로 무작위화 된 트리들 ...
ET도 RF처럼 무작위성을 취한 후 Tree를 학습하고, Tree를 앙상블하는 방식으로 사용된다.
그럼 ET는 어느 부분에서 RF와 다른 랜덤성을 추가하였을까?
2. 어디서 어떻게 Random을 주었나?
Extra Tree는 Split할때 Random성을 추가하였다. DT와 RF를 잘 생각해보자.
1. DT는 총 feature중, 가장 best인 부분을 찾아 지속적으로 split 한다.
2. RF는 랜덤으로 선택된 feature중, 가장 best인 부분을 찾아 지속적으로 split 한다.
여기서 feature만 보았을때, DT와 RF의 차이점은 DT는 모든 feature를 고려하지만, RF는 랜덤으로 선택된 feature만 고려한다. 그 이후 가장 IG이 높은 지점을 찾아 split하는 방식은 둘다 똑같다.
즉, 주어진 feature중 가장 best split 부분을 DT,RF는 수행하게 된다.
하지만, ET는 '주어진 feature중 Random split'을 하게된다..!! 여기서 랜덤성을 주어 보다 더 트리 형태를 다르게 구성하여 앙상블 하는 방식으로 구성된다.
예제를 한번 살펴보도록 하자.
이와같은 데이터 셋을 ET로 구성하게 되면 [사진 1]과 같은 Tree를 얻는 것을 볼 수 있다.
뭔가 이상하지 않은가? 밑에 [사진 2]를 한번 보자
sepal length와 sepal width를 살펴보면, 빨간색줄이 각 피쳐의 best 지점일 것이다. 만약, DT나 RF였으면, [사진 1] Root node는 sepal width의 2.7 or 3.35의 값이 나왔을 것이다.
하지만 ET를 사용했을땐 ???? sepal width의 2.826이 나왔다! 즉, IG값을 가장 크게 만들 수 있는 지점이 아닌, 정말 랜덤으로 선택하여 split을 진행한 것이다. 이점이 ET에서 더 Random를 추가한 점이다.
그런데 어떻게 2.826이란 값이 나왔을까? 모른다. 단순히 2.8과 2.9 중간지점 중 하나의 값을 선택한 것일뿐...
(RF와 DT는 평균으로 나왔는데...)
2. Extra Tree의 특징
Extra Tree(ET)의 장단점을 말하기 전에, RF와 다른 특징을 한번 말해보고자 한다.
ET는 RF와 정말 비슷하지만 몇가지 차이점이 존재한다.
1. Split Random ( RF - Split best)
2. Bootstrap X ( RF - Bootstratp O)
이정도의 차이가 존재한다.
첫번째 차이점은 위에서 말했으니 넘어가도록 하자.
두번째 차이점은 Bootstrap을 사용하지 않는다는 것이다. ET는 모든 데이터를 사용하여 학습한다.
(단, Feature는 랜덤으로 n개씩를 고려하여 random split을 진행한다. == RF와 같음)
하지만, sklearn에서 bootstrap의 default가 False일뿐, True로 바꿔주면 사용 가능하다!
3. Extra Tree의 장점
그럼 장점은 무엇일까? 주요 장점은 편향(bias)의 감소이다. Extra Tree특징 2번째에서 Bootstrap을 사용하지 않는다고 한부분이 장점으로 작용한다.
모든 데이터를 사용하게되면, 상대적으로 복원추출한 데이터셋의 Tree보다 정답에 가깝게 맞출 수 있기에 bias(편향)은 줄어든다.
또, 랜덤으로 feature를 선택하여 random하게 split하기에 분산(Variation) 또한 줄일 수 있다.
게다가 앙상블(Voting, mean)까지 진행하니 오버피팅을 막을 수 있다는 점이다.(RF와 동일)
4. Extra Tree parameters
그럼 ET의 파라미터를 한번 살펴보고 넘어가보겠다.
n_estimators
criterion
max_depth
min_samples_split
min_samples_leaf
min_weight_fraction_leaf
max_features
max_leaf_nodes
min_impurity_decrease
bootstrap
oob_score
n_jobs
random_state
verbose
warm_start
class_weight
ccp_alpha
max_samples
어디서 많이 본것같은 파라미터들이다......???? 맞다! Random Forest와 완전히 동일한 파라미터 구성이다.
Random Forest와 완전히 동일하기 때문에 설명은 써놓지 않겠다.
여기서 다른 점은 Bootstrap의 default가 False라는 점!
사실 DT와 RF를 알고 있는 상태에서 ET를 보면 금방 이해할 수 있다. 단순히 Random성을 split하는 부분까지 확장 시킨것! 그러니 만약 ET가 이해가지 않는다면 RF를.. RF를 이해하지 않는다면 DT를 다시한번 살펴보길 바란다.
'머신러닝' 카테고리의 다른 글
[ML] AdaBoosting 정리 (0) | 2023.03.05 |
---|---|
[ML] Decision Tree vs Random Forest vs Extra Tree 표 비교 (0) | 2023.02.28 |
[ML] Random Forest - 정리 (0) | 2023.02.28 |
[ML] 의사결정트리(Decision Tree) - Pruning(가지치기) (0) | 2023.02.26 |
[ML] 의사결정트리(Decision Tree) - Regression 손으로 구하기 (0) | 2023.02.25 |
- Total
- Today
- Yesterday
- 백준
- 딥러닝
- GNN
- CNN
- 어탠션
- python
- 깃
- c3k2
- Tree
- YOLO
- 티스토리챌린지
- 알고리즘
- 정리
- 오블완
- 오류
- GIT
- java
- docker
- 도커
- YOLOv8
- 초보자
- 디텍션
- 욜로
- 뜯어보기
- V11
- 자바
- DeepLearning
- github
- 이미지
- yolov11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |