오른쪽 치우침 데이터 보정
슬라이드에서 양의 왜도(분포가 왼쪽에 많이 몰려 있는 데이터)를 로그 변환으로 보정하는 방법을 살펴봤어요. 음의 왜도(분포가 오른쪽에 많이 몰려 있는 데이터)를 보정하려면, 역함수인 $\log\(의 역, 즉 (1/\)\log\()를 적용하기 전에 "반사(reflecting)"라는 추가 단계를 거쳐 데이터를 보다 정규분포에 가깝게 만들어야 합니다. 데이터 반사는 각 값을 다음 공식을 사용해 변환합니다: \)(x_{\text{max}} +1) – x$.
이 연습은 강의의 일부입니다
PySpark로 하는 Feature Engineering
연습 안내
- 집계 함수
skewness()를 사용해'YEARBUILT'에 음의 왜도가 있는지 확인하세요. withColumn()을 사용해 새 열'Reflect_YearBuilt'을(를) 만들고'YEARBUILT'값을 반사하세요.'Reflect_YearBuilt'열을 사용해 값에 1/log()를 적용하여 또 다른 열'adj_yearbuilt'을(를) 생성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
from pyspark.sql.functions import log
# Compute the skewness
print(df.____({____: ____}).____())
# Calculate the max year
max_year = df.____({____: ____}).____()[0][0]
# Create a new column of reflected data
df = df.____(____, (max_year + 1) - df[____])
# Create a new column based reflected data
df = df.____(____, 1 / ____(df[____]))