codestates / codestates/ds-TIL

[TIL] 김민채_201028

Open
#720 0 comments 0 reactions 0 assignees View on GitHub
DSFT01
Dominant language
No language data
Stars
2
Forks
1
PR merge metrics
No merged PRs in 30d

Description

### Today I learn_38

**1. permutation importance , boosting (gradient boosting)**
- 모델을 만들거나 만든 모델의 성능을 평가할 때 영향을 미치는 중요한 특성인지는 상당히 중요하다.
- 지금까지는 보통 feature_importaces 를 통해 해결했지만 단점이 있다.
사실상 모델 성능과 상관없는 녀석이더라도 범주가 많다는 이유만으로 feature importaces에서 상위권 진입이 된다는 것.
- 따라서 다른 방법을 통해서 확인해야 한다.
- 그중 column을 drop 시키기 전/후 를 직접 계산하면 확실히 중요한 특성인지 여부를 알 수 있겠지만
features 의 수가 적지 않은 경우 굉장한 시간적, 인적 비용을 발생시킨다는 단점이 있다.
- permutation importance 은 실제 중요한 특성인지를 확실히 가려주면서도 굳이 drop을 하지 않음으로써 시간적 비용을 절약해주는 큰 장점이 있다.
- 순열이라는 말 그대로 feature의 기존값을 순서만 바꾼 채 순서를 매기고 나열한다.
- 마치 drop을 한 것마냥 순열 과정을 거친 feature는 영향력이 작아지게 되고
- 결국 모델에서 영향력이 제외된 채 성능을 계산함으로써 중요한 역할인지 여부를 판단할 수 있는 것이다.
- gradient boosting 은 특이하게 residual(잔차)를 계산한 후 이전 tree의 residual을 다음 tree가 연이어 학습함으로써 더 이상 residual 차이가 없을 때까지 학습시킨다.
- 실제로 굉장히 빨랐고, 바로 과적합이 적을 수 있는 모델을 만들 수 있었다.

**2. Impression from Today**
- feature importance 를 바로 알 수 있는 총 3가지 방법을 배울 수 있었다.
- 그래도 전보다는 알아먹는 게 많아지는거 같아서 기분은 좋았다.
- 물론 gradient boosting 은 정확히 이론을 알아듣진 못했지만, 사용해보면서 감을 만드는 중이다.
- 자꾸만 피곤해져서 걱정이다.
- 내가 선택한 dataset에서는 어떻게 해야 할지, 고민이 된다.
- 이미 과적합 여부가 별로 없는 상황인데 제대로 공부하기 위해 다른 dataset을 선택해야 하는 걸까.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.