일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ML
- Java
- bootstrapping
- 지니불순도
- 결정트리
- ml
- 디자인 패턴 #싱글톤
- 머신러닝 #ml #기본기
- 다항회귀
- 경쟁 조건
- 상호 배제
- JetBrains
- db
- 멀티 프로그래밍
- Mutual exclusion
- jdk #javac #jre #java standard library #javadoc #jar #java
- 머신러닝 #ml #선형대수학 #기본기
- featurescaling
- min-max
- Mutex lock
- cross_val_score
- Kotlin
- 에다 부스트
- 운영체제
- featureimportances
- 속성중요도
- gridsearch
- 머신러닝 #ml #미분 #기본기
- 코틀린
- 11049
- Today
- Total
코딩하는 오리
[ML] 결정 트리와 앙상블 기법 - 2. 랜덤 포레스트 (Random Forest) 본문
01. 결정 트리와 앙상블
결정 트리의 큰 단점
The Elements of Statistical Learning 책에서
'결정 트리는 이상적인 머신 러닝 모델이 되기 힘든 한 가지 특징을 갖는다. 바로 부정확성이다.'
성능이 안좋다..
하지만 결정 트리를 응용하면 성능이 좋은 다른 모델을 만들어낼 수 있다 !
앙상블(ensemble) : 여러 독립적인 객체들이 만들어내는 조화로운 단체
하나의 모델을 쓰는 대신, 수많은 모델들을 사용해 종합적인 판단을 하는 것
수많은 모델들을 만들고, 이 모델들의 예측을 합쳐서 종합적인 예측을 하는 기법
모델을 100개... 만든다 -> 각 모델의 결과를 종합해 최종 결과를 예측한다.
02. 랜덤 포레스트 1: Bagging
랜덤 포레스트 : 트리 모델들을 임의로(random) 많이 만들어서 다수결 투표로 결과를 종합하는 알고리즘
Bootstrapping : 갖고 있는 데이터 셋으로 다른 데이터 셋을 만들어내는 방법
Bootstrap 데이터 셋
왜 Bootstrap 데이터 셋을 사용하나 ? 모든 모델을 저확히 똑같은 데이터 셋으로 학습시키면 결과 다양성이 떨어질 수 있기 때문에 이를 방지하기 위해, 각 모델을 임의로 만들어준 Bootstrap 데이터 셋으로 학습시켜준다 ~
Bootstrap 데이터로 결정을 합치는 앙상블 기법을 Bagging이라 함
랜덤 포레스트는 bagging을 사용하는 여러 알고리즘 중 하나의 예시
04, 랜덤 포레스트 2 : 임의로 결정 트리 만들기
Bootstrap 데이터 셋에서 임의로 두 속성 선택하여 루트 노드를 결정(지니 불순도가 낮은 값 선택).
또 다른 임의 속성 2개 선택하여 다음 노드 결정..
결정 트리 임의로 만들기
bootstrapping을 사용해서 임의로 데이터 셋 만든다.
결정 트리를 만들 때 속성을 임의로 고르면서 만든다.
이를 반복하면 조금씩 다른 수많은 결정 트리를 만들 수 있다 ~
랜덤 포레스트에서는 최종 결과는 트리의 결과의 다수결로 결정한다 !
06. scikit-learn으로 랜덤 포레스트 쉽게 사용하기
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100, max_dept=4) : 결정 트리 몇개 만들지(default=10)
이후 학습 방법은 다른 모델과 동일
동일하게 결정 트리를 사용하기 때문에 속성 중요도 계산 가능
model.feature_importances_
'AI > ML' 카테고리의 다른 글
[ML] 머신 러닝, 더 빠르고 정확하게 - 1. 데이터 전처리 (0) | 2024.07.31 |
---|---|
[ML] 결정 트리와 앙상블 기법 - 03. 에다 부스트(Adaboost) (0) | 2024.07.31 |
[ML] 결정 트리와 앙상블 기법 - 1. 결정 트리(Decision Tree) (0) | 2024.07.30 |
[ML] 기본 지도 학습 알고리즘들 - 4. 로지스틱 회귀 (Logistic Regression) (0) | 2024.07.30 |
[ML] 기본 지도 학습 알고리즘들 - 3. 다항 회귀 (Polynomial Regression) (0) | 2024.07.30 |