Outliers को संभालना

Python में Exploratory Data Analysis

George Boorman

Curriculum Manager, DataCamp

Outlier क्या है?

  • अन्य डेटा पॉइंट्स से बहुत दूर पड़ी ऑब्ज़र्वेशन
    • Median घर की कीमत: $400,000
    • Outlier घर की कीमत: $5,000,000

 

  • क्यों मान अलग है, यह देखें:
    • लोकेशन, बेडरूम की संख्या, कुल साइज आदि

स्विमिंग पूल वाला बड़ा घर

1 Image credit: https://unsplash.com/@ralphkayden
Python में Exploratory Data Analysis

वर्णनात्मक आँकड़ों का उपयोग

print(salaries["Salary_USD"].describe())
count       518.000
mean     104905.826
std       62660.107
min        3819.000
25%       61191.000
50%       95483.000
75%      137496.000
max      429675.000
Name: Salary_USD, dtype: float64
Python में Exploratory Data Analysis

Interquartile range का उपयोग

Interquartile range (IQR)

  • IQR = 75th - 25th percentile
Python में Exploratory Data Analysis

बॉक्स प्लॉट्स में IQR

sns.boxplot(data=salaries,
            y="Salary_USD")
plt.show()

डेटा प्रोफेशनल्स के वेतन का बॉक्स प्लॉट, जिसमें 25th पर्सेंटाइल बॉक्स के नीचे, 50th पर्सेंटाइल बीच की रेखा, 75th पर्सेंटाइल बॉक्स के ऊपर, और बॉक्स के बाहर डायमंड्स के रूप में outliers दिखते हैं

Python में Exploratory Data Analysis

Interquartile range का उपयोग

Interquartile range (IQR)

  • IQR = 75th - 25th percentile
  • Upper Outliers > 75th percentile + (1.5 * IQR)
  • Lower Outliers < 25th percentile - (1.5 * IQR)
Python में Exploratory Data Analysis

थ्रेशहोल्ड पहचानना

# 75th percentile
seventy_fifth = salaries["Salary_USD"].quantile(0.75)

# 25th percentile twenty_fifth = salaries["Salary_USD"].quantile(0.25)
# Interquartile range salaries_iqr = seventy_fifth - twenty_fifth
print(salaries_iqr)
76305.0
Python में Exploratory Data Analysis

Outliers पहचानना

# Upper threshold
upper = seventy_fifth + (1.5 * salaries_iqr)

# Lower threshold lower = twenty_fifth - (1.5 * salaries_iqr)
print(upper, lower)
251953.5 -53266.5
Python में Exploratory Data Analysis

हमारा डेटा सबसेट करना

salaries[(salaries["Salary_USD"] < lower) | (salaries["Salary_USD"] > upper)] \

[["Experience", "Employee_Location", "Salary_USD"]]
        Experience    Employee_Location    Salary_USD
29      Mid           US                   429675.0
67      Mid           US                   257805.0
80      Senior        US                   263534.0
83      Mid           US                   429675.0
133     Mid           US                   403895.0
410     Executive     US                   309366.0
441     Senior        US                   362837.0
445     Senior        US                   386708.0
454     Senior        US                   254368.0
Python में Exploratory Data Analysis

Outliers ढूँढना क्यों?

  • Outliers अत्यधिक मान होते हैं

    • जो हमारे डेटा का सही प्रतिनिधित्व नहीं कर सकते
  • Mean और standard deviation बदल सकते हैं

  • सांख्यिकीय परीक्षण और Machine Learning मॉडल को सामान्य-वितरित डेटा चाहिए

Python में Exploratory Data Analysis

Outliers के साथ क्या करें?

पूछने के सवाल:

  • ये outliers क्यों हैं?
    • अधिक सीनियर रोल्स/अलग देशों में ज्यादा वेतन
    • उन्हें डेटासेट में रहने देने पर विचार करें

 

  • क्या डेटा सटीक है?
    • क्या डेटा कलेक्शन में गलती हो सकती है?
      • यदि हाँ, तो हटा दें
Python में Exploratory Data Analysis

Outliers हटाना

no_outliers = salaries[(salaries["Salary_USD"] > lower) & (salaries["Salary_USD"] < upper)]
print(no_outliers["Salary_USD"].describe())
count       509.000000
mean     100674.567780
std       53643.050057
min        3819.000000
25%       60928.000000
50%       95483.000000
75%      134059.000000
max      248257.000000
Name: Salary_USD, dtype: float64
Python में Exploratory Data Analysis

वेतन का वितरण

आउटलायर्स को median से बदलने के बाद वेतन का हिस्टोग्राम, जिसमें लगभग $250000 से $450000 तक के अत्यधिक मान शामिल हैं

आउटलायर्स को median से बदलने के बाद वेतन का हिस्टोग्राम, जो लगभग सामान्य वितरण जैसा दिखता है

Python में Exploratory Data Analysis

अभ्यास करते हैं!

Python में Exploratory Data Analysis

Preparing Video For Download...