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

tmdwjsofficial님의 프로필 이미지
tmdwjsofficial

작성한 질문수

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

작업형2 모의문제1

라벨인코딩 질문 및 cols 변수 담을 때 질문입니다

해결된 질문

작성

·

16

0

안녕하세요 라벨인코딩 시 질문이 있어 글 남깁니다.

첫번째질문

cols에 select_dtypes()로 컬럼명 담을 때,

cols = train.select_dtypes(include='object')
cols = train.select_dtypes(include='object').columns

for col in cols:
  le = LabelEncoder()
  train[col] = le.fit_transform(train[col])
...

...

첫 번쩌 cols와 두 번째 cols 중 둘 다 상관 없나요? 아니면 두 번째로 해야 하나요??

 

두번째질문

그리고 (아직까진 시험에는 나온 적은 없는 걸로 압니다만)

train.describe(include='object')
이처럼 범주형 변수 유니크 값 확인 시,

traintest의 유니크 값이 다르면 라벨인코딩을 진행하는 것으로 알고 있는데요. 어쩔 땐 concat으로 합치고 후 원핫인코딩 후 다시 분리하라고 하는데,

 

그냥 유니크 값이 다르면 라벨인코딩 진행을 바로 하면 될까요? 강사님 강의 중 concat 사용하는 부분이 있었던 것 같은데 못 찾고 있어서 질문 남깁니다..

답변 2

0

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

  1. 둘 다 사용가능합니다.

  2. 제가 어제 올린 "새소식"을 확인해 주세요

image.png

 

 

0

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

tmdwjsofficial님의 질문에 대해 답변드립니다.

첫 번째 질문

select_dtypes()로 컬럼명을 담을 때 두 가지 방식 모두 사용할 수 있지만, 일반적으로 train.select_dtypes(include='object').columns를 사용하는 것이 적절합니다. 이유는 select_dtypes()는 해당 데이터 타입의 모든 데이터프레임을 반환하기 때문에, .columns를 사용하여 컬럼명 리스트만 담아주는 것이 더 명확하며 코드를 깔끔하게 유지할 수 있습니다.

두 번째 질문

라벨 인코딩과 원핫 인코딩의 선택은 보통 범주형 데이터의 유니크 값의 개수와 그 의미에 따라 결정됩니다. 만약 traintest 데이터셋의 유니크 값이 다르다면, 일반적으로 라벨 인코딩을 사용하여 각 범주를 숫자로 변환하는 것이 일반적입니다.

하지만, 원핫 인코딩을 사용하고 싶은 경우에는, concat으로 데이터프레임을 합친 후 인코딩을 진행하는 방법도 가능합니다. 이렇게 하면 두 데이터셋 간의 범주가 일치하게 처리됩니다. 이는 각각의 카테고리가 모델의 입력으로 동일하게 유지될 수 있도록 하는 효과를 가집니다. 따라서, 라벨 인코딩을 바로 사용해도 문제는 없습니다만, 상황에 따라서 두 데이터셋의 범주 간 일관성을 위해 concat을 사용할 수 있습니다.

관련해서 도움이 될 수 있는 기존 답변 URL도 함께 확인해 보시기 바랍니다:
- 피처엔지니어링-n/c_train데이터로 분리 후 다시 컬럼 나열해주는 이유?

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

tmdwjsofficial님의 프로필 이미지
tmdwjsofficial

작성한 질문수

질문하기