강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Yoonseok Choi님의 프로필 이미지
Yoonseok Choi

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

회귀 실습 2: 캐글경연 주택가격 예측 - Advanced Regression Techniques - 02

피처 중요도 해석

작성

·

556

0

안녕하십니까. 강사님 덕에 머신러닝을 실무에 적용할 수 있게 되었습니다.

현재 제품의 수명에 미치는 팩터가 무엇인지 머신러닝으로 알아보고 있는데, ridge와 lasso의 결과에서 가장 dominant한 팩터는 같지만, 이 팩터는 너무 뻔한 팩터이고 나머지 것들에서 주의깊게 봐야하는 것이 있는지 확인하고 싶은 상황입니다.

그런데 릿지와 라쏘 그리고 앙상블 모델에서 지목하는 나머지 주요 팩터들이 각기 달라서 이 결과를 신뢰할 수 있는지 모르겠습니다. 주요 팩터들은 달라도 모두 예측성능이 괜찮아서 무엇을 봐야할 지 모르겠군요

이런 상황에서 다른 주요 팩터들을 어떻게 뽑을 수 있을까요?

그리고 한 팩터가 너무 dominant하여 다른 팩터들의 중요도를 보는 것이 어려운 것 같기도 한데(특히 Lasso), 뻔히 알고 있는 중요 팩터는 제외하고 분석하는 것도 좋은 방법이 될 수 있을까요? 예측 오차만 작다면 상관 없을 것 같긴 한데, 조언 부탁드립니다.

답변 1

2

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

ridge, lasso, 그리고 회귀 tree의 feature importance로 주요 팩터를 뽑아보면 몇개의 주요 팩터가 있습니다. 이 주요 팩터는 참고적으로만 생각해 주시면 될 것 같습니다.

주요 팩터들은 알고리즘별로 조금씩 다르고, 초기화 값이나 데이터를 어떻게 추출했느냐에 따라 달라질 수 있습니다. 또한 이상치를 제거하고, 스케일링을 적용한 뒤에도 또 달라질 수 있습니다.

다만 이상치등의 영향력을 제외하면 ridge, lasso 그리고 회귀트리의 주요 팩터들은 대강 비슷한 팩터들이 나옵니다. 이를 주요 팩터군으로 생각하시면 좋으실것 같습니다.

릿지와 라쏘 그리고 앙상블 모델에서 지목하는 나머지 주요 팩터들이 각기 다르는 것은 자연스러운 것입니다. 물론 이중에 상당히 튀는 경우가 있다면 이상치/데이터 변환/데이터 추출방식(train/test)등의 다양한 방법으로 이유를 찾아봐야 할 것 같습니다. 하지만 대부분의 모델은 ridge, lasso, 회귀 트리들이 대강 비슷한 주요 팩터군에 속해 있습니다. 특정 모델에서 추천하는 주요 팩터가 정답일 수 없습니다.

주요 팩터들은 달라도 모두 예측성능이 괜찮다면 이들을 모두 주요 팩터군에 소속시켜주시면 됩니다.

한 팩터가 너무 dominant하여 다른 팩터들의 중요도를 보는 것이 어려운 것 같기도 한데(특히 Lasso), 뻔히 알고 있는 중요 팩터는 제외하고 분석하는 것도 좋은 시도가 될 수 있을 것 같습니다. 일반적으로는 중요 팩터를 제외하고 분석했을 때 별로 좋은 모델이 만들어지지 않습니다만 시도는 해볼 수 있을 것 같습니다.

사이킷런에는 SelectFromModel 모듈이 있는데, feature importance를 예로 들면 중간값 * 1.25 정도 이상의 feature importance 값을 가지는 feature 들을 추출해 줍니다. 마찬가지로 어떤 중간 feature importance에서 특정값 이상의 feature 들을 선별적으로 중요 팩터로 정해 줄 수도 있습니다.

요약 드리자면, 주요 팩터들은 알고리즘/데이터 변환/이상치/학습 데이터량/하이퍼파라미터 등의 다양한 조건에 따라서 달라질 수 있습니다. 서로 다른 알고리즘으로 이들 주요 팩터들을 추출하고 이들을 하나의 주요 팩터군으로 생각하고 접근하는게 좋으실 것 같습니다.  또한 일반적으로 이들 주요 팩터들이 정리되면 다른 피처들이 중요한 역할을 하기는 어렵습니다. 다른 피처들을 찾는것 보다는 이들 주요 팩터들을 좀더 다른 형태로 가공(예를 들어 max, min 또는 컬럼별 결합)을 해서 모델 성능을 향상시키는 방법도 있습니다.

감사합니다.

Yoonseok Choi님의 프로필 이미지
Yoonseok Choi

작성한 질문수

질문하기