2.1.3 · HinglishData Preprocessing & Feature Engineering

Outlier detection and treatment

3,494 words16 min readRead in English

2.1.3 · AI-ML › Data Preprocessing & Feature Engineering

Asli sawaal yeh hai: Kya yeh outlier kuch important bata raha hai, ya yeh hamare model ko corrupt kar raha hai?

Outliers Ko Samajhna

Outliers kyun matter karte hain?

  1. Model sensitivity: Bahut saare ML algorithms (linear regression, k-means, PCA) mean-based hote hain aur extreme values ke liye highly sensitive hote hain
  2. Gradient instability: Bade outliers steep gradients create karte hain, jisse optimization oscillate karne lagta hai
  3. Feature scale distortion: Outliers variance inflate karte hain, jisse normalization ineffective ho jaati hai
  4. Decision boundary shift: Classification mein, outliers boundaries ko apni taraf kheenchte hain

Ek point outlier kya banata hai?

  • Statistical deviation (jaise, mean se >3σ door)
  • Feature space mein isolation
  • Low local density
  • Domain-specific thresholds (jaise, human age > 150 years)

Detection Methods

1. Statistical Methods (Univariate)

Derivation:

  • Standard deviation ki definition se shuru karo:
  • Yeh ke aaspaas typical spread measure karta hai
  • ko se divide karne par ek dimensionless measure milta hai: "kitne typical spreads door?"
  • Normal distributions ke liye 68-95-99.7 rule ke mutabik: ~99.7% data ke andar hota hai
  • Yeh kyun kaam karta hai: Alag-alag scales mein comparison ko standardize karta hai

Threshold: (ya 2.5, tolerance par depend karta hai)

Yeh step kyun kaam karta hai: Z-score absolute distances ko relative distances mein convert karta hai, jisse yeh scale-invariant ban jaata hai.

Derivation:

  • (25th percentile) aur (75th percentile) data ke beech ke 50% ko define karte hain
  • IQR is central bulk ka spread measure karta hai
  • 1.5 kyun? Tukey ka empirical rule: sensitivity aur false positives ke beech balance karta hai. Normal data ke liye, ~0.7% ko outlier pakad ta hai
  • Fences se baahir ke points bulk se door hain, chahe distribution skewed ho

Yeh step kyun kaam karta hai: Percentiles (rank-based) use karta hai, isliye extreme values se immune hai jo mean/std ko distort kar deti hain.

Z-score approach:

mean = 43.6, std = 42.8
z_150 = (150 - 43.6) / 42.8 = 2.48

Yeh step kyun? Hum distance ko standardize kar rahe hain. Result: 150 flag NAHI hua (|z| < 3) kyunki outlier ne khud hi std inflate kar diya!

IQR approach:

Q1 = 25.5, Q3 = 33.5, IQR = 8
Upper fence = 33.5 + 1.5*8 = 45.5

Yeh step kyun? Hum "normal" define karne ke liye beech ke 50% use karte hain, extremes ko ignore karke. Result: 150 > 45.5, correctly flagged.

Lesson: Jab outliers mean/std ko contaminate kar dein, tab IQR robust hai.

2. Multivariate Methods

jahan mean vector hai, covariance matrix hai.

First principles se Derivation:

  1. mein Euclidean distance:
    • Problem: Saari dimensions ko equally treat karta hai, correlations ignore karta hai
  2. Har dimension ko standardize karo: se divide karo → "units of spread" mein distance
    • Problem: Phir bhi correlations ignore karta hai (jaise, height aur weight correlated hain)
  3. Covariance account karo: Covariance matrix dono variances (diagonal) aur correlations (off-diagonal) encode karta hai
  4. Whitening transformation: data ko unit sphere mein transform karta hai jahan dimensions uncorrelated hain
  5. Final distance: is transformed space mein squared distance hai

Yeh kyun kaam karta hai:

  • Agar features independent hain, diagonal hai → standardized Euclidean par reduce ho jaata hai
  • Agar correlated hain, toh "redundant" dimensions ko down-weight karta hai
  • Normality ke under distribution follow karta hai, ek statistical threshold deta hai

Threshold: ( degrees of freedom ke saath chi-squared ka 97.5th percentile)

Mahalanobis kyun help karta hai:

  • Euclidean distance dono ko mean [2000 sqft, 3 beds] se equally door treat karta hai
  • Mahalanobis recognize karta hai ki sqft aur bedrooms correlated hain (r ≈ 0.8)
  • House A is correlation ko violate karta hai → zyada , anomaly ki tarah flag hota hai
  • House B pattern follow karta hai → kam , flag nahi hota

