강의

멘토링

커뮤니티

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

밑바닥개발자님의 프로필 이미지
밑바닥개발자

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

회귀 실습 2: 캐글경연 주택가격 예측 - Advanced Regression Techniques - 02

skew값이 음수인 feature와 pandas의 get_dummies에 대한 질문입니다.

작성

·

477

1

안녕하세요! 질 좋은 강의에 항상 감사인사 드립니다. 두 가지 질문만 드리겠습니다.

1. 중간에 feature별 skewness 수치를 보고 편향된 분포의 feature들을 log변환 해줄 때 skewness값이 1보다 큰 값의  feature들에만 log를 취하셨는데 skewness값이 음수일 때(왼쪽으로 늘어진 꼬리형태의 분포)의 feature값들은 일부러 log처리를 하시지 않으신건가요?(즉, skewness값이 음수일 때의 feature도 고려하지 않은 것에 대한 이유가 있을까요?!)

2. pandas의 get_dummies를 이용해서 원-핫 인코딩을 하셨는데, get_dummies함수 인자에 원-핫 인코딩할 변수명을 지정안해주신 걸로 보아서는 get_dummies함수가 알아서 각 변수마다 수치형/범주형 변수인지 확인하고 범주형 변수를 선택해 원-핫 인코딩해주는 것 같습니다..(만약 아니라면 말씀해주십시오 ㅜㅜ) 그렇다면 get_dummies인자에 원-핫 인코딩할 변수들을 사전에 지정해준다면 코드가 동작할 때 계산되는 연산량이나 메모리를 좀 줄일 수 있는 방안이 될까요!?

#예를 들어, pd.get_dummies(columns=['변수1','변수2']) 이런식으로요!

감사합니다.

답변 2

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

1. 보통 업무적인 데이터의 skew는 오른쪽(positive) long tail이 많습니다. 그리고 log transformation은 오른쪽 long tail 일때만 적용합니다.  만약 원본 값에 - 값이 있다면 log의 정의로 인하여 log값으로 변환할 수 없습니다.

 left skew인 경우는 업무적으로 그렇게 많지 않지만 이를 보정할 방법도 효율적이진 않습니다. 보통  제곱 변환(square transformation)을 하지만 그렇게 효율적인 방법은 아닙니다. 때문에 보통 left skew는 잘 변환하지 않습니다.

2. 네 맞습니다. pandas의 get_dummies() 자동으로 object 대상 컬럼만 원-핫 인코딩해줍니다.  원-핫 인코딩 대상을 줄여주는 경우가 아니라면  변수를 사전에 지정해 준다고 내부 로직에서 얼마나 메모리/시간을 절약해줄지는 의문입니다. 코드 작성의  명확성을 위해서 변수를 사전에 지정해 주면 좋을 것 같습니다.

감사합니다.

0

아하 그렇군요!! 오늘도 알아갑니다! 답변 감사드립니다 :)

밑바닥개발자님의 프로필 이미지
밑바닥개발자

작성한 질문수

질문하기