RandomForest
기계 학습에서 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로 훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 평균 예측치(회귀분석)를 출력함으로써 동작한다.
RanDomForest는 DecisionTree(의사 결정 트리)가 여러 개 모여서 Forest를 이룬 듯한 구조를 가지고 있다.
만일 feature가 9개라면, Random Forest에서 3개의 Tree에 각각 3개의 feature를 쪼개어 할당한다.
간단히 말해 2개의 Tree가 dead라고 예측하였으니, 심슨은 dead라고 예측될 것이다.
- 집단 학습을 기반으로 고정밀 분류, 회귀, 클러스터링 구현
- 학습 데이터로 다수의 의사결정 트리를 만들고 그 결과의 다수결로 결과 유도
랜덤포레스트를 이해하기 위해서는 먼저, Decision Tree를 이해해야함.
Decision Tree(결정 트리)
👉🏻 프로세스
먼터 데이터를 가장 잘 구분할 수 있는 질문을 기준으로 나누기
나눈 각 범주에서 또 다시 데이터를 가장 잘 구분할 수 있는 질문을 기준으로 나눔
이를 너무 지나치게 하면 아래와 같이 오버피팅 발생
(결정 트리에 아무 파라미터를 주지 않고 모델링하면 오버피팅 발생)
💡 가지치기(Pruning)
- 트리에 가지가 너무 많으면 오버피팅
- min_sample_split=10
한 노드가 분할하기 위한 최소 데이터수를 제한
- max_depth=4
max_depth를 통해서 최대 깊이를 지정, 깊이가 4보다 크게 가지를 치지 않음
👉🏻 알고리즘
불순도(Impurity)
• 해당 범주 안에 서로 다른 데이터가 얼마나 섞여 있는지를 뜻함
• 한 범주에 하나의 데이터만 있다면 불순도가 최고(순도 최대)
• 한 범주 안에 서로 다른 두 데이터가 정확히 반반 있다면 불순도가 최대(순도 최소)
• 결정 트리는 불순도를 최소화(혹은 순도 최대화)하는 방향으로 학습 진행
엔트로피(Entropy)
• 불순도(Impurity)를 수치적으로 나타낸 척도
• 엔트로피가 높다는 것은 불순도가 높다는 뜻(1이 최대)
import math
P_slow = 0.5
P_fast = 0.5
entropy = - P_slow * math.log(P_slow, 2) - P_fast * math.log(P_fast, 2)
entropy
출처
https://essim92.tistory.com/m/54
랜덤 포레스트
랜덤 포레스트 - Random Forest 집단 학습을 기반으로 고정밀 분류, 회귀, 클러스트링 구현 학습 데이터로 다수의 의사결정 트리를 만들고 그 결과의 다수결로 결과 유도로 높은 정밀도 무작위 샘플
essim92.tistory.com
https://ko.wikipedia.org/wiki/%EB%9E%9C%EB%8D%A4_%ED%8F%AC%EB%A0%88%EC%8A%A4%ED%8A%B8
랜덤 포레스트 - 위키백과, 우리 모두의 백과사전
기계 학습에서의 랜덤 포레스트(영어: random forest)는 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 부류(분류) 또는 평균 예측치(
ko.wikipedia.org
https://nittaku.tistory.com/286
7. 머신러닝 알고리즘 : 어떤 머신러닝 classifier를 써야할까? validation은 어떻게 할까?
캡쳐 사진 및 글작성에 대한 도움 출저 : 유튜브 - 허민석님 먼저, feature는 2개로 간소화시켜서 설명한다.( 2개일 경우만 시각화가 가능) label(target)은 0(dead과 1(Survived)가 있다고 가정한다. 이 때
nittaku.tistory.com