220516_TIL / Permutation importance , Boosting

신두다·2022년 5월 16일
0

TIL

목록 보기
23/82

Fact


오늘은 아래 내용을 배웠다.

  • 특성 중요도를 계산하는 방법들 숙지 및 활용
    • MDI(Mean Decrease Impurity), Drop-columns, Permutation importance
    • MDI는 sklearn 트리 기반 분류기에서 디폴트로 사용되는 특성 중요도이다. 속도는 빠르지만 결과를 주의해서 봐야 한다고 한다. (High cardinality!!)
    • Drop-columns는 아마 내가 이전에 나도 모르게 쓰고 있던 그것이다. 피쳐를 하나 제거해서 성능 변화를 보는 걸 반복하는거다. 당연히 매번 fit을 다시 해야하는 등 굉장히 리소스가 많이 드는 일이라 그렇게 추천하는 느낌은 아니었다.
    • 오늘의 주인공 Permutation Importances!!! python에서는 eli5라는 라이브러리로 상대적으로 쉽게 구할 수 있다. 이건 기존 특성에 shuffle을 하는 등의 무작위한 노이즈를 주어서 해당 피쳐가 제기능을 못하도록 한 후 성능을 측정하는 것이다. (shuffle을 하는 건 기존의 분포를 유지하기 위해서임)
    • Permutation Importances를 해보면 음수인 값이 나오는 피쳐들은 거의 영향이 없으니 제거해버리자고 판단할 수 있다. 자주 볼 것 같으니 잘 기억해두자.
  • Boosting
    • AdaBoost, Gradient Boosting, XGBoost.
    • 기존의 트리 모델에서 각 노드가 독립적이었다면, 부스팅은 앞선 트리의 결과가 뒤따르는 트리에 영향을 준다. (순차적, 종속적 특성을 지닌다) Boost란 단어 뜻 그대로, 갈수록 모델의 성능이 나아지는 방향으로 모델링이 진행된다고 생각하면 될 것 같다.
    • AdaBoost는 앞선 트리에서 예측한 결과 중 틀린 결과를 낸 샘플에 가중치(Sample_weight)을 더 많이 주어 뒤 트리에서는 그 영향력을 더 키워서 잘 판별할 수 있도록 하는 원리이다.
    • Gradient Boosting도 개념은 같은데, 대신 '잔차'를 학습 목표로 한다는 차이가 있고, 이상적으로는 갈수록 이 잔차가 줄어들며 전체적인 모델의 성능이 좋아지는 방식으로 이루어진다. (선형회귀모델의 경사하강법과 비슷한 방식으로 생각하면 된다.)
    • XGB는 Gradient Boost를 구현할 수 있는건데, 오늘 실습에서는 이걸 써보았다.
    • 참고로 랜던포레스트는 하이퍼 파라미터에 상대적으로 덜 민감한데, 그래디언트 부스팅은 이 차이를 많이 받는다. 유의해서 세팅하자.

그외

  • 기준 모델이란 평균, 최빈값으로만 만드는게 아니다. 가장 쉽고 빠르게 만들 수 있는 간단한 모델로 생각하자. 기준 모델은 내가 어떻게 잡느냐에 따라 달라지고, 프로젝트의 score 최소 기준인 것을 기억하자!
    • 오늘 회귀문제에서, 타겟 값 중 너무 크게 튀는 값들이 있어서인지 평균을 기준으로 기준모델을 만들었을 때 도저히 쓸 수 없겠다 싶은 상황이 있었고, 그래서 RandomForestRegressor로 기준 모델을 만들었다.

참고로 요즘은 개인 프로젝트를 메인으로 진행하고 있다

  • 이번 스프린트에서는 과제가 대부분 내가 정한 자유 주제에 대해서 실제로 배운 개념을 적용해보는 식으로 이루어지고 있다.
  • 데이터는 캐글에서 하나 찾아서 지난 주 금요일부터 EDA를 하고 있다. 이게 이번 섹션 개인 프로젝트가 될 것이니 나중에 자세히 과정을 기록해둘 예정이다.

Feeling


  • 나중에 개인 프로젝트 회고 때 다시 얘기할일이 있겠지만, 지난 일주일은 어떤 주제, 어떤 문제, 어떤 데이터를 풀 것인지 등 전반적으로 굉장히 높은 자유도가 주어진 상황이다. 좋게말하면 자유도고, 다르게 말하면 알아서 잘 해야 하는 것이다.
  • 머신러닝을 이번에 직접 처음으로 돌려보니까 정말 재밌긴 하다. 내가 컴퓨터를 잘 써먹는다는 느낌이 든달까? ㅎㅎ
  • 하지만 매일 많은 새로운 개념을 받아들이면서 동시에 높은 자유도로 인해 엄청난 고민을 하며 개인 프로젝트까지 진행해야 하다보니 피로도는 쌓이고 있다.. 하루에도 몇 번씩 스스로에게 화이팅을 외치고 있다. 잘 배워두자!! 할 수 있다!
profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글