Step-by-step calculation (simplified 2D):

mu = [2000, 3]
Sigma = [[1e6, 0.8*1000*2],   # cov(sqft, beds) = r*σ_sqft*σ_beds
         [0.8*1000*2, 4]]
Sigma_inv = inverse(Sigma)
 
x_A = [5000, 2]
diff_A = x_A - mu = [3000, -1]
D_M_A = sqrt(diff_A^T @ Sigma_inv @ diff_A) ≈ 8.2

Yeh value kyun? Negative correlation component (bahut sqft lekin kam beds) distance mein add ho jaata hai.

3. Density-Based: Local Outlier Factor (LOF)

jahan local reachability density (lrd) hai:

aur reachability distance:

Derivation logic:

  1. k-distance: ke -ve nearest neighbor tak ki distance
  2. Reachability distance: "Smoothing" factor ki tarah -dist use karta hai
    • Kyun? Jab points bahut paas hoon tab instability se bachata hai
    • Agar se door hai, actual distance use karo
    • Agar ki neighbourhood mein hai, stabilize karne ke liye -dist(o) use karo
  3. LRD: Average reachability distance ka inverse → zyada lrd = denser region
  4. LOF: Neighbors ki density ka point ki density se ratio
    • LOF ≈ 1: neighbors jaisi density (normal)
    • LOF >> 1: neighbors se bahut kam density (outlier)

Yeh kyun kaam karta hai: Varying densities ke liye adapt karta hai. Ek sparse cluster mein ek point outlier nahi hai agar uske neighbors bhi sparse hain.

Dense cluster A: [points at (0,0) ± 0.5]
Dense cluster B: [points at (10,0) ± 0.5]
Sparse middle: (5, 0)
Far outlier: (20, 5)

Z-score (global): Dono (5,0) aur (20,5) flag hote hain (global mean ≈ (5,0) se door) LOF (local):

  • (20,5): LOF ≈ 5 (neighbors ~11 distance par hain, lekin unke neighbors ~0.5 par hain) → outlier
  • (5,0): LOF ≈ 1.2 (dono clusters ke neighbors bhi relatively isolated hain) → not outlier

Yeh kyun matter karta hai: Beech wala point expected hai (transition region), lekin door wala point truly anomalous hai.

Treatment Strategies

Outliers RAKHNE chahiye jab:

  1. Domain knowledge confirm kare ki valid hai (jaise, employee data mein CEO salary)
  2. Interest ka target ho (fraud detection, rare disease diagnosis)
  3. Tree-based models (decision trees, random forests) outliers ko splits ke zariye handle karte hain

REMOVE karna chahiye jab:

  1. Data errors (age = 200, negative prices)
  2. Sample size badi hai (>10,000) aur outliers <0.1% hain
  3. Linear/distance-based models (regression, KNN, SVM with RBF kernel)

TRANSFORM karna chahiye jab:

  1. Information lose kiye bina impact reduce karna ho
  2. Medium sample size (1,000-10,000)
  3. Outliers ka business meaning hai lekin statistics distort karte hain

Treatment Methods

1. Capping (Winsorization)

P_5 & \text{if } x_i < P_5 \\ x_i & \text{if } P_5 \leq x_i \leq P_{95} \\ P_{95} & \text{if } x_i > P_{95} \end{cases}$$ jahan $P_5$, $P_{95}$ 5th aur 95th percentiles hain. **Yeh kyun kaam karta hai**: Order (monotonicity) preserve karta hai jabki extreme values ko limit karta hai. Outliers model ko affect karte toh hain, bas kam. **2. Log Transform** $$x_i^{\text{log}} = \log(x_i + c)$$ jahan $c$ ek constant hai (aksar 1) zeros handle karne ke liye. **Yeh outlier impact kyun reduce karta hai — Derivation:** - Log ek **monotonic, concave** function hai: $\frac{d^2}{dx^2}\log(x) = -\frac{1}{x^2} < 0$ - Concavity ka matlab: high values par equal absolute differences zyada compress hoti hain low values ki tulna mein - Example: $\log(1000) - \log(100) = \log(10) = 2.3$, lekin $(1000 - 100) = 900$ - Original space mein 900-unit ka difference log space mein 2.3-unit ka difference ban jaata hai - **Result**: High outliers bulk ki taraf "khench" aate hain **Yeh step kyun kaam karta hai**: Multiplicative relationships ko additive mein convert karta hai, jisse models zyada stable hote hain. **3. Robust Scaling** $$x_i^{\text{scaled}} = \frac{x_i - \text{median}}{\text{IQR}}$$ **Yeh kyun kaam karta hai**: Median aur IQR beech ke 50% data se compute hote hain, outliers se unaffected. Standard scaling $\frac{x - \mu}{\sigma}$ se compare karo, jise outliers corrupt kar dete hain. **4. Binning/Discretization** $$x_i^{\text{bined}} = \begin{cases} 0 & \text{if } x_i < Q_1 \\ 1 & \text{if } Q_1 \leq x_i < Q_2 \\ 2 & \text{if } Q_2 \leq x_i < Q_3 \\ 3 & \text{if } x_i \geq Q_3 \end{cases}$$ **Yeh kyun kaam karta hai**: Numeric ko ordinal mein convert karta hai, jisse exact values irrelevant ho jaati hain. 1000 aur 1000000 dono bin 3 mein map ho jaate hain. > [!example] Treatment Comparison > **Scenario**: Loan default predict karne ke liye Income feature [20K, 25K, 28K, 30K, 35K, 500K] | Method | Result | Impact on Model | |--------|--------|---------------| | **Keep** | [20K, 25K, .., 500K] | Linear model: coefficient income ko overweight karta hai (500K outlier ki wajah se) | | **Remove** | [20K, 25K, 28K, 30K, 35K] | High earners ke baare mein info lose hoti hai (relevant ho sakta hai: amir log kam default karte hain?) | | **Cap at P95** | [20K, .., 35K, 35K] | Order preserve hota hai, lekin 500K→35K signal lose karta hai agar high income sach mein matter kare | | **Log transform** | [9.9, 10.1, ..., 13.1] | 500K→13.1: phir bhi sabse bada lekin proportional impact reduced. **Best if multiplicative effect** | | **Robust scale** | [-1.1, -0.3, 0, 0.4, 1.4, 104] | 500K→104: scaled space mein phir bhi extreme (IQR sirf 10K) | | **Bin (quartiles)** | [0, 1, 1, 2, 2, 3] | Information loss lekin robust. Tree models bin3 par split kar sakte hain. | **Decision rule**: - Agar income-default relationship **multiplicative** hai (jaise, 2x income → 0.5x default rate): **log transform** - Agar 500K likely ek error hai: **remove** ya **cap** - Agar **tree models** use kar rahe ho: **keep** (trees use splits se isolate karte hain) - Agar **linear model** use kar rahe ho aur high incomes rare hain: **cap** ya **bin** > [!mistake] Common Mistake: Blindly Removing All Outliers > **Yeh sahi kyun lagta hai**: "Outliers errors hain, inhe saaf karo!" **Is intuition ko strong banate hain**: Outliers sach mein bahut models ke liye problem create karte hain. Controlled environments (lab experiments) mein, yeh aksar errors hi hote hain. **Yeh galat kyun hai**: 1. **Aap information lose karte ho**. Real-world data (sales, user behavior) mein, extreme values aksar sabse interesting hoti hain (power users, viral products). 2. **Aap population change karte ho**. Agar aap saari incomes >100K remove kar do, toh aapka model high earners ke liye kaam nahi karega. 3. **Test-time mismatch**. Production data mein outliers honge; agar aapke model ne unhe kabhi nahi dekha, toh woh fail ho jaayega. **Fix**: - **Pehle investigate karo**: Outliers plot karo, check karo ki woh errors hain ya nahi (domain knowledge). - **Remove mat karo, transform karo**: Robust methods use karo jo impact reduce karein lekin information retain karein. - **Model choice**: Aise algorithms use karo jo outliers ke liye robust hain (trees, robust regression) agar outliers expected hain. - **Stratified treatment**: Errors cap karo, rare lekin valid cases rakhho, anomalies ko alag handling ke liye flag karo. > [!mistake] Z-Score on Contaminated Data > **Yeh sahi kyun lagta hai**: "Standard deviations spread measure karne ka standard tarika hai!" **Is argument ko strong banate hain**: Z-scores theory mein well-grounded hain (CLT, normal distribution) aur interpret karna aasaan hai. **Yeh kyun fail hota hai**: Wahi outliers jo aap detect karne ki koshish kar rahe ho, $\mu$ aur $\sigma$ inflate kar dete hain, jisse woh **invisible** ho jaate hain. **Example**: ``` Data: [1, 2, 3, 4, 5, 100] Mean = 19.2, Std = 39.3 Z-score of 100 = (100 - 19.2) / 39.3 = 2.05 (not flagged!) ``` **Fix**: **Robust statistics** use karo (median, MAD, IQR) ya **iterative methods** (detected outliers remove karo, recalculate karo, repeat karo). > [!recall]- 12 Saal Ke Bachche Ko Samjhao > Socho tum track kar rahe ho ki tumhare classmates roz homework mein kitna waqt lagate hain. Zyaadatar bacche 1-2 ghante lagate hain. Lekin ek bachcha kehta hai woh 15 ghante lagata hai—yeh ek **outlier** hai. Ab, kya woh bachcha jhooth bol raha hai? Ya shayad woh bahut dedicated hai? Ya usne galat samjha aur neend ka waqt bhi include kar liya? Tumhe **detect** karna hoga ki kya woh sach mein alag hai, phir **decide** karna hoga ki kya karein. **Detection** matlab poochna: "Kya is bachche ka number bahut zyada weird hai?" Tum: - Check kar sakte ho ki woh average se "3 bade jumps" se zyada door hai ya nahi (Z-score) - Dekh sakte ho ki woh us range ke baahir hai jahan zyaadatar bacche hain (IQR) - Unhe apne study-group dosto se compare kar sakte ho—agar group mein sab 1 ghanta lagate hain lekin yeh 15 claim karta hai, toh yeh suspicious hai (LOF) **Treatment** matlab chunna: - **Ignore karo** agar clearly galat hai (shayad unhone "15" likha "1.5" ki jagah) - **Rakhho** agar real hai (kuch bacche sach mein bahut padhte hain!) - **Number thoda neeche karo** taaki tumhara average zyada affect na ho (capping ya log transform) Key yeh hai: Weird numbers automatically delete mat karo. Pehle samjho **kyun** woh weird hain! > [!mnemonic] OUTLIER Treatment > **O**bserve context (domain knowledge) > **U**se robust statistics (median/IQR, not mean/std) > **T**ransform before removing (log, cap) > **L**ocal methods for varying density (LOF) > **I**nvestigate causes (error vs. rare event) > **E**valuate model impact (test with/without) > **R**etain if target-relevant (fraud, anomalies) ## Algorithm-Specific Considerations | Algorithm | Sensitivity | Recommended Approach | |--------|-------------|----------------------| | **Linear Regression** | High (OLS squared errors minimize karta hai → outliers dominate) | Remove/cap ya robust regression use karo (Huber, RANSAC) | | **Logistic Regression** | Medium (sigmoid influence ko bound karta hai, lekin phir bhi gradient-based) | Extreme features cap karo, regularization use karo (L1/L2) | | **Decision Trees** | Low (splits outliers ko small partitions mein isolate karte hain) | Outliers rakhho (tree adapt karta hai), lekin cap karo agar >5% data ho | | **Random Forest** | Very Low (averaging + bagging outlier impact reduce karta hai) | Outliers rakhho | | **K-Means** | High (mean-based centroids outliers se pull hote hain) | Remove karo ya K-medoids/DBSCAN use karo | | **KNN** | High (distance-based → outliers neighborhoods distort karte hain) | Remove karo ya robust scaling + distance weighting use karo | | **SVM** | Medium (kernel par depend karta hai; RBF sensitive, linear kam) | Robust scaler se scale karo, extremes cap karo | | **Neural Networks** | Medium (mini-batch gradient averaging help karta hai, lekin bade errors phir bhi propagate hote hain) | Gradients clip karo, batch norm use karo, cap/log transform karo | ## Connections - [[2.1.01-Missing-data-handling]] - Outliers aur missing data aksar saath hote hain; dono ke liye domain knowledge chahiye - [[2.1.02-Feature-scalingand-normalization]] - Robust scaling explicitly outliers handle karta hai; standard scaling nahi - [[2.2.01-Feature-selection]] - Outliers correlation-based selection methods distort kar sakte hain - [[3.3.02-Anomaly-detection]] - Outlier detection ek form hai unsupervised anomaly detection ka - [[4.1.03-Regularization]] - L1/L2 regularization training data mein outliers ke liye model sensitivity reduce karta hai - [[2.3.01-Encoding-categorical-variables]] - Rare categories categorical space mein outliers ki tarah kaam karti hain #flashcards/ai-ml Outlier kya hota hai? :: Ek data point jo baaki observations se kaafi alag hota hai, statistical distance (z-score, IQR) ya density (LOF) se measure kiya jaata hai. IQR method fences ke liye 1.5 × IQR kyun use karta hai? ::: Tukey ka empirical rule: sensitivity aur false positives ke beech balance karta hai. Normal data ke liye, ~0.7% ko outlier pakadta hai. Percentiles use karta hai, isliye outliers ke liye khud robust hai. Euclidean distance se Mahalanobis distance formula derive karo :: Euclidean $\sqrt{(x-\mu)^T(x-\mu)}$ se shuru karo. Alag-alag scales aur correlations account karne ke liye, us space mein transform karo jahan covariance identity hai: $\Sigma^{-1/2}(x-\mu)$. Transformed space mein distance hai $(x-\mu)^T\Sigma^{-1}(x-\mu)$. LOF ≈ 1 vs LOF >> 1 kya indicate karta hai? ::: LOF ≈ 1 matlab point ki density neighbors jaisi hai (normal). LOF >> 1 matlab point ki local density neighbors se bahut kam hai (outlier). Varying densities ke liye adapt karta hai. Outliers ko remove karne ki jagah KABB rakhna chahiye? ::: (1) Domain knowledge validity confirm kare, (2) Woh interest ka target hain (fraud, anomalies), (3) Tree-based models use kar rahe ho jo splits se handle karte hain, (4) Sample size choti hai aur remove karne se signal lose hoga. Log transform outlier impact kyun reduce karta hai? ::: Log concave hai: $d^2/dx^2 \log(x) < 0$. High values par equal absolute differences low values ki tulna mein zyada compress hoti hain. Jaise, 1000→100 (900 units) ban jaata hai log(1000)→log(100) (2.3 units). Extremes ko bulk ki taraf kheenchta hai. Robust scaling formula derive karo aur batao yeh kyun kaam karta hai ::: $x_{\text{scaled}} = (x - \text{median}) / \text{IQR}$. Median aur IQR data ke beech ke 50% se compute hote hain, isliye outliers unhe affect nahi karte. Compare karo $(x - \mu)/\sigma$ se, jahan outliers dono $\mu$ aur $\sigma$ inflate karte hain. Z-score contaminated data par kyun fail karta hai? ::: Outliers dono mean $\mu$ aur std $\sigma$ inflate karte hain. Isse outliers z-score space mein mean ke zyada kareeb lagte hain. Jaise, [1,2,3,4,5,100]: $\mu$=19.2, $\sigma$=39.3, z(100)=2.05 (flag nahi hua). Robust stats (median, MAD) use karo. Linear Regression vs Random Forest ki outliers ke liye sensitivity compare karo ::: Linear Regression: High (OLS squared errors minimize karta hai → outliers loss dominate karte hain). Random Forest: Very Low (bagging + averaging + tree splits outliers isolate karte hain). RF ke liye outliers rakhho, LR ke liye remove/cap karo. LOF mein reachability distance kya hai aur ise kyun use karte hain? ::: $\text{reach-dist}_k(x,o) = \max(\text{dist}(x,o), k\text{-dist}(o))$. Instability se bachne ke liye $k$-dist smoothing factor ki tarah use karta hai jab points bahut paas hoon. Agar $x$ $o$ se door hai, actual distance use karo; agar $x$ $o$ ki neighbourhood mein hai, $k$-dist(o) use karo. Outliers ke liye capping vs log transform kab use karein? ::: Capping: Jab outliers likely errors hain ya extreme values signal add nahi karte. Order preserve karta hai. Log transform: Jab relationship multiplicative ho (jaise, income → default) ya distribution log-normal ho. Impact proportionally reduce karta hai. Correlated features ke liye Mahalanobis distance Euclidean se kyun better hai? ::: Euclidean saari dimensions ko equally treat karta hai, correlations ignore karta hai. Mahalanobis covariance matrix $\Sigma^{-1}$ use karta hai redundant (correlated) dimensions ko down-weight karne aur alag scales account karne ke liye. Jaise, bada ghar kam bedrooms ke saath sqft-bedroom correlation violate karta hai → zyada $D_M$. ## 🖼️ Concept Map ```mermaid flowchart TD OUT[Outlier] TYPE[Legit signal / error / variation] WHY[Why they matter] MEAN[Mean-based algorithms] DETECT[Detection methods] STAT[Statistical univariate] Z[Z-Score] IQR[IQR Method] ISO[Isolation / low density] THRESH[Thresholds] OUT -->|can be| TYPE OUT -->|impacts| WHY WHY -->|distort| MEAN OUT -->|found via| DETECT DETECT -->|includes| STAT STAT -->|uses| Z STAT -->|uses| IQR Z -->|flags if| THRESH IQR -->|flags beyond| THRESH DETECT -->|also uses| ISO Z -->|assumes normality| MEAN IQR -->|robust to skew| STAT ```