이 게시글은 김성범 교수님의 유튜브 강의를 정리한 내용입니다.
내용과 사진의 각 출처는 김성범 교수님께 있음을 미리 알립니다.
해당 게시글 강의 영상: https://www.youtube.com/watch?v=lIT5-piVtRw&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=21
[핵심 머신러닝] 랜덤포레스트 모델
지난시간 의사결정나무에 대해서 살펴보면서 개별트리에는 단점이 존재한다는 사실을 알았다.
랜덤 포레스트 배경 - 앙상블
- 여러 base 모델들의 예측을 다수결 법칙 또는 평균을 이용해 통합하여 예측 정확성을 향상시키는 방법
- 다음 조건을 만족할 때 앙상블 모델은 Base 모델보다 우수한 성능을 보여준다.
- Base 모델들이 서로 독립적
- Base 모델들이 무작위 예측을 수행하는 모델보다 성능이 좋은 경우
대충해도 0.5 가 나오면 무작위 예측이라고 한다.
무작위 예측보다 좋은 경우가 나올 때를 해야함
앙상블 모델의 오류율
앙상블의 효과는 왼쪼겡서 나타남
베이스모델로서 의사결정나무를 사용하자! (앙상블!)
비모수적 모델!
랜덤 포레스트 개요
- 다수의 의사결정나무모델에 의한 예측을 종합하는 앙상블 방법
- 일반적으로 하나의 의사결정나무모델보다 높은 예측 정확성을 보여줌
- 관측치 수에 비해 변수의 수가 많은 고차원 데이터에서 중요 변수 선택 기법으로 널리 활용됨
- Bagging!
- Random subspace
가장 중요한 키워드임!!
Bagging
Bootstrapping
복원 추출 (뽑은 것을 다시 또 뽑는 것 허용) + 원래 수 만큼의 데이터를 샘플링하는 기법
복원 추출을 해나감
같은 변수가 두 세번 나올 수 있음. 선택이 안될 수 있다.
주의할 것: 원래 데이터가 10개가 있다면 10개씩 진행을 해야한다.
이론적으론 한 개체가 한번도 선택되지 않을 확률이 0.368정도이다.
Result Aggregating
1. Bagging
0에 해당하는 training accuracy 값들
1번클래스도 똑같이 해당되는 트레인 어큐러시를 더하면서 값을 더해줄 수 있다.
세번째에 해당하는 y가 1일 확률로 계산해보자는 것
Bagging Algorithm
2. Random Subspace
베이스 모델이 서로 독립적이여야함
개별 모델을 만들 때 랜덤하게 만들어야함
![]() |
1. 원래 변수들 중에서 모델 구축에 쓰일 입력 변수를 무작위로 선택 |
![]() |
2. 선택된 입력 변수 중에 분할될 변수를 선택 |
![]() |
3. 이러한 과정을 full-grown tree가 될 때까지 반복 |
랜덤하게 찾았다..
모든 변수를 사용하지 않았고 임의의 데이터만을 사용하였다.
이런식으로 이어나감
랜덤 포레스트 - Generalization Error
랜덤 포레스트 - 중요변수 선택
의사결정나무를 기반으로 하고있기 때문에 순수한 비모수적 모델이다.
그럼에도 불구하고 변수의 중요도를 결정할 수 있다.
1. OOB
내 가방에 없는 데이터
붓스트랩에 포함되지 않은 것은 테스팅에 사용하자!
i번째 중요변수의 Xi의 중요도를 산출해보자.
![]() |
붓스트랩셋에서 선택되지 않은 것들을 테스팅으로 OOB error로 계산한다. rt개의 OOB 에러가 생성됨 우리가 관심있는 i변수가 가진 값들을 바꾼다. |
![]() |
r은 원래 데이터에서 OOB만 계산한 것 e는 뒤섞은 값들에 대한 OOB error 일반적으로는 e의 OOB error 값이 더 클것이라고 함 따라서 ![]() e-r로 계산 차이가 크다는 것: 해당 변수가 다른 값으로 변경 되었을 때 에러가 크다. (성능이 안좋아질 것이다.) |
![]() |
차이의 분산을 구한다. |
![]() |
랜덤포레스트는 중요도를 구하여 변수를 선택할 수 있다. |
랜덤 포레스트 - 하이퍼 파라미터
여기서 B는 부스트랩
regression은 개별모델로부터 나온 것들의 평균을 취함
'공부정리 > Deep learnig & Machine learning' 카테고리의 다른 글
[핵심 머신러닝] 뉴럴네트워크모델 2 (Backpropagation 알고리즘) (0) | 2022.08.12 |
---|---|
[핵심 머신러닝]뉴럴네트워크모델 1 (구조, 비용함수, 경사하강법) (0) | 2022.08.12 |
[핵심 머신러닝] 의사결정나무모델 2 (분류나무, Information Gain) (0) | 2022.08.11 |
[핵심 머신러닝] 의사결정나무모델 1 (모델개요, 예측나무) - 강의 정리 (0) | 2022.08.11 |
[머신러닝]Feature Selection (0) | 2022.08.08 |