이 게시글은 김성범 교수님의 유튜브 강의를 정리한 내용입니다.
내용과 사진의 각 출처는 김성범 교수님께 있음을 미리 알립니다.
해당 게시글 강의 영상: 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 |