강의

멘토링

커뮤니티

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

합격님의 프로필 이미지
합격

작성한 질문수

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

[빅이시] 빅데이터 분석기사 이제 시작 과정 (단기 준비자 또는 복습용)

데이터 전처리 질문

해결된 질문

작성

·

32

·

수정됨

0

복습강의에서

train = train.drop('customerID', axis=1) # 값이 모두 유니크해도 숫자형이면 유지하지만, 문자형이라 ID는 삭제했습니다
test = test.drop(['customerID'], axis=1

customerID를 지웠는데..

 

매번 전처리할때 그냥 target = train.pop만 해서 실전에서 잘 못할 것 같아서요..ㅠ

customerID처럼 문자로 된게 고유값이 많으면? 해야하는 것 같은데? 이런 상황일때 무조건 하는게 좋은건가요?

실수로 다른 productID 이런거랑 헷갈려서 그런거까지 실수할까봐ㅠ

그냥 단순하게 target=train.pop~만 해도 될런지... 질문드립니다

 

 

감사합니다

답변 2

0

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

지금까지 기출에서 삭제해야 하는 컬럼은 없었습니다! (문제가 너무 평이해서 난이도를 제가 임의로 올렸어요)

2~10회 기준이라면 삭제 없이 충분히 가능해요!!

0

안녕하세요, 인프런 AI 인턴입니다. 합격님.

데이터 전처리 시 흔히 발생할 수 있는 대체 방법과 그 이유에 대해 설명드리겠습니다.

customerID와 같은 식별자 컬럼 처리 방법

  1. 고유한 식별자 컬럼 삭제

    • customerID 같이 데이터셋에서 각 행을 고유하게 식별하기 위한 컬럼은 일반적으로 모델링에 직접적 영향을 주지 않기 때문에 삭제하는 것이 일반적입니다. 이는 ID 값이 모델에 학습에 필요한 정보를 제공하지 않으며, 오히려 노이즈를 유발할 수 있기 때문입니다.
    • 만약 customerID가 문자형 데이터라면, 모든 값이 유니크하게 분리되어 있으므로 머신러닝 모델에는 의미 없는 변수가 될 수 있습니다. 이 경우 원핫 인코딩을 사용하면 너무 많은 컬럼을 생성하게 되어 모델의 복잡성을 크게 증가시키므로, 삭제하는 것이 더 효율적입니다.
  2. 특정 컬럼만 제거하는 pop 함수 사용

    • target = train.pop('target_column') 방식은 대상 변수(Target Variable)를 따로 분리하여 모델 학습 시 입력 데이터와 태깅 변수를 명확히 할 때 유용합니다.
  3. 실수 방지

    • 실수로 중요한 컬럼을 삭제하지 않도록 하기 위해 데이터셋을 전처리하기 전 각 컬럼의 역할과 필요성을 사전에 명확히 파악해야 합니다. 예를 들어, productID가 중요하게 사용된다면 반드시 유지해야 합니다.

전처리 방법

  • 삭제의 판단 기준: 데이터 분석을 통해 컬럼이 제거되어도 되는지를 정해야 합니다. 만약 컬럼이 모델 성능 향상에 필요하다면, 제거보다는 다른 방식으로 처리해야 합니다.
  • 범주형 데이터의 변환: 필요에 따라 원핫인코딩 등 다른 전처리 기법을 고려할 수 있습니다.

아래 링크에서는 이와 유사한 질문과 답변을 참조하실 수 있습니다:
- 작업형2 drop 질문(inplace=True 써야할까요?), inplace 인자를 이용해 데이터프레임을 효과적으로 수정하는 방법에 대해 설명합니다.

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

합격님의 프로필 이미지
합격

작성한 질문수

질문하기