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

최원빈님의 프로필 이미지
최원빈

작성한 질문수

캐글 Advanced 머신러닝 실전 박치기

pos_cash_balance 데이터 세트 Feature Engineering - 02

컬럼 관련 질문

해결된 질문

작성

·

210

0

안녕하세요 선생님 항상 좋은 강의 감사드립니다.

다름이 아니라 수업 마지막 즈음에, 퍼포먼스를 높이기 위해 컬럼을 많이 만든다고 하셨던 말씀에 궁금한 점이 생겨 질문을 드립니다.

저번에 다른 수업에서 캐글에서 많은 사람들이 피처(컬럼)의 개수를 많게는 천개도 넘게 만들어놓고 성능을 평가하며 줄인다고 하셨던 걸로 기억을 합니다 (제 기억이 맞다면요!).

그렇다면 컬럼을 만들 때 저의 상상 속의 로직?이 필요하다고 생각하는 모든 경우의 컬럼들을 만들어 놓은 다음에 plot importance 그래프에서 성능에 도움이 되지 않는 컬럼들은 drop해도 되는 걸까요? 아니면 성능이 큰 영향을 주지 않더라도 그대로 놔둬야 하는 걸까요?

다시 정리해서 말씀드리면, 엄청나게 많은 컬럼들을 만들어 놓은 후에 나중에 성능에 별 도움이 되지 않는 컬럼들은 (순차적으로) drop하는게 맞는 걸까요? 놔둬야 할까요??

감사합니다:)

답변 1

1

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

안녕하십니까,

캐글과 같은 컴피티션에서는 조금이라도 성능을 더 높이기 위해 상상의 나래(?)를 펴서 최대한 많은 피처들을 만드는 경향이 있습니다. 일단 그렇게 한뒤에 조금씩 불필요한 피처들을 제거해 가면서 성능 영향을 판단하는게 좋은 점수를 얻기 위해서 필요합니다.

하지만 실제 업무에서는 불필요하게 너무 많은 피처들을 만들수는 없습니다. 이유로는

  1. 데이터 팀에서 과도하다고 싶을 정도의 피처들은 생성 작업을 도와주지 않을 수 있습니다. 대용량의 데이터의 경우 보통 데이터를 전문적으로 다루는 분들의 도움을 얻는데, 피처들이 근거 없이 너무 많다면 데이터 사이언스팀의 모델 생성 의도(?)를 의심하기 쉽습니다. 한마디로 이유없이 왜 이런 피처들을 만들어 달라고 하는지 의문을 제시하기 쉬우며, 지극히 타당한 지적입니다. 때문에 너무 상상력을 발휘해서 기존 컬럼과 거의 중복되는 또는 크게 의미없는 피처의 생성은 자제 해야 합니다.

  2. 비슷 비슷한 피처들을 너무 많이 만들게 되면, 모델 학습이나 추론에 상대적으로 시간도 많이 걸리며, 업무에 중요한 피처들을 집중적으로 관리하지 못할 수도 있습니다.

그럼에도 불구하고 상상의 나래를 펴서 최대한 피처들을 많이 만들어 보는 연습을 해야되는 이유는

  1. 때로는 중요한 피처들이 전혀 의도치 않은 가공으로 나오는 경우가 있으며,

  2. 많이 피처들을 가공해보는 경험을 해봐야 어떤 가공들이 쓸모없는 것인지 감을 잡게 도와 주기 때문입니다.

정리해서 말씀 드리면 일반적으로 기반 모델을 만들때 상대적으로 적은 데이터량으로 먼저 많은 컬럼들을 가공해보고, 중요하지 않은 피처들은 Drop 해가면서 어느정도 성능도 보장되고, 데이터 가공에 드는 시간도 적정하다고 생각되는 정도에서 피처들을 결정하는 게 좋습니다. 이 경우에 대량 데이터 가공을 데이터 팀에 요청할 때 상대적으로 부담이 적습니다.

감사합니다.

최원빈님의 프로필 이미지
최원빈
질문자

자세한 답변 항상 감사드립니다:)

최원빈님의 프로필 이미지
최원빈

작성한 질문수

질문하기