일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Machine Learning
- PCA
- 티스토리챌린지
- GPT-4
- 해커톤
- 회귀
- gpt
- 머신러닝
- LG
- LG Aimers
- regression
- supervised learning
- Classification
- 오블완
- OpenAI
- 지도학습
- AI
- ChatGPT
- LLM
- deep learning
- LG Aimers 4th
- 분류
- 딥러닝
- Today
- Total
SYDev
Chapter 05-3: 트리의 앙상블 본문
앙상블 학습이 무엇인지 이해하고,
다양한 앙상블 학습 알고리즘을 실습을 통해 알아보자.
정형 데이터와 비정형 데이터
- 정형 데이터(structured data): 구조화된 데이터로, 미리 정해진 구조에 따라 저장된 데이터이다. 엑셀의 스프레드 시트, csv나 데이터베이스의 테이블이 이에 속한다.
- 반정형 데이터(semi-structured data): 구조에 따라 저장된 데이터지만, 정형 데이터와 달리 구조에 대한 설명이 내부에 존재한다. 보통 파일 형태로 저장되고, HTML, XML, JSON 문서나 웹 로그, 센서 데이터 등이 이에 속한다.
- 비정형 데이터(unstructured data): 정해진 구조가 없이 저장된 데이터이다. 책의 글과 같은 텍스트 데이터, 디지털 카메라로 찍은 사진, 디지털 음악 등이 이에 속한다.
앙상블 학습
- 앙상블 학습(ensemble learning): 여러 개의 분류기를 생성하고, 그 예측을 결합하여 보다 정확한 예측을 도출하는 기법으로, 강력한 하나의 모델을 사용하는 대신 약한 모델 여러 개를 조합하는 방식이다.
- 정형 데이터를 다룰 때, 가장 뛰어난 성능을 보이는 알고리즘이다.
- 앙상블 학습은 보팅, 배깅, 부스팅의 세 가지 유형으로 나눌 수 있다.
보팅
- 보팅(Voting): 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식
- 서로 다른 알고리즘 여러 개를 결합하여 사용
- 하드 보팅(Hard Voting): 다수의 분류기가 예측한 결과값이 최종 결과
- 소프트 보팅(Soft Voting): 모든 분류기가 예측한 값의 결정 확률 평균을 구한 뒤 가장 확률 높은 레이블 값이 최종 결과
배깅
- 배깅(Bootstrap AGGregatING; Bagging): 데이터 샘플링(Bootstrap)을 통해 모델을 학습시키고 결과를 집계(Aggregating)하는 방식
- 부트스트랩(Bootstrap): 데이터셋의 샘플링 방식으로, 복원 추출을 허용하여(중복을 허용) 원 데이터 수만큼 뽑아낸 데이터셋 샘플링 방식
- 모두 같은 유형의 알고리즘 기반의 분류기를 사용
부스팅
- 부스팅(Boosting): 여러 개의 분류기가 순차적으로 학습을 수행
- 이전 분류기의 예측이 틀린 데이터를 다음 분류기가 학습함으로써, 순차적으로 예측 정확도를 높여나가는 방식이다.
랜덤 포레스트
- 랜덤 포레스트(Random Forest): 배깅의 일종으로, 여러 개의 결정 트리 모델을 활용해 최종 예측을 만드는 방식이다.
- 배깅의 일종이기 때문에, 부트스트랩 샘플을 활용한다.
- Random Subspace: 결정 트리에서 원래는 모든 경우의 수를 고려하여 node의 분기를 나누는데, 랜덤 포레스트에서는 random하게 일부 특성을 선택하여 분기하는 결정 트리를 활용하며 이를 random subspace 방식이라 한다.
- random subspace 방식으로 개별 base 모델이 서로 독립적인 관계에 놓이고, 이로 인해서 랜덤 포레스트 모델의 성능이 향상된다.
- OOB(ouf of bag) 샘플: 부트스트랩 샘플을 만들 때, 이에 포함되지 않고 남는 샘플이며, 부트스트랩 샘플로 훈련한 결정 트리를 평가할 때 사용한다.
0.9973541965122431 0.8905151032797809
[0.23167441 0.50039841 0.26792718]
- cross_validate()의 매개변수 return_train_score를 True로 설정하면, 검증 점수뿐만 아니라 훈련 세트에 대한 점수도 같이 반환한다.
- RandomForest가 특성의 일부를 랜덤하게 선택하여 결정 트리를 훈련하기 때문에, 하나의 특성에 과도하게 집중하지 않고 더 많은 특성이 훈련에 기여할 기회를 얻는다. -> 과대적합의 해소
0.8934000384837406
- OOB 점수를 사용하면, 교차 검증을 대신할 수 있어서 결과적으로 훈련 세트에 더 많은 샘플을 사용할 수 있다.
엑스트라 트리
- 엑스트라 트리(Extra Tree): 랜덤 포레스트와 매우 비슷하게 동작하나, 랜덤 포레스트와 달리 결정 트리를 학습할 때 부트스트랩 샘플이 아닌 전체 훈련 세트를 사용한다는 차이점이 있다.
- 랜덤 포레스트와 마찬가지로, 무작위로 일부 특성을 결정해서 분기를 한다. 하지만 엑스트라 트리는 랜덤 포레스트와 달리 최적의 분할 기준을 찾는 것이 아닌 임계값(분할 기준)을 정하는 데에도 무작위성을 주입한다.
- 랜덤하게 노드를 분할하기 때문에 계산 속도가 빠르다는 장점이 있다.
0.9974503966084433 0.8887848893166506
[0.20183568 0.52242907 0.27573525]
그레이디언트 부스팅
- 그레이디언트 부스팅(Gradient Boosting): 앙상블 학습 부스팅의 일종으로서, gradient discent와 유사하게 결정 트리를 점진적으로 적용하여 최적의 모델을 찾아가는 방식이다.
- 이전 예측기가 만든 잔여 오차(Residual Error)에 새로운 예측기를 학습시킨다.
0.8881086892152563 0.8720430147331015
0.9464595437171814 0.8780082549788999
[0.15872278 0.68010884 0.16116839]
- 학습률이 클수록 과대적합을 억제한다.
- 매개변수 subsample이 1보다 작으면 훈련 세트 전체가 아닌 일부를 사용한다. -> 일부 샘플을 랜덤하게 선택하는 확률적 , 미니배치 경사 하강법과 유사
- gradient boosting이 random forest보다 일반적으로 성능이 좋지만, 순서대로 트리를 추가하기 때문에 훈련 속도가 느리다
히스토그램 기반 그레이디언트 부스팅
- 히스토그램(histogram): 표로 되어있는 도수 분포를 그림으로 나타낸 것이다.
- 히스토그램 기반 그레이디언트 부스팅(Histogram-based Gradient Boosting): 입력 특성을 256개로 나누어 노드를 분할할 때 최적의 분할을 빠르게 찾을 수 있는 gradient boostin
0.9321723946453317 0.8801241948619236
[0.08876275 0.23438522 0.08027708]
[0.05969231 0.20238462 0.049 ]
0.8723076923076923
- n_repeats: 특성을 랜덤하게 섞을 횟수
- 사이킷런 이외에도 histogram-based gradient boosting을 구현하는 라이브러리가 더 있다.
XGBoost, LightGBM
0.9555033709953124 0.8799326275264677
0.935828414851749 0.8801251203079884
참고자료
- 박해선, <혼자 공부하는 머신러닝+딥러닝>, 한빛미디어(주), 2022.2.4
- https://computer-science-student.tistory.com/471
데이터 종류 - 정형 데이터, 반정형 데이터, 비정형 데이터
데이터 종류 일반적으로 데이터는 형태에 따라 정형 데이터, 반정형 데이터, 비정형 데이터로 분류할 수 있다. 정형 데이터(Structured Data) 정형 데이터는 구조화된 데이터, 즉 미리 정해진 구조에
computer-science-student.tistory.com
머신러닝 앙상블(Ensemble) 학습 – DINNO PARTNERS
1. 앙상블 학습이란? 앙상블 학습(Ensemble Learning)은 여러 개의 분류기를 생성하고, 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법을 말합니다. 강력한 하나의 모델을 사용하는대신 보
www.dinnopartners.com
[ML] 랜덤 포레스트(Random Forest) 모델 - ( 배깅 , 부트스트랩 , random subspace)
랜덤포레스트(Random Forest)는 앙상블 중 배깅의 대표적인 방법으로, Decision Tree에서의 overfitting의 위험을 줄일 수 있는 해결 방안으로 알려졌다. 그렇다면 먼저 앙상블은 무엇이고, 배깅은 무엇인
fish-tank.tistory.com
[인공지능][개념&실습] 트리의 앙상블(Ensemble)[2] - 엑스트라 트리(Random Forest)와 (+ 히스토그램 기반
결정 트리(Decision Tree)와 앙상블(Ensemble)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] 분류(Classification) - 결정 트리(Decisioin Tree)와 가지치기(Pruning) : https:
itstory1592.tistory.com
7-5. 부스팅(Boosting) - 그레이디언트 부스팅(Gradient Boosting)
출처 : docs.paperspace.com/machine-learning/wiki/gradient-boosting 그레이디언트 부스팅(Gradient Boosting)이란 이전 예측기가 만든 잔여 오차(Residual Error)에 새로운 예측기를 학습시키는 기법이다. X = 2*np.random.rand
humankind.tistory.com
히스토그램 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 디지털 이미지 프로세싱에서 사용하는 히스토그램에 대해서는 컬러 히스토그램 문서를 참고하십시오. 히스토그램(histogram)은 표로 되어 있는 도수 분포를 정보
ko.wikipedia.org
'KHUDA 4th > 머신러닝 기초 세션' 카테고리의 다른 글
Chapter 06-1,2: 군집 알고리즘 (0) | 2023.08.28 |
---|---|
[KHUDA 4th] 머신러닝 4주차 기초 세션 (08.16) (0) | 2023.08.25 |
Chapter 05-2: 교차 검증과 그리드 서치 (1) | 2023.08.22 |
Chapter 05-1: 결정 트리 (0) | 2023.08.22 |
[KHUDA 4th] 머신러닝 3주차 기초 세션 (08.16) (1) | 2023.08.19 |