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

momgrp24님의 프로필 이미지

작성한 질문수

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

기출(작업형2) 한 가지 방법으로 풀기 🆕 updated 2024.6

get_dummies 와 스케일링, 라벨인코딩 사용법의 차이

해결된 질문

24.06.13 10:15 작성

·

210

0

작업형 2유형을 풀이하게되면

  1. get_dummies 로 한방에 처리하거나

  2. 민맥스스케일러, 라벨인코더로 처리하는 경우가 있는데요

 

둘 중 어느것을 써야 더 효율적일지는 상황에 따라 달라지는건지요? 결과값은 같은건지요 ?

둘다 머신러닝이 납득할 수 있는 숫자로 인코더 되는 역할로 여겨지는데요.

 

get_dummies 만 사용해서 풀이해도 괜찮을지, 혹은 민맥스 스케일러나 라벨인코더를 사용하는게 나을지 궁금합니다.

 

그리고 스케일러랑 인코더는 세트로 사용해야 하는지, get_dummies 를 혼용하여 사용하기도 하는지 궁금합니다.

 

결론적으로 minmaxscaler, labelencoder 는 어떤걸 효율적으로 해주고 성능에 영향을 미치는지 큰 차이가 없으면 get_dummies 로 사용해도 되는지 궁금합니다.

 

또한 get_dummies 는 숫자형과, 오브젝트형이 포함된 전체 테이블을 넣어서 인코딩 하면 되는지도 궁금합니다.

 

답변 2

0

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

2024. 06. 13. 18:50

결론은 검정데이터를 활용한 평가 점수를 기준으로 선택하면됩니다.

어떤 것이 좋은지는 데이터에 따라 다르므로 성능으로 비교하는게 객관적이에요!

 

train = get_dummies(train) 과 같이 숫자, 오브젝트 전체를 넣으면 오브젝트면 자동으로 인코딩되어 숫자와 함께 반환합니다.

 

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 13. 10:21

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

momgrp24님의 질문에 대해 답변드리겠습니다. 작업형 2유형 문제 접근 시 get_dummies, MinMaxScaler, LabelEncoder의 사용과 선택 기준에 대해 알고 싶으신 것 같습니다. 이에 관해 여러 강의와 질의응답에서 다룬 내용을 기반으로 설명 드리겠습니다.

1. get_dummiesLabelEncoder

  • get_dummies: pandas에서 제공하는 함수로, 범주형 데이터를 원-핫 인코딩 방식으로 변환합니다. 이는 특정 카테고리 값을 각각의 열로 변환하여 이진 값(0 또는 1)으로 표현하는 방식입니다. 즉, 모델이 범주형 데이터를 이해할 수 있게 해주는 방법 중 하나입니다. 모델 종류에 따라, 특히 선형 모델이나 신경망 같이 거리 기반의 알고리즘에서 유용합니다.

  • LabelEncoder: sklearn에서 제공하는 함수로, 범주형 데이터를 숫자형으로 변환합니다. 각 범주가 고유한 정수 값에 맵핑됩니다. 주로 타깃 변수가 범주형일 때 사용되며, 특성 인코딩에는 OneHotEncoder를 주로 사용합니다.

2. MinMaxScaler

  • MinMaxScaler: 데이터의 특성 범위를 재조정하는 방법 중 하나로, 각 특성의 최소값과 최대값을 사용하여 일정 범위 (보통 0과 1 사이)로 데이터를 정규화합니다. 수치형 데이터에 대해 스케일링을 할 때 주로 사용되며, 이는 모델의 성능을 향상시킬 수 있습니다.

사용 상황

  • 상황에 따라: get_dummies는 범주형 데이터에 직접적으로 사용됩니다. MinMaxScalerLabelEncoder는 주로 수치형 데이터 또는 타깃 변수에 적용됩니다. 이들 간의 혼용 사용 여부는 데이터의 특성과 선택한 모델에 의해 결정됩니다.

  • 결과값의 차이: get_dummiesMinMaxScaler, LabelEncoder를 사용한 결과는 목적에 따라 달라집니다. get_dummies는 데이터의 특성 수를 증가시키지만, LabelEncoder는 그렇지 않습니다. MinMaxScaler는 데이터의 범위를 조정합니다.

  • 혼용 사용: get_dummies로 인코딩 된 후, 수치형 변수에 대해 MinMaxScaler를 적용하는 경우가 흔합니다. 모델 입력 데이터로 숫자만을 요구하는 경우가 많기 때문입니다.

결론 및 추천

  • 효율성과 성능: get_dummies와 스케일러/인코더 간의 효율성과 성능 영향은 데이터와 모델에 따라 다릅니다. 일반적으로, 데이터를 모델이 이해할 수 있는 형태로 처리하는 것이 중요하며, 이는 실험을 통해 최적의 방법을 결정합니다.

  • 전체 테이블 인코딩: get_dummies는 숫자형과 객체형이 포함된 전체 테이블에 적용할 수 있으멀로, 범주형 변수를 원-핫 인코딩하면서 수치형 변수를 그대로 유지할 수 있습니다.

정확한 상황 판단과 최적의 전처리 방법 선택을 통해, 모델 성능을 개선할 수 있습니다. 실험을 통해 다양한 전처리 방법의 영퉁을 비교하는 것이 좋습니다. 데이터 전처리 방법에 관한 더 상세한 설명을 원하신다면, 아래 링크들을 참고하시기 바랍니다.

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

momgrp24님의 프로필 이미지

작성한 질문수

질문하기