작성
·
3.5K
0
선생님~
선형회귀에서 학습/예측하기 전에
타겟값이 정규분포형태를 띄지 않을 경우, 정규분포로 만들어 주기 위해 '로그변환'을 해주었잖아요~
PCA에서는 정규분포로 만들어주기 위해
PCA를 적용할 피처들을 모두 StandardScaler를 해주는데..
공부하면서 궁금한 점이..
로그변환과 스케일링이 방식이 조금은 차이가 나지만 둘다 사용의도가 데이터 값들 간의 간극을 좁히고 정규분포 형태로 만들어주는 의미인 것 같아서..사용법에 대해서 확연한 차이가 느껴지지 않는데..
어떨 때 로그변환을 쓰고 어떨 때 스케일링을 쓰는 것이 좋은 것인지 ...궁금해지네요..
정해진 게 아닌 것 같긴한데.. 그냥 아무 상관이 없는 건지..
궁금해서 질문드립니다..!
추가적으로,
통계분석에서는 정규성검정(kolmogo-rov)같은 기능이 머신러닝에서는 있는지 궁금합니다. (선형회귀에서 타겟값의 정규 분포를 확인할 때 distplot 으로 정규분포형태인지 아닌지 확인하는 정도 인 것 같아서요..)
답변 2
1
안녕하십니까,
딱 정해서 말씀드리면, 개별 feature, 또는 target의 분포도가 skew가 심하면 log 변환을 합니다. Standard Scaler는 일반적으로 선형기반의 머신러닝의 입력 (전체) 데이터들에 대해서 다 적용합니다. 보통 scaling은 전체 feature들에(카테고리성 피처 제외) 다 적용합니다.
Skew가 심하면 로그 변환, 전체 데이터의 스케일링을 표준 정규 분포 형태로 맞추고 싶다면 Standard Scaler를 적용합니다(선형 기반의 머신러닝의 입력에서 MinMax나 Standard scaler를 선호는 합니다)
그리고 아래 질문
통계분석에서는 정규성검정(kolmogo-rov)같은 기능이 머신러닝에서는 있는지 궁금합니다.
=> 머신러닝에 있다/없다 라는 표현 보다는 정규성 검정과 데이터 세트의 분포를 검정하는 것이기 때문에 필요하면 분포 검정 패키지등을 이용해서 하면 됩니다.
R의 Q-Q Plot , sharpiro 검정과 같은 기능을 하는 것이 scipy 패키지에 있으니, 좀 더 명확하게 정규성 검정을 하고 싶으시면 scipy stat 패키지를 이용하시면 됩니다.
음, 그리고 생각해보니, Q-Q Plot을 시각화 해주면 좀더 나은 설명이 될 수도 있겠군요. 나중에 강의/책 개편할 때 함 고민해 보겠습니다.
감사합니다.
0