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

윤태영님의 프로필 이미지
윤태영

작성한 질문수

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

분류 실습 1 : 캐글경연대회의 산탄데르 은행 고객 만족 예측 - 01

산탄대르 실습질문

작성

·

211

0

산탄데르 은행 고객 만족 예측 실습-1에서

ID 컬럼을 드롭하는데 특별한 이유가 있으신가요. 식별자라고 해서 삭제한다고 영상에서 말씀하셨는데 이유가 궁급합니다.!

답변 1

0

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

안녕하십니까,

머신러닝 모델의 피처들을 만들때 id 컬럼과 같은 식별자는 반드시 제외 되어야 합니다.

식별자가 타겟값과 아무 상관이 없는 피처이기 때문인것도 하나의 이유지만 다른 중요한 이유는 식별자를 모델의 피처로 사용하게 되면 모델이 오버피팅을 하게되어 성능이 더 떨어질 가능성이 있기 때문입니다.

예를 들어 제가 어릴때는 학급에서 학생 번호를 붙일 때 키가 작은 순에서 키가 큰 순으로 번호를 붙였습니다. 가장 작으면 1번, 가장 크면 60번(그때는 학생수가 많아서 ^^)

만약에 학생의 키를 예측하는 모델을 만든다고 할 때, 학생의 몸무게나 운동여부, 부모님의 키등을 피처로 할 수 있는데, 여기에 학생 번호와 같은 식별자를 피처로 하게 된다면 지나친 오버피팅을 하게 되는 모델을 만들기 쉽습니다. 예를 들어 학생번호 피처로 1번이 들어오면 키가 평균대비 상당히 작을 거라고 예상하고, 30번이 들어오면, 평균수준, 50번이 보다 높은 번호가 들어들어 오면 키가 평균 대비 상당히 클거라고 모델이 예측하기 쉽습니다.

문제는 다른 학교의 경우에 이름 가나다 순으로 학생 번호가 부여 된다면 해당 모델로 이 학교 학생들의 키를 예측하면 오버 피팅이 발생하여 모델 성능이 확연히 떨어지게 됩니다.

이 두가지 이유 때문에 모델을 만들 때 식별자를 모델에서 제외하여 학습을 시킵니다.

감사합니다.

윤태영님의 프로필 이미지
윤태영

작성한 질문수

질문하기