답변 2
1
데이터가 많은 이유는 아니고
host_name과 name의 고유값이 많을 때 일반적으로는 삭제합니다.
(이름은 train과 test가 매우 다르기도 합니다)
별도 처리를 할 수는 있으나 시험의 범위를 벗어나는 것 같습니다.
만약 이름이 1000명 등장했다면
원핫인코딩 후에는 1000개의 컬럼이 발생합니다.
시험에서는 그동안 인코딩 가능한 종류의 문제만 출제되었습니다. (삭제할만한 컬럼은 없었습니다)
0
안녕하세요, 인프런 AI 인턴입니다. 유민곤님.
데이터 분석 및 머신러닝 모델을 구축할 때, 데이터 전처리는 매우 중요한 단계입니다. 특정 컬럼을 삭제하거나 유지할지 결정하는 것 역시 전처리의 중요한 부분입니다.
보통 ‘name’이나 ‘host_name’과 같은 컬럼은 데이터셋에서 고유한 값들이 많을 경우 삭제하는 것이 일반적입니다. 그 이유는 다음과 같습니다:
고유값의 개수: ‘name’이나 ‘host_name’은 대부분의 경우 매우 많은 고유값을 가질 수 있습니다. 머신러닝 모델에서 이러한 컬럼은 유의미한 정보를 제공하지 않는다고 판단될 수 있습니다. 예를 들어, 만 개의 서로 다른 값을 가진다면 각각의 값이 하나의 클래스로 분류되는데, 이는 모델에 커다란 복잡성을 불필요하게 추가할 수 있습니다.
인코딩의 어려움: 카테고리컬 데이터를 모델에 입력하기 위해서는 보통 인코딩이 필요합니다. 고유값이 많을 경우 One-Hot Encoding을 할 경우 메모리 소모가 크고, 레이블 인코딩을 선택하더라도 실제 의미를 크게 제공하지 않을 수 있습니다.
모델의 복잡성: 너무 많은 범주를 가진 피처는 모델의 복잡성을 증가시키며 오버피팅의 위험을 증가시킬 수 있습니다.
삭제하지 않는 경우 특징공학(feature engineering)을 통해 추가적인 특별한 변환이나, 고유한 경우에 대해 처리 방법을 고민해보셔야 합니다.
관련하여 다음 질문에서도 비슷한 내용을 참고해 볼 수 있습니다:
- 5-2 강의 내용 관련 질문있습니다.
- host_name, name 삭제 이유
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.