Right Skew डेटा को ठीक करना
स्लाइड्स में आपने देखा कि positively skewed डेटा (जिसका वितरण ज़्यादातर बाएँ तरफ़ होता है) को ठीक करने के लिए आप log ट्रांसफॉर्म्स का उपयोग कर सकते हैं। Negative skew (डेटा ज़्यादातर दाईं तरफ़) को सुधारने के लिए, inverse \(\log\) लगाने से पहले एक अतिरिक्त स्टेप चाहिए जिसे "reflecting" कहते हैं। फिर आप (1/\(\log\)) लगाते हैं ताकि डेटा सामान्य वितरण जैसा दिखे। Reflecting के लिए हर वैल्यू पर यह फ़ॉर्मूला लागू करें: \((x_{\text{max}} +1) – x\).
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Feature Engineering
अभ्यास निर्देश
- aggregate फंक्शन
skewness()का उपयोग करके सत्यापित करें कि'YEARBUILT'में negative skew है। withColumn()का उपयोग करके नया कॉलम'Reflect_YearBuilt'बनाएँ और'YEARBUILT'की वैल्यूज़ को reflect करें।'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[____]))