인프런 커뮤니티 질문&답변
모의문제 2번
작성
·
52
답변 3
1
0
퇴근후딴짓
지식공유자
모든 값이 서로 다른 id 컬럼은 일반적으로 삭제하지만,
머신러닝 모델은 이런 컬럼의 중요도를 자동으로 낮게 판단하므로 삭제하지 않아도 무방합니다. 🙂네 무관합니다. 단, 모든 값이 다른 경우에만 해당합니다.
만약 숫자형 id라면 그대로 두셔도 됩니다.
모든 값이 다른 문자형 id라면 인코딩 과정이 필요하므로 삭제를 권장합니다.
상품 ID처럼 일부 중복이 있는 컬럼이라면 삭제하지 마세요.
또한, train의 카테고리가 test의 카테고리를 포함하는 경우,
아래처럼 라벨 인코딩(Label Encoding) 으로 처리 가능합니다.
train: 사과, 배, 딸기 test:사과, 배반면, test에 train에 없는 카테고리가 존재한다면,
두 데이터를 합친 후 인코딩해야 합니다.
train: 사과, 딸기test: 사과, 배
0
안녕하세요, 인프런 AI 인턴입니다. audreyjy님.
작업형 2의 참여에 대한 질문을 환영하며, 질문에 대한 해답을 제공하고자 합니다:
1. Train 데이터에서 ID 컬럼 삭제 이유
- ID 컬럼의 역할: 일반적으로 ID 컬럼은 각 데이터 포인트를 구분하는 고유 값으로써 주로 식별 목적으로 사용됩니다. 이 ID는 예측하고자 하는 대상과 직접적인 관계가 없으므로, 학습에 필요하지 않고 모델 훈련 시 의미 있는 정보를 제공하지 않습니다. 따라서 ID 컬럼은 종종 삭제하게 됩니다.
2. 기타 의미 없는 컬럼의 삭제
- 결과에 영향을 주지 않는 컬럼: 데이터 분석에서 name이나 host_id와 같은 컬럼은 예측 모델에 불필요한 정보라고 간주될 수 있습니다. 실제 모델링에 기여하지 않는 특성은 제거하여 계산 성능을 높이고 과적합(overfitting)을 방지할 수 있습니다. 단, 삭제 시 분석 맥락을 충분히 고려해야 합니다.
3. Neighbourhood 컬럼의 인코딩 문제
- 인코딩 시 Train과 Test의 카테고리 차이: train과 test 데이터 간의 카테고리나 개수가 다른 경우, 데이터셋을 통합하여 인코딩을 수행하는 방식이 일반적입니다. 그래야 모든 카테고리에 대해 동일하게 처리할 수 있습니다. 데이터 합침(concat)이 없다면, 새로운 항목이 인코딩되지 않거나, 불일치가 발생하여 에러가 발생할 수 있습니다.
4. Concat 함수 사용의 필요성
- concat 함수가 필요한 경우:
- 범주형 변수 인코딩: 데이터를 합쳐서 인코딩하면, train과 test 간의 불일치 문제를 해결할 수 있습니다.
- 데이터 전처리 일관성: 두 데이터셋 간 동일한 전처리 파이프라인을 적용해야 할 때(예: 스케일링, 정규화 등).
- 범주형 변수 인코딩: 데이터를 합쳐서 인코딩하면, train과 test 간의 불일치 문제를 해결할 수 있습니다.
관련된 유사한 사례에 대한 참고 내용과 답변은 아래 링크에서 확인하실 수 있습니다:
저는 질문자님의 이해를 돕기 위해 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천합니다. 현재 베타 기능인 만큼 모든 부분에서 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 더 궁금한 점이 있으시면, 계속 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






선생님, 인코딩 이해가 가지 않아서 추가 질문 드려요,
시험 문제의 데이터 수가 많은 경우, train과 test의 카테고리를 모두 확인할 수 없을 때는 어떻게 해야 하나요? 예시로 든 데이터는 간단해서요..
말씀하신 영상은 먼저 수강하겠습니다.