인프런 커뮤니티 질문&답변
작업형2 모의문제 2번 질문이 있습니다.
해결된 질문
작성
·
29
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
처음에 문제를 풀 때는 원핫 인코딩 방식을 쭉 쓰는 것을 선호했기 때문에 결측치가 존재하는 행만 제외하는 방식(train.dropna(axis=0) 함수 이용)으로 train과 test의 결측치 처리를 하고, 사진에 보이는 코드를 이용해서 원핫 인코딩을 진행하였습니다.

하지만 이렇게 인코딩을 하니 이후 train_test_split을 진행하고, 랜덤포레스트로 학습을 진행하려고 하니 런타임이 1분 이상으로 지나치게 오래걸리는 문제가 나타났습니다.
문제를 해결하지 못해 강의에서 설명한 방식대로 train.nunique의 수와 결측값이 많은 컬럼들을 drop하고 labelencording을 하는 방식으로 수정하여 끝까지 풀 수는 있었습니다. 시험에서 겪었다면 너무 당황했을 것 같은데 연습때 겪어서 천만다행이라 생각합니다.
혹시 이런 경우처럼 nunique의 개수가 많거나 데이터 자체의 shape가 거대할 경우는 원핫보다는 label 인코딩을 진행하는 것이 더 원할하게 진행하는 것이 옳은 방식인가요? 아니면 사진에 나온 인코딩 방식에 에러가 있었는지 질문드리고자 합니다.
답변 2
0
이렇게 오래 걸린다면 컬럼별로 라벨과 원핫을 분리해서 진행하는 것이 많아요
shape을 찍어보면 아마 컬럼 수가 많이 늘어난 것 같아요!
보통 이런 일들이 빈번합니다.
그런데 빅분기가 스몰 데이터여서 아마도 이런 케이스는 잘 나오진 않을 것 같아요!
카테고리가 10개 이상은 라벨해줘도 되고
전체를 라벨 해도 좋습니다.
화이팅!!
0
안녕하세요, 인프런 AI 인턴입니다.
jisoobin2000님이 공유해주신 상황에 대해 답변드리겠습니다. 먼저, 원핫 인코딩이 효과적인 방법일 수 있지만 모든 상황에서 적합한 것은 아닙니다. 다음은 이와 관련된 참고할 수 있는 몇 가지 핵심 포인트입니다:
원핫 인코딩의 특성: 원핫 인코딩은 각 범주형 변수를 이진 벡터로 변환합니다. 이는 데이터셋에 많은 고유 범주가 있는 경우, 특히
nunique값이 큰 경우, 매우 높은 차원의 데이터셋을 생성할 수 있습니다. 이러한 경우 트레이닝이나 모델링에 있어 성능 저하와 과도한 메모리 사용을 초래할 수 있습니다.레이블 인코딩의 사용 가능성: 레이블 인코딩은 각 값에 정수 레이블을 할당하여 데이터 크기를 줄일 수 있습니다. 이러한 접근 방식은 수치 기반 모델에서는 잘 동작하지만, 범주형 데이터에서 레이블 순서가 내재되어 있는 것으로 가정되는 경우 문제를 일으킬 수 있습니다.
데이터 처리 방법의 선택:
nunique나 고유 데이터의 수가 많을 경우에는, 단순히 원핫 인코딩보다는 다른 방법론을 고려하는 것이 좋습니다. 특히, 회귀모델이나 KNN과 같은 거리기반 모델에서는 원핫 인코딩이 적합하지만, 랜덤포레스트 같은 트리 기반 모델에서는 레이블 인코딩이 종종 더 효율적입니다.
질문하신 방식처럼, 데이터를 다룰 때 모든 상황에 동일한 인코딩 방식이 적합하지 않을 수 있습니다. 이는 데이터 차원, 데이터의 특성, 모델의 유형 등에 따라 크게 달라질 수 있습니다. 실습 과정에서 데이터에 대한 충분한 탐사를 통해 적합한 전처리 방식을 선택해보는 것이 중요합니다.
관련된 실습 및 개선을 위해 다음 링크를 참고하세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





