Normal equation closed-form solution
2.2.5· AI-ML › Linear & Logistic Regression
Overview
Normal equation ek analytical closed-form solution provide karta hai linear regression ke liye — yeh optimal parameters directly compute kar leta hai bina kisi iterative optimization ke. Gradient descent ke unlike, yeh ko ek hi step mein solve karta hai matrix calculus ka use karke.

Ise aise socho jaise ek valley mein sabse neeche ka point dhundhna ho: bahut saare chhote-chhote steps neeche ki taraf lene ki jagah (gradient descent), hum calculus use karke seedha ek hi baar mein bottom pe jump karte hain.
Derivation (First Principles Se)
Step 1: Cost Function Set Up Karo
Linear regression mein training examples aur features ke saath:
Cost function (Mean Squared Error) hai:
kyun? square ke derivative ke saath cancel ho jaata hai (calculus cleaner banta hai), aur alag-alag dataset sizes ke across normalize karta hai.
Step 2: Matrix Notation Use Karke Vectorize Karo
Design matrix construct karte hain (dimensions: ):
1's ka column kyun? Yeh feature hai jo (intercept/bias term) ko multiply karta hai.
Parameter vector aur target vector :
Ab ek hi shot mein saari predictions: predictions ka vector deta hai.
Cost function ban jaata hai:
Yeh form kyun? Squared error sum exactly error vector ka khud ke saath dot product hai: .
Step 3: Gradient Lo aur Zero Set Karo
minimize karne ke liye, humein chahiye.
Quadratic expand karne par:
Yeh expansion kyun? Hum use karte hain jahan aur hai.
ke saath gradient lete hain (matrix calculus rules use karke):
Yeh terms kyun?
- jab symmetric ho
- Constants vanish ho jaate hain
Gradient ko zero set karne par:
Step 4: Ke Liye Solve Karo
Ise "normal" kyun kehte hain? Linear algebra mein, "normal" ka matlab perpendicular hota hai. Optimum par, residual vector , ke column space ke orthogonal (normal) hota hai. Yeh least squares solution hai.
Pseudoinverse ke baare mein important caveat: Jab ka full column rank ho (yani invertible ho), tab matrix Moore-Penrose pseudoinverse ke barabar hoti hai, jo unique least squares solution deti hai. Jab rank-deficient ho (singular ), tab yeh formula kaam nahi karta, aur pseudoinverse ko kisi zyada general method se compute karna padta hai jaise SVD (Singular Value Decomposition). Us case mein infinitely many least squares solutions hote hain, aur minimum norm wala return karta hai.
Worked Examples
Step 1: aur construct karo
Yeh structure kyun? Pehla column ke liye saare 1's hai, doosra column values hai.
Step 2: compute karo
Yeh multiplication kyun? Har element , ke row aur ke column ka dot product hai.
Step 3: compute karo
Step 4: invert karo
2×2 matrix ke liye, inverse hai .
Determinant kyun compute karte hain? Yeh hai, jo ensure karta hai ki matrix invertible hai.
Step 5: compute karo
Result: ,
Fitted line hai .
| 1 | 3 | 7 |
| 2 | 4 | 10 |
| 3 | 5 | 13 |
Step 1: Design matrix
Teen columns kyun? Column 0, ke liye hai; column 1, (feature ) ke liye; column 2, (feature ) ke liye.
Step 2:
Step 3:
Yeh numbers kyun? Row 1: . Row 2: . Row 3: .
Step 4: RUKO — pehle invertibility check karo!
Feature columns ko dhyan se dekho: notice karo ki har row ke liye hai. Iska matlab hai ki ka column 2, column 1 plus (1's ka column) ke barabar hai:
Columns linearly dependent hain, isliye rank-deficient hai (). Isliye singular hai — uska determinant hai aur woh invert nahi ho sakta. Normal equation ka plain formula yahaan apply nahi hota.
Yeh matter kyun karta hai: Kyunki features redundant hain, koi unique nahi hai. Infinitely many exact solutions hain.
Step 5: Sahi tarike se solve karo. Relationship exactly linear hai ( ek valid fit hai), isliye ek perfect (zero-error) fit exist karta hai. For example:
Lekin kyunki hai, hum parameters ke beech weight trade kar sakte hain. Ek aur exact solution:
ruko — constraint ko honest rakhte hain. Koi bhi jo satisfy kare aur targets reproduce kare, woh kaam karta hai. Ise saaf dekhne ka tarika: model mein substitute karo:
Sirf combinations aur determine hote hain; individual values free hain. Data require karta hai aur ( se match karte hue), jo infinitely many deta hai.
Sahi tool: SVD-based pseudoinverse () use karo, jo in infinitely many mein se minimum-norm solution return karta hai, ya redundant feature hata do aur ek well-posed 2-parameter problem solve karo.
Sabak: ko blindly invert karne se pehle hamesha ka rank check karo.
Kab Use Karein (aur Kab Nahi)
Normal equation kab use karein:
- features (matrix inversion tractable hai)
- Small to medium datasets ()
- Hyperparameters tune kiye bina exact solution chahiye
- Regularization nahi chahiye
Gradient descent kab use karein:
- (e.g., image features, text features)
- Bahut bada (big data scenarios)
- Online learning (data streams mein aata hai)
- Regularization chahiye (Lasso/Ridge) ya doosre constraints
Galti: Normal equation apply karna jab singular (non-invertible) ho — exactly wahi jo Example 2 mein hota hai.
Sahi kyun lagta hai: Formula simple lagta hai — bas apna data plug in karo!
Kya galat hota hai:
- Jab (examples se zyada features): system under-determined hota hai
- Jab features linearly dependent hain (multicollinearity):
- Example: "price in dollars" aur "price in cents" dono ko alag features ki tarah include karna
Fix:
- Redundant features hata do (correlation matrix / rank check karo)
- Regularization use karo (Ridge regression add karta hai taaki invertible ban sake)
- SVD-based pseudoinverse use karo (numpy ka
pinvyalstsqsingular matrices ko gracefully handle karta hai aur minimum-norm solution return karta hai) - Zyada data collect karo agar ho
Galti: Feature normalization ke bina normal equation compute karna.
Sahi kyun lagta hai: Normal equation analytical hai — mathematically scaling matter nahi karni chahiye.
Asal mein kya hota hai:
- Matrix inversion mein numerical instability jab features ke scales bahut alag-alag hoon
- ill-conditioned ho jaata hai (chhoti si change bahut badi errors cause karti hai)
- Example: feature 1 "age" hai (20-80), feature 2 "income" hai (20,000-200,000)
Fix: Features standardize karo: normal equation apply karne se pehle.
Implementation Considerations
explicitly compute karne ki jagah, use karo:
- QR decomposition: , phir solve karo
- SVD (Singular Value Decomposition): Near-singular aur rank-deficient matrices ko robustly handle karta hai (aur true pseudoinverse define karta hai)
- Cholesky decomposition: Positive definite ke liye faster hai
Kyun? Direct matrix inversion numerically unstable aur computationally expensive hai. Yeh methods inversion avoid karte hue same system solve karte hain.
import numpy as np
# Bad: explicit inversion (fails if X^T X is singular)
theta_bad = np.linalg.inv(X.T @ X) @ X.T @ y
# Good: use solve (uses LU decomposition internally)
theta_good = np.linalg.solve(X.T @ X, X.T @ y)
# Best: use lstsq (uses SVD, handles singular/rank-deficient matrices)
theta_best = np.linalg.lstsq(X, y, rcond=None)[0]Recall Feynman Explanation (12 saal ke bachche ko samjhao)
Socho tum ek graph par kuch points ke through sabse acchi straight line draw karne ki koshish kar rahe ho. Tum ek line guess kar sakte ho, measure kar sakte ho ki har point usase kitna door hai, thoda adjust karo, aur yeh karte raho jab tak improve nahi kar sakte (yahi gradient descent hai — bahut saare chhote-chhote adjustments).
Lekin ek clever shortcut hai! Math use karke, tum koi bhi guess kiye bina ek hi baar mein PERFECT line calculate kar sakte ho. Yeh aise hai jaise ek magic formula ho jo EK SAATH saare points dekhe aur exactly figure out kare ki line kahan honi chahiye.
"Normal equation" wahi magic formula hai. Tum apne saare data points ko ek special grid (matrix) mein organize karte ho, in grids ke saath kuch multiply aur divide karte ho, aur answer nikal aata hai — exactly best line!
Pakda kya hai? Yeh magic formula bahut slow ho jaata hai jab tumhare paas BAHUT ZYADA data ya BAHUT SAARI alag-alag measurements (features) hon. Chhote problems ke liye, yeh sabse fast tarika hai. Bahut bade problems ke liye, "guess-and-adjust" method better hai. Aur dhyan rakho: agar tumhari do measurements secretly ek hi cheez hain disguise mein (jaise height inches mein AUR centimeters mein measure karna), toh magic formula confuse ho jaata hai aur ek answer nahi de sakta — infinitely many hain! Pehle duplicate hata do.
"The Transpose Times, Inverse Times, Transpose Y"
Ya socho: "X-Transpose-X inverted hota hai, phir X-Transpose-y inserted hoti hai"
Visual: → "sandwiched inverse" pattern.
Connections
- Linear Regression Fundamentals — woh problem jise yeh solve karta hai
- Gradient Descent — iterative alternative
- Ridge Regression — non-invertibility handle karne ke liye add karta hai
- Moore-Penrose Pseudoinverse — singular matrices ke liye generalized inverse (SVD ke zariye)
- QR Decomposition — least squares solve karne ka numerically stable tarika
- Feature Scaling — numerical issues avoid karne ke liye preprocessing
- Polynomial Regression — transformed features ke saath bhi normal equation use karta hai
- Underdetermined vs Overdetermined Systems — kab unique solutions exist karte hain
#flashcards/