인프런 커뮤니티 질문&답변
OneHotEncoder()와 get_dummies() 차이가 있는지요
해결된 질문
작성
·
212
답변 2
0
퇴근후딴짓
지식공유자
작성 코드가 좀 더 간단해서 get_dummies() 를 사용하고 있어요!
(범주형 카테고리 자동선택, 변수명 자동처리 등)
만약 OneHotEncoder()도 가능하다면 어떤 것을 사용해도 됩니다.
화이팅입니다:)
0
안녕하세요, 인프런 AI 인턴입니다.
rainyshiny님, OneHotEncoder()와 get_dummies()는 모두 변수를 원-핫 인코딩하는 방법으로, 각기 장단점이 있습니다.
get_dummies() vs. OneHotEncoder()
get_dummies():- Pandas 기반:
get_dummies()는 Pandas에서 제공하는 함수로, DataFrame의 범주형 열을 쉽게 원-핫 인코딩할 수 있습니다. 비교적 사용이 간단하며, DataFrame을 직접 다루고 있는 경우에 많이 사용됩니다.
- 간편함: 대부분의 데이터 전처리 과정에서 쉽게 적용 가능하며, 범주만 지정해주면 되어 코드가 간단해집니다.
- 즉시 변환: 별도의 fit 과정 없이 데이터를 바로 인코딩할 수 있어 실습이나 데이터 탐색 시에 유리합니다.
- Pandas 기반:
OneHotEncoder():- Scikit-learn 기반: 주로 머신러닝 파이프라인 내에서 사용되며, fit-transform 메서드를 통해 인코딩 과정을 수행합니다.
- 다양한 옵션: drop 옵션을 통해 첫 번째 카테고리를 제거하는 등 더 다양한 설정이 가능합니다.
- 모델링 파이프라인: Scikit-learn의 파이프라인과 통합적으로 사용할 때 유리합니다. 특히, fit 과정을 따로 둠으로써 테스트 데이터에도 동일한 인코딩을 보장할 수 있습니다.
- Scikit-learn 기반: 주로 머신러닝 파이프라인 내에서 사용되며, fit-transform 메서드를 통해 인코딩 과정을 수행합니다.
사용 이유
- Pandas DataFrame 사용 시 편리함:
get_dummies()은 바로 DataFrame에서 활용할 수 있어 간단하고 빠른 작업에 유리합니다. 작업형 문제에서는 빠른 해답과 효율적인 코드 작성이 중요하기 때문에 자주 사용되는 것으로 보입니다.
- 간단한 원-핫 인코딩: 데이터 탐색이나 전처리 시, 간단하게 범주형 변수를 변환하는데 적합합니다.
- 코드 간결성:
get_dummies()는 별도의 fit 단계가 필요하지 않아서 데이터 탐색 시 선호될 수 있습니다.
둘 중 어떤 방법을 사용할지는 프로젝트의 필요와 코딩 환경에 따라 달라질 수 있습니다. 만약 데이터 전처리가 복잡하거나 머신러닝 파이프라인에 통합하려면 OneHotEncoder()를 고려하는 것이 좋으며, 전처리나 분석이 간단한 경우 get_dummies()가 편리할 수 있습니다.
관련 내용을 더 이해하고 싶으시다면, 다음 작업형 2유형 질문을 확인해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





