Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 딥러닝
  • sql
  • 객체
  • 자료구조
  • 빅데이터
  • 데이터
  • 객체지향
  • 머신러닝
  • 데이터사이언스
  • AI
  • pytorch
  • 프로그래머스
  • 하둡
  • 선형대수
  • 코테
  • 데이터베이스
  • class
  • TensorFlow
  • PYTHON
  • Baekjoon
  • 파이썬기초
  • 인공지능
  • 코딩테스트
  • MariaDB
  • 선형대수학
  • 파이썬
  • 알고리즘
  • mysql
  • 프로그래밍
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben

Big Ben's Log

머신러닝/Tree 기반

[변수 중요도] Feature Importance와 Permutation Importance

2023. 1. 24. 18:20
반응형

머신러닝/딥러닝 모델을 해석하는 방법과 시도가 점점 늘어나고 있다.

 

변수간의 인과관계를 알려주진 않지만, "어떤 변수가 가장 큰 변화를 만들어냈는지", "특정 변수가 결과에 긍정/부정적인 영향을 끼쳤는지"  등과 같은 결과에 대한 이유에 대해서 해석할 수 있는 방법은 다양한 기법을 통해 알 수 있다.

 

이번 포스팅에는 그중에서도 Feature Importance와 Permutation Importance에 대해 알아보고자 한다.

Feature Importance

Feature Importance는 일반적으로 Random Forest와 같은 트리 계열의 앙상블 모델을 사용하면 쉽게 얻을 수 있다. 

단순 해석하면 '변수(특징) 중요도' 정도로 해석할 수 있는데, 매커니즘 자체는 불순도를 감소시키는 정보 증가량에 기초한다. 즉, 의사결정나무에서 greedy method로 정보 증가량 (또는 불순도가 가장 낮은 방법)으로 분기하게 되는데, 여러개의 의사결정나무로 이뤄진 앙상블 방법에서는 각 트리의 변수 중요도를 평균 내어 취합한 값이 변수 중요도가 된다. 

 

이 방법 자체는 loss function에 기초했기 때문에 합리적이라고 할 수 있겠지만, 특정 상황에서 다소 biased될 수 있는데 이를 테면 연속형 변수이거나 범주형 변수 중에서도 카테고리 개수가 매우 많은 경우에 'high cardianlity' 변수들의 Feature Importance를 더 크게 만들 가능성이 있다.

 

Permutation Importance

Feature Importance와 같이 사용할 수 있는 방법 중 하나는 Permutation Importance이다. 

순열 중요도라고도 불리는데, 입력변수 중 하나의 영향을 제거하여 성능의 차이가 얼마나 나는지 확인하는 방법이다. 

단순하게 변수를 제거한다면, 입력변수의 차원이 줄어들기 때문에 모델에 입력변수에 맞춰 재학습 시켜야하는 번거로움이 있겠지만, 이 방법은 입력변수를 노이즈화하면서 차원을 유지하는 방법으로 가져가기 때문에, 학습된 모델에 데이터를 입력하여 Permutation Importance를 구할 수 있다.  이 방법은 "Drop Column Importance"와 같은 방법에 비해서 학습 시간과 복잡도가 낮다고 할 수 있다.

 

다만 단점도 존재하는데, 이해를 돕기 위해 예를 들어보자면

키와 성별(x1, x2)에 따른 몸무게(y)를 예측한다고 해보자.

이때 키를 노이즈 처리한다면, (200cm, 여성) 이라는 데이터가 나올 수도 있는데 해당 데이터를 가진 개체의 몸무게는 50kg이 될 수 있다. 

입력변수간 상관관계가 클수록 문제가 될 수 있으니 유의하며 분석해야한다.

 

 

하지만 Permutation Importance와 Feature Importance 두 방법 모두 "변수가 영향을 끼쳤는가?"에 대한 대답은 할 수 있지만, 통계 모델과 달리 특성이 긍정인지 부정인지를 확인하기는 어렵다. 

반응형
저작자표시 (새창열림)
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바