심화 스터디/Practical Statistics for Data Scientists

[Practical Statistics for data science] A팀: Scaling and Categorical Variables

시계는왓치. 2022. 7. 29. 02:18

# Scaling

  • 스케일링(scaling): 데이터의 범위를 늘리거나 줄이는 방식으로 여러 변수들이 같은 스케일에 오도록 하는 것
    • 비지도학습에 있어 데이터를 적절히 스케일링해야 하는 경우가 종종 있습니다.

 

# K-Means Clustering 에서 Scaling 유무에 따른 결과 비교

[결과 1] Scaling 없이 raw data로 Clustering

 

[결과 2] Scaling(표준화)된 data로 Clustering

  • 위의 두 결과 모두 loan_data를 4개의 Cluster로 분류한 결과입니다.
  • Scaling을 하지 않은 [결과 1]에서 Cluster에 속한 data 개수를 나타내는 'size'가 고르지 않습니다.
    • 여러 Feature들 가운데 그 값이 큰 'annual_inc', 'revol_bal'의 값이 분류에 큰 영향을 준 것으로 보입니다.
  • Scaling(z-score로 변환)을 거친 [결과 2]에서는 'size'가 네 개의 Cluster에 비교적 고르게 분포되어 있습니다.
    • 또한  'annual_inc', 'revol_bal'을 제외한 다른 feature의 상대적인 크기도 분류에 영향을 주었을 거라 예상됩니다. ( Dominant Feature들의 Cluster별 차이가 [결과 1]에서보다 줄었습니다)

# 주성분 분석 (PCA) 에서의 스케일링

  • 위에서 사용한 Loan Data처럼 변수들의 스케일 편차가 큰 데이터를 이용해 PCA를 할 때, 스케일링 여부에 따라 결과가 매우 다르게 나옵니다. 이는 R에서는 prcomp()함수 안에서 scale=T, center=T 로 구현할 수 있습니다.
  • 스케일링한 데이터로 PCA를 진행하는 것은 Covariance Matrix 대신 Correlation Matrix를 사용하여 고유값과 고유벡터를 구하는 것과 같습니다.
  • 아래 결과를 보면 스케일링 loan data에서는 스케일링 여부에 따라 계수들이 많이 달라지는 것을 알 수 있습니다.

[결과 3] 스케일링 여부에 따른 loan_data에서의 PCA

  • 전체 분산 중 주어진 주성분들이 표현하는 분산의 비율인 Cumulative Proportion 부분을 비교해보면 그 차이는 더 큽니다. 스케일링을 거치지 않았을 때에는 스케일이 큰 변수의 영향을 절대적으로 많이 받을 것이므로 2개의 주성분만으로도 대부분의 분산(96%)을 설명할 수 있는 반면, scaling을 거친 후에는 2개의 주성분이 전체 분산의 55%만을 설명할 수 있습니다.
  • 두 결과 중 무엇이 좋다고 콕 집어 말할 수는 없습니다. 데이터의 형태, 분석의 방법 및 목적 등 여러 요소들을 종합적으로 고려하여 scaling 여부를 결정하는 것이 좋습니다.

# Categorical Data 

  • 범주형 데이터를 다룰 때에는 보통 원핫 인코딩을 사용하거나, 더미변수를 생성하거나 하는 과정을 거쳐 이산적인 수치형 변수로 변환하여 사용합니다. 
  • 데이터에 이러한 변수들과 연속형 변수들이 섞여 있다면, 비슷한 스케일이 되도록 변수의 크기 조정이 필요할 수 있습니다. 대표적인 방법으로는 고워 거리(Gower's Distance)가 있습니다.
  • Z-score나 minmax-scaler처럼 변수 자체를 표준화/정규화하는 것은 아니지만, 7장이 Clustering에 관한 내용인 만큼 Clustering에 필요한 Distance Matrix를 만드는 방법을 소개합니다.

# Gower's Distance

  • 고워 거리의 기본 아이디어는 각 변수의 데이터 유형에 따라 거리 지표를 다르게 적용하는 것입니다.
  • 수치형, 순서형 데이터에서 두 레코드 간의 거리는 맨하탄 거리로 계산합니다.
  • 범주형 변수의 경우 두 레코드 사이의 범주가 다르면 1, 같으면 0으로 계산합니다.
  • 다음에는 이하의 과정을 거칩니다.
    • 1. 모든 variable에 대해 거리 d를 계산합니다.
    • 각 d의 범위가 0~1이 되도록 스케일을 조정합니다. 
    • Distance Matrix를 만듭니다 : 가중합을 하거나, 평균을 취하는 등 여러 방법이 있습니다.

[결과 4] x0과 다른 관측치들 사이의 Gower Distance를 구하는 과정