강의

멘토링

로드맵

Inflearn brand logo image

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

gkfksla님의 프로필 이미지
gkfksla

작성한 질문수

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

7회 기출유형(작업형2)

수치형 스케일러와 범주형 인코딩 관련 컬럼지정 질문

해결된 질문

작성

·

38

0

2유형 학습중 이해를 잘 못한 부분이 있습니다.

 

먼저 수치형 변수 스케일러의 경우

스케일러함수(train) 이렇게만 사용하거나

스케일러함수(train['수치형변수'] 이렇게 사용할 때가 있고

 

동일하게 변수형 변수 인코딩의 경우

라벨인코딩(train) 이렇게는 사용 안하고

항상 라벨인코딩(train[cols]) 이렇게 사용하시는데

원핫인코딩(train) 이런식으로 사용하시는 부분에 있어서

 

어떤 함수가 파이썬에서 자동으로 수치형과 범주형을 구분해서 변환해주는지 궁금합니다. GPT에도 확인했지만 물어볼 때마다 답이 다르네요...

답변 2

0

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

스케일 -> 반복문 없어도 복수 컬럼 적용가능

라벨 인코딩 -> 복수 컬럼일 경우 반복문 필요

원핫 인코딩 -> 판다스 겟더미즈를 사용한다면 자동으로 범주형만 선택해서 인코딩 함

 

화이팅입니다 :)

0

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

gkfksla님의 질문을 보니, 데이터 전처리 시 특히 수치형과 범주형 데이터를 어떻게 구분해서 스케일링과 인코딩을 적용하는지에 대한 궁금증을 가지고 계신 것 같습니다. 이를 설명드리겠습니다.

  1. 수치형 스케일링:

    • MinMaxScaler()와 같은 스케일러는 수치형 데이터에 적용됩니다. 보통은 특정 수치형 변수들만 선택하여 스케일링을 적용합니다. 예를 들어, scaler.fit_transform(train['수치형변수'])는 특정 수치형 변수에만 스케일링을 적용하는 방식입니다. 전체 데이터프레임에 스케일링을 직접 적용하면 안 되며, 수치형 컬럼만 선택하여 스케일링해야 합니다.
  2. 범주형 인코딩:

    • 라벨 인코딩은 범주형 데이터를 정수로 변환해주며, 주로 LabelEncoder를 사용합니다. 이 경우 train[cols]와 같이 범주형 컬럼들만 선택해서 적용하게 됩니다. 이는 라벨 인코더가 범주형 데이터의 고유값을 정수로 변환하는 기능이 있기 때문입니다.
    • 원핫 인코딩pd.get_dummies()를 사용하며, 데이터프레임에 대해 직접 적용할 수 있습니다. 이 함수는 자동으로 범주형 데이터만 찾아서 인코딩을 진행하며, 자동으로 범주형 컬럼에 대해 원핫 인코딩을 수행해주기 때문에 매우 편리합니다.

결론적으로, pd.get_dummies(train)는 자동으로 범주형 데이터를 인식하여 원핫 인코딩을 진행하므로 이를 사용할 때는 수치형과 범주형을 따로 지정할 필요가 없습니다. 반면, 스케일링이나 라벨 인코딩의 경우에는 적용할 컬럼을 명시적으로 지정해주는 것이 필요합니다. 필요한 경우, select_dtypes 함수를 사용하여 수치형이나 범주형 컬럼을 변수로 따로 받는 방식을 사용하면 됩니다.

관련된 유사한 질문 및 답변은 아래 링크에서 확인해 보실 수 있습니다:
- 작업형 2. 스케일링 질문
- 4회 기출 유형(작업형2) 15:15 질문드립니다.

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

gkfksla님의 프로필 이미지
gkfksla

작성한 질문수

질문하기