머신러닝 개념 정리) 랜덤 포레스트, 유의 확률, 카이제곱 통계량, F 통계량

2025. 11. 28. 21:28·Python/머신러닝

랜덤 포레스트란?

랜덤 포레스트는 무작위(Random)와 숲(Tree) 개념이 결합된 앙상블 학습 모델이다.

이때 앙상블은 여러 개의 개별 모델을 결합하여 더 강한 예측 모델을 만드는 방법이다.

여기서는 다수의 결정트리를 학습시켜 결과를 합쳤다.

이때 각 트리에 무작위의 샘플과 무작위의 특징을 부여한다.

 

다시 말해, 전체 데이터에서 무작위로 샘플을 추출하고 각 트리를 학습할 때마다 전체 특징 중 일부만 선택하여
사용한다. 또한 트리의 각 노드를 분리할 때는 모든 독립 변수를 비교하지 않고
비교할 변수를 무작위로 고른다.

이러한 무작위성이 각 트리들의 다양성을 확보하여 과적합을 줄여주기에 새로운 데이터가 들어왔을 때,
데이터의 노이즈나 이상치에 강하며 다양한 문제 상황에서도 일관된 성능을 보이는 장점이 있다.

 

하지만 이런 무작위성으로 결과를 역추적하여 설명하기 어렵고,
모델이 복잡한 만큼 계산 비용과 메모리 사용량이 높다는 단점이 있다.

참고로 일반적으로 각 트리는 CART 알고리즘을 사용한다. 

 

랜덤 포레스트는 분류문제와 회귀문제 둘 다에 적용 가능하다.

분류 문제에서의 랜덤 포레스트

 

출처: https://www.nvidia.com/ko-kr/glossary/random-forest/

위 그림은 분류문제에서의 랜덤 포레스트의 작동 방식을 설명한 것이다.

  1. 샘플(Instance)은 무작위로 선택된다. 이를 데이터 샘플 무작위성이라 한다.
  2. 각 트리의 노드는 분할 기준을 정할 때 전체 속성 중 일부만 무작위로 선택하여 사용한다. 이를 속성 선택 무작위성이라 한다.
    - 예를 들어 입력 데이터가 나이, 몸무게, 키, 지역, 성별의 속성을 가질 때,
    이 중 무작위로 나이와 지역을 선택했다면 전체속성 5개중 2개가 무작위로 선택된 것이다.
  3. 1번에서 선택된 샘플들을 다시 사용할 수 있다. 이를 부트스트랩(Bootstrap)이라 한다.
  4. 각 트리들이 학습하여 얻은 결과를 결합하여 최종 결과를 얻는다. 이를 배깅(Bagging)이라 한다.
    - 이때 다수결을 통해 가장 많이 선택된 클래스를 최종 결과로써 선택한다. 회귀의 경우에는 평균으로 집계한다.

회귀 문제에서의 랜덤 포레스트

회귀의 경우에는 배깅 과정에서 각 트리들이 만든 결과를 평균해서 집계한다.

출처 : 더북 모두의 딥러닝 개정 4판, 회귀문제에서의 랜덤 포레스트

피처 중요도란?

피처는 데이터를 구성하는 각각의 속성이나 변수를 의미한다.
랜덤 포레스트는 단순히 예측을 수행하는 모델이 아니라
각 피처가 예측에 얼마나 기여했는지 분석할 수 있는 해석 가능한 모델이다.

 

이러한 분석을 피처 중요도라고 하며 일반적으로 두 가지 방식으로 측정된다.

  • 지니 중요도
    각 트리에서 특정 피처가 분할에 사용될 때 감소시킨 불순도의 총합을 계산하고, 전체 트리에서 평균 낸 값이다.
  • 퍼뮤테이션 중요도
    이미 학습된 모델에서 입력 데이터의 특정 피처 값(feature value)을 무작위로 섞은 후, 예측 정확도가 얼마나 떨어지는지를 측정하는 방식이다. 특정 피처를 섞었을 때 정확도가 크게 하락하면, 해당 피처는 예측에 중요한 역할을 했다는 의미로 해석할 수 있다. 여기서 피처 값이란 입력 데이터의 한 열(column)에 있는 샘플 값들의 순서를 무작위로 바꾼 것을 의미한다.
    예시) 위치, 나이, 직업 등의 열을 가진 데이터에서 위치 열을 선택하고, 해당 열의 값들의 순서를 바꾼다.
    원래: 강남, 서초, 강남,…
    섞은 후: 서초, 강남, 강남, …

피처 중요도는 시각화로 활용될 수 있다. 예를 들어 막대그래프의 형태로 각 피처의 중요도를 나타내면 어떤 변수가 예측에 크게 기여했는지 알 수 있다.

피처 선택이란?

피처 선택(Feature Selection)은 불필요하거나 중복된 변수를 제거하고 핵심적인 피처만 남기는 과정이다.

일반적으로 불순도를 측정하는 지니 지수나 엔트로피 지수와 같은 지표를 통해 각 피처의 중요도를 계산한다.
그러나 경우에 따라 모델 학습 이전에 통계적 검정을 통해 이루어지기도 하는데,
이때 유의 확률(p-value), 카이제곱 통계량, F 통계량 등을 이용한다.

 

즉, 랜덤 포레스트의 전처리 과정 중 피처 선택단계에서

통계적 검정을 통해 피처 유의성을 평가할 수 있다.

유의 확률이란?

통계적 접근에서는 유의확률인 p-value를 이용해서 변수의 유의성을 검증할 수 있다.
여기서 유의확률은 통계적으로 의미가 있는 확률이라는 의미이며
데이터에서 관찰된 차이나 관계가 단순한 우연이 아니라 실제로 의미 있는 현상일 가능성이 높다는 뜻이다.

 

이때 귀무가설이라는 개념이 등장한다.

귀무가설(H₀, Null hypothesis)이란 일반적으로 효과가 없거나 변화가 없다는 기본 가정을 말한다.
반대로 대립가설(H₁, alternative hypothesis)은 귀무가설이 거짓일 때 대안적으로 참이 되는 가설이다.

예를 들면,
"이 약을 먹어도 체중에 변화가 없다."라는 귀무가설이 있을 때
대립가설은 "이 약을 먹으면 체중이 줄어든다"이 될 수 있다.

p-value 값이 작을수록 두 변수가 단순히 우연히 연결된 것이 아니라 통계적으로 유의한 상관관계가 있다고 판단한다.


일반적으로 0.05 미만이면 귀무가설을 기각하고 두 변수 간에 의미 있는 관계가 존재한다고 해석한다.
반대로 0.05 이상이면 데이터에서 나타난 관계가 우연일 가능성이 높다고 판단하며, 비중요 피처로 간주한다.

따라서 효과가 없다는 가정을 뒤집을 만큼의 수치가 나오면
그때 두 데이터의 관계의 유의성을 인정하는 방식이라고 볼 수 있다.

p-value에 따른 귀무가설 채택/기각 예시

평균을 기준으로 귀무가설을 중심에 두고 채택 영역과 기각 영역을 구분함으로써
관측된 결과가 단순한 우연에 의한 것인지
아니면 통계적으로 의미 있는 차이를 나타내는 것인지를 판별한다.

이 유의확률(p-value) 값은 카이제곱 통계량과 F 통계량의 검정 결과를 분석할 때 사용된다.

카이제곱 통계량이란?

카이제곱 통계량(Chi-Square Statistic)은 통계적 지표 중 하나이다.
수식은 다음과 같다.

카이제곱 통계량 수식

 

  • χ² : 카이제곱 통계량
  • Oᵢ : 관측값 (Observed value)
  • Eᵢ : 기댓값 (Expected value)
  • Σ : 모든 범주에 대해 합을 의미

여기서 p-value는 카이제곱 분포 그래프에서 χ²이 나올 확률로 사용된다.

 

카이제곱 통계량(χ²)은 각 항목에서 관측값(Oᵢ)과 기댓값(Eᵢ)의 차이를 제곱한 뒤
기댓값으로 나눈 값들을 모두 더한 값이다.
Oᵢ 는 각 범주에서의 관측값이고
Eᵢ 는 두 변수가 독립이라는 가정하에 계산된 기댓값을 의미한다.

 

분자는 관측값과 기댓값의 차이를 제곱한 값들의 합
분모는 기댓값
카이제곱 통계량은 귀무가설이 참이란 전제를 설정하고 시작합니다.
따라서 분자가 클수록 -> 카이제곱 통계량이 클수록 모델의 예상과 다르다.
즉, 귀무가설로부터 벗어난다는 뜻입니다.

결과적으로 카이제곱 통계량이 클수록 귀무가설을 기각하게 되기에
유의확률(p-value) 또한 작게 나옵니다.

 

예를 들어, 두 변수 A와 B가 있고
A가 가진 3종류의 범주에 대응하는 데이터가 O₁, O₂, O₃이고 B 또한 마찬가지라고 봤을 때

A O₁ O₂ O₃
B O₄ O₅ O₆

 


각 범주의 잔차가 기댓값으로부터 얼마나 차이나는 지를 전부 합해서
전체적인 차이(틀어짐)를 확인할 수 있다.

 

참고로, 카이제곱 통계량은 피처 선택에서 입력 데이터가 범주형일 경우에 사용된다.

F 통계량이란?

F 통계량은 분산분석에서 나온다.
먼저 F 통계량에서의 귀무가설은 "모든 그룹 평균이 같다"입니다. 
F 통계량은 집단 간 분석을 집단 내 분산으로 나눈 값입니다.

분산분석의 F 통계량 수식

여기서 p-value는 귀무가설 하에서 F 분포에서 F 값이 지금 값 이상이 나올 확률을 의미합니다.

 

집단 간 분산은 각 그룹 평균 간의 차이를 나타내며,
집단 내 분산은 같은 그룹 내의 데이터가 얼마나 흩어져 있는지를 나타낸다.
따라서 F 통계량이 클수록 그룹 간의 평균 차이가 크다는 뜻이다.

 

마찬가지로 F 통계량이 커질수록 귀무가설로부터 벗어나게 되기에 p-value 값은 작아지게 됩니다.

 

 

'Python > 머신러닝' 카테고리의 다른 글

머신러닝 개념 정리) 나이브 베이즈  (0) 2025.12.01
머신러닝 개념 정리) 결정 트리, 엔트로피 지수, 지니 지수, CART 알고리즘  (0) 2025.11.23
머신러닝 개념 정리) 서포트벡터 머신, 커널 트릭  (0) 2025.11.22
머신러닝 개념 정리) K-최근접 이웃, 유클리드 거리, 맨해튼 거리, 체비쇼프 거리, 민코스프키 거리  (0) 2025.11.22
머신러닝 개념 정리) 로지스틱 회귀, 시그모이드 함수, 소프트맥스 회귀  (0) 2025.11.22
'Python/머신러닝' 카테고리의 다른 글
  • 머신러닝 개념 정리) 나이브 베이즈
  • 머신러닝 개념 정리) 결정 트리, 엔트로피 지수, 지니 지수, CART 알고리즘
  • 머신러닝 개념 정리) 서포트벡터 머신, 커널 트릭
  • 머신러닝 개념 정리) K-최근접 이웃, 유클리드 거리, 맨해튼 거리, 체비쇼프 거리, 민코스프키 거리
MvA
MvA
백엔드 개발자 김재현입니다. 주로 공부하면서 느낀점을 기록합니다.
  • MvA
    Man vs Ai
    MvA
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Java (6)
      • Python (8)
        • 딥러닝 (1)
        • 머신러닝 (7)
      • JavaScript (2)
      • 내배캠 (60)
      • 개인 프로젝트 (11)
      • 책 후기 (5)
      • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    TiL
    배포
    Riot API
    머신러닝
    아키텍처
    딥러닝
    내일배움캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
MvA
머신러닝 개념 정리) 랜덤 포레스트, 유의 확률, 카이제곱 통계량, F 통계량
상단으로

티스토리툴바