랜덤포레스트(Random Forest) Start
BioinformaticsAndMe
랜덤포레스트(Random Forest)
: Random Forest는 오버피팅을 방지하기 위해, 최적의 기준 변수를 랜덤 선택하는 breiman(2001)이 제안한 머신러닝 기법
: Random Forest는 여러 개의 Decision tree(의사결정나무)를 만들고, 숲을 이룬다는 의미에서 Forest라 불림
*Random이란 의미는 숲에 심는 의사결정나무에 쓰이는 특성들을 랜덤하게 선택하기 때문
랜덤포레스트 장점(Advantage)
ㄱ) Classification(분류) 및 Regression(회귀) 문제에 모두 사용 가능
ㄴ) Missing value(결측치)를 다루기 쉬움
ㄷ) 대용량 데이터 처리에 효과적
ㄹ) 모델의 노이즈를 심화시키는 Overfitting(오버피팅) 문제를 회피하여, 모델 정확도를 향상시킴
ㅁ) Classification 모델에서 상대적으로 중요한 변수를 선정 및 Ranking 가능
랜덤포레스트 과정
1) Training set에서 표본 크기가 n인 bootstrap sampling 수행
*bootstrap sampling - Original sample 집단에서 더 작지만 무수히 많은 집단으로 랜덤하게 뽑는 방법
2) Bootstrap sample에 대해 Random Forest Tree 모형 제작
a) 전체 변수 중에서 m개 변수를 랜덤하게 선택
b) 최적의 classifier 선정
c) classifier에서 따라 두 개의 daughter node 생성
#아래 그림은 랜덤하게 선택된 유전자를 변수로 두고 재발환자를 가르는 랜덤포레스트 모델링 과정
#OOB(Out-Of-Bag): 학습된 랜덤포레스트 모델이 우수한지의 성능 지표
3) Tree들의 앙상블 학습 결과 출력
*앙상블 학습(ensemble learning): 큰 데이터를 수많은 작은 set으로 나눠 학습시킨 후, 각 학습 모델을 연결하여 성능 좋은 머신러닝 구축
랜덤포레스트 예제
: Example - R and Data Mining by Zhao
# R randomForest package 설치 및 로딩
install.package('randomForest')
library(randomForest)
#Reference
1) https://towardsdatascience.com/understanding-random-forest-58381e0602d2
2) https://wikidocs.net/34086
3) http://rstudio-pubs-static.s3.amazonaws.com/4944_b042d59e3b174ec395bf2a20eab939d3.html
4) https://www.edureka.co/blog/random-forest-classifier/
5) https://www.codingame.com/playgrounds/7163/machine-learning-with-java---part-6-random-forest
6) https://www.researchgate.net/figure/An-example-of-bootstrap-sampling-Since-objects-are-subsampled-with-replacement-some_fig2_322179244
7) https://www.biostars.org/p/86981/
8) https://thebook.io/006723/ch10/03/04/03/
랜덤포레스트(Random Forest) End
BioinformaticsAndMe
'Machine Learning' 카테고리의 다른 글
Feature selection vs Feature extraction (0) | 2019.10.29 |
---|---|
K-NN(최근접이웃) 알고리즘 (0) | 2019.10.23 |
[TensorFlow] Logistic Regression (0) | 2019.10.09 |
[TensorFlow] Linear Regression (0) | 2019.10.05 |
[TensorFlow] 기본 연산 (0) | 2019.10.04 |