inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

빅데이터분석기사 실기 인코딩

3

한영빈

작성한 질문수 2

0

레이블 인코딩이 어려워서 nunique 사용해서 갯수 많은 컬럼만 삭제하고 일괄적으로 원핫 인코딩으로 통일하고 싶은데, 혹시 원핫 인코딩 안되는경우가 있다면 되게끔 만드는 기준이나 방법 알려주실 수 있을까요?

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 한영빈님.

원핫 인코딩은 범주 수가 많을수록 컬럼이 크게 늘어나 메모리 사용량과 학습 시간이 증가할 수 있습니다. 따라서 nunique()가 많은 컬럼을 무조건 삭제하기보다는, 컬럼별로 범주 수를 확인해 적은 범주는 원핫 인코딩하고 범주 수가 많은 컬럼은 레이블 인코딩하거나 제외하는 방식이 일반적입니다.

강사님 답변 기준으로는 카테고리가 10개 이하이면 원핫 인코딩을 고려하고, 10개를 초과하면 레이블 인코딩하는 방법을 사용할 수 있습니다. 다만 빅데이터분석기사 실기에서는 데이터 규모가 크지 않기 때문에 전체 범주형 변수를 레이블 인코딩하는 방법도 가능합니다.

원핫 인코딩을 사용할 때 오류가 발생하는 대표적인 경우는 다음과 같습니다.

  • 범주 수가 많아져 컬럼 수와 실행 시간이 지나치게 증가하는 경우
  • 학습 데이터와 테스트 데이터의 원핫 인코딩 컬럼 구성이 달라지는 경우
  • 테스트 데이터에 학습 데이터에는 없던 새로운 범주가 등장하는 경우
  • 결측치가 처리되지 않은 상태에서 인코딩하는 경우

sklearn의 OneHotEncoder를 사용한다면 다음과 같이 테스트 데이터에 새로운 범주가 있어도 오류가 나지 않도록 설정할 수 있습니다.

from sklearn.preprocessing import OneHotEncoder

encoder = OneHotEncoder(handle_unknown='ignore', sparse_output=False)

train_encoded = encoder.fit_transform(X_train[categorical_cols])
test_encoded = encoder.transform(X_test[categorical_cols])

다만 원핫 인코딩 후 컬럼 수가 지나치게 늘어나 랜덤포레스트 등의 학습이 오래 걸린다면, 해당 컬럼만 레이블 인코딩하거나 범주 수가 많은 컬럼을 제외하는 방법을 고려하는 것이 좋습니다.

참고할 만한 유사 질문입니다.

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

수강기간 연장문의

0

22

1

수강 기간 연장 문의 드립니다.. 부탁드립니다 ㅠㅠ

0

17

1

작업형2와 3의 목적

0

21

0

기출9회(작업형 1의 2번문제)

0

21

1

수강 기간 연장 문의 드립니다.

0

32

1

수강 연장 문의드립니다

0

56

2

수강 연장 문의드립니다.

0

44

2

재결제 가능할까요...

0

54

1

비전공자 빅분기 실기 공부방법

1

55

2

강의일시정지 요청합니다

0

55

2

강의 연장 가능할까요 ㅠㅠ

0

55

2

수강 연장 문의드립니다.

0

55

2

수강기간 연장 가능 여부 문의드립니다.

0

81

1

수강 기간 연장 가능 여부 문의드립니다

0

80

2

강의 업데이트

0

76

2

수강 연장 문의드립니다.

0

99

2

강의 연장 문의

0

72

2

수강 신청 연장 문의드립니다.

0

84

2

작업형 1번문제... 환경관련

0

62

2

12회 기출은 언제 업데이트 될까요??

1

85

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

66

2

수강기간 연장 문의

0

74

2

수강기간 연장문의

0

63

2

수강기간 연장 요청 문의드립니다

0

70

2