Data 공부

[통계] 데이터 스케일링(Skewed 데이터) 본문

Data 공부/통계 & ML

[통계] 데이터 스케일링(Skewed 데이터)

Junseokk 2023. 6. 14. 17:20

데이터 스케일링(Skewed 데이터)


 

 

<Skewed data>

*참조 :https://statacumen.com/teach/S4R/PDS_book/skewed-left-distributions.html

 

1. 데이터 스케일링이란?

- 데이터 분석을 하기 위해 데이터 스케일링을 하는 이유는 정규성을 높이고 분석(회귀분석 등)에서 정확한 값을 얻기 위함이다. 데이터 간 편차를 줄여 왜도(skewness)와 첨도(kurtosis)를 줄일 수 있기 때문에 정규성이 높아진다.

 

2-1. 로그(log) 변환 (np.log)

  • 데이터의 분포를 모았을 때 밀집되어 있는 부분은 퍼지게, 퍼져있는 부분은 모아지게 만들기 위하여 실행.
  • np.log()를 사용하기보다는 np.log1p()를 사용하여 0의값을 가질경우 -inf로 나타나는 현상을 방지하는 것이 좋음

2-2. 루트(sqrt) 변환 (np.sqrt)

  • 루트 변환을 함으로써 데이터의 분포를 퍼지게 하기 위하여 실행.
  • 로그 변환보다는 효과가 덜 할 가능성 있음.

2-3. Box-cox 변환(scipy.stats.boxcox or sklearn.preprocessing.power_transform)

  • Box-cox 변환은 데이터 분포의 정규성을 높이기 위해 사용되는 방법 중 하나이다. 이 방법은 데이터가 양수일 때 사용되며, 데이터를 어떤 지수로 제곱하는 방법으로 변환한다. 변환된 데이터는 정규분포에 근접하게 되며, 이후에 분석에 적용할 수 있다.

2-4. Yeo-Johnson 변환(sklearn.preprocessing.power_transform)

  • Box-Cox 변환의 확장 버전, 음수 데이터를 다룰 수 있음

2-5. 분위수 변환(np.percentile)

  • 데이터의 값이 큰 차이를 가지는 경우, 데이터의 분위수를 이용하여 변환.

 

반응형
Comments