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

김치현님의 프로필 이미지
김치현

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

8회 기출유형(작업형2) 🆕 updated 2024.9

ID를 Drop 하지 않았을 때

해결된 질문

작성

·

19

0

custom id를 drop 하지 않고 검증 데이터 분리해서 랜덤포레스트 하면

could not convert string to float: 'CUST0734'


이러한 에러메시지가 뜨더라구요. 무조건 drop을 진행해야 하는건지..

어쩔때 drop하고 어쩔때 안하는건지 비교가 가능할까요?

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

id를 버리지 않아도 머신러닝 모델에서 중요도를 낮게 판단합니다.

단, 숫자일 때 입니다.

문자라면 다른 컬럼처럼 삭제 또는 인코딩이 필요해요!

문자를 그대로 머신러닝 모델 입력데이터로 넣으면 위와 같은 에러가 발생합니다.

 

문자일 때, 모두 다른 id라면 삭제를 추천하고 상품 id와 같이 반복이 있는 id라면 라벨인코딩을 추천합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 김치현님.

모델 학습 시 “cust_id”와 같은 ID 열이 포함된 경우, 모델이 이를 해석할 수 없어서 'could not convert string to float'라는 오류가 발생합니다. 이는 주로 ID 열이 숫자 형식으로 변환되지 않기 때문입니다.

ID 열을 Drop 해야 하는 이유

  1. 모델의 학습 효율 개선: ID는 일반적으로 각 행을 구별하는 고유 식별자로, 예측에 유용한 정보를 제공하지 않습니다. 따라서 불필요한 열을 제거함으로써 모델의 학습시간을 줄이고 성능을 높일 수 있습니다.
  2. 오류 방지: ID 열이 텍스트 혹은 숫자 형식이 아닌 경우 오류가 발생할 수 있습니다. 특히 문자열로 인식되는 경우 변환 오류가 발생합니다.

언제 ID를 빼고 언제 포함할까요?

  • 포함해야 하는 경우: 분석 또는 결과 제출 시 각 예측에 대해 ID가 필요할 때가 있습니다. 예를 들어, 최종 결과를 제출할 때 각 결과가 어떤 샘플에 해당하는지 알기 위해 필요합니다. 이때는 학습에서는 제거하더라도, 최종 출력 시 다시 포함하면 됩니다.
  • 제거해야 하는 경우: 모델 학습 및 검증 시 항상 제거해야 합니다. ID는 모델의 예측에 꼭 필요한 정보가 아니기 때문에 학습 중에는 의미가 없고, 오히려 성능에 부정적인 영향을 줄 수 있습니다.

제 학습 경험을 통해 비슷한 문제가 있는 다른 학습자분들의 질의를 확인해 보았습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김치현님의 프로필 이미지
김치현

작성한 질문수

질문하기