Lesson 03 � Foundation
PROBABILITY
EVENTS KI CHANCES
Probability events ki chances batata hai � kitne percent chance hai ki kuch hoga. ML mein prediction probability pe based hoti hai. Spam filter "95% spam hai" bolta hai, disease detector "80% chance hai" bolta hai � yeh sab probability ka kaam hai.
WHY: Probability kyun important hai?
Har ML model ultimately probability predict karta hai. Logistic regression kya karta hai � class 1 hone ki probability nikalta hai. Random forest kya karta hai � majority vote se probability deta hai. Naive Bayes kya karta hai � Bayes theorem use karke probability calculate karta hai. Bina probability samjhe ML samajhna mushkil hai.
Kisi event ke hone ki chance � 0 se 1 ke beech hota hai. 0 = impossible, 1 = certain. Jaise coin toss mein heads ki probability 0.5 hai.
"Given" condition lagake probability nikalna. Jaise "barish ho rahi hai TOH road gili hai" � barish ki condition mein road gili hone ki probability.
Naye data se apni probability update karna. Pehle socha 1% disease hai, test positive aaya toh 95% ho gaya � yeh Bayes theorem hai.
Events ka pattern � kuch outcomes zyada frequent hain, kuch kam. Normal distribution mein beech wale outcomes zyada aate hain.
HOW: Probability ka formula
Probability ka basic formula bahut simple hai � favorable outcomes divided by total outcomes. Lekin isse bahut kuch nikalta hai. Yeh basics yaad rakho.
Probability ka basic formula:
P(Event) = Favorable Outcomes / Total Outcomes
Examples:
Coin toss mein Heads: 1/2 = 0.5 (50%)
Dice mein Six: 1/6 = 0.167 (16.7%)
Deck mein Ace: 4/52 = 0.077 (7.7%)
Probability ki range: 0 se 1
0 = Impossible (puri tarah se nahi hoga)
0.5 = Equal chance (50-50)
1 = Certain (pakka hoga)HOW: Python se probability simulate karo
Probability samajhne ka sabse achha tarika hai Python se experiment karo. Baar baar toss karo ya dice pheko aur dekho kitni baar kya aaya. Yeh probability ka practical hai.
import random
# Coin Toss � 1000 baar toss karo
heads = sum(1 for _ in range(1000) if random.choice(['H','T']) == 'H')
print(f"Heads probability: {heads/1000:.2f}")
# Output: ~0.50 (50% chance)
# Dice � 1000 baar pheko
outcomes = [random.randint(1,6) for _ in range(1000)]
print(f"Six probability: {outcomes.count(6)/1000:.2f}")
# Output: ~0.167 (16.7% chance)
# Bayes Theorem � Disease detection
def bayes(p_a, p_b_given_a, p_b):
return (p_b_given_a * p_a) / p_b
# Disease: 1% population mein hai
# Test: 95% accurate (disease hai toh positive aata hai)
# Base rate: 5% logon ka test positive hota hai
p = bayes(0.01, 0.95, 0.05)
print(f"Disease given positive: {p:.2%}")
# Output: ~19.00% (sirf 19% chance disease hai!)TYPES: Probability ke 3 types
Probability 3 tarike se calculate hoti hai. Theoretical, experimental, aur subjective. Har type ka apna use case hai.
Probability ke 3 types:
1. THEORETICAL
✓ Formula se nikalte hain
? "Coin mein Heads ki probability 0.5 hai"
✓ Mathematical calculation
2. EXPERIMENTAL (Empirical)
✓ Actually experiment karke nikalte hain
? "1000 baar coin toss kiya, 480 baar Heads aaya"
✓ Experimental probability = 480/1000 = 0.48
3. SUBJECTIVE
✓ Experience aur judgment se estimate karte hain
? "Mujhe lagta hai rain ka chance 70% hai"
✓ Intuition based, ML mein nahi use hotaCONDITIONAL: Given condition
Conditional probability tab hota hai jab hum koi condition lagate hain. "Barish ho rahi hai" given hai toh "road gili hai" ki probability kitni hai✓ Yeh ML mein bahut use hota hai � "features given hai toh class kitni probability hai."
import random
# Conditional Probability example
# 100 students: 60 boys, 40 girls
# 70% boys play cricket, 40% girls play cricket
# Given: student is a boy
# P(Cricket | Boy) = 0.70 (70% boys play cricket)
# Given: student plays cricket
# P(Boy | Cricket) = ?
# Data simulate karo
students = []
for _ in range(60): # Boys
students.append('B' if random.random() < 0.70 else 'G-not-cricket')
for _ in range(40): # Girls
students.append('G' if random.random() < 0.40 else 'B-not-cricket')
cricket_players = [s for s in students if s in ['B', 'G']]
boys_who_play = [s for s in students if s == 'B']
print(f"Total cricket players: {len(cricket_players)}")
print(f"Boys who play cricket: {len(boys_who_play)}")
print(f"P(Boy | Cricket): {len(boys_who_play)/len(cricket_players):.2f}")
# Output: ~0.63 (63% cricket players are boys)BAYES: Naye data se update karo
Bayes theorem sabse powerful concept hai. Pehle ek assumption hoti hai (prior), phir naya data aata hai (evidence), aur aap apni belief update karte ho (posterior). Yeh ML mein Naive Bayes classifier ke basis hai.
# Bayes Theorem
# P(A|B) = P(B|A) * P(A) / P(B)
# Example 1: Disease Detection
def bayes(p_a, p_b_given_a, p_b):
return (p_b_given_a * p_a) / p_b
# Disease: 1% population mein hai (prior)
# Test: 95% accurate (sensitivity)
# False positive: 5% (healthy logon ka test positive)
p = bayes(0.01, 0.95, 0.05)
print(f"Disease given positive test: {p:.2%}")
# Output: ~19.00%
# Matlab: Test positive aaya toh sirf 19% chance hai disease hai!
# Example 2: Email Spam Filter
# Prior: 20% emails spam hain
# P("free" | spam) = 0.9 (spam mein "free" 90% baar aata hai)
# P("free" | not spam) = 0.1 (normal mein "free" 10% baar aata hai)
# P("free") = 0.9*0.2 + 0.1*0.8 = 0.26
p_spam_free = bayes(0.2, 0.9, 0.26)
print(f"Spam given 'free': {p_spam_free:.2%}")
# Output: ~69.23%
# Matlab: "free" word hai toh 69% chance spam hai!INDEPENDENCE: Events alag hain?
Independent events ka ek doosre pe koi asar nahi hota. Coin toss pehla aur doosra independent hain � pehla Heads aaya toh doosra pe koi asar nahi. Dependent events mein pehla event doosre ko affect karta hai.
import random
# Independent Events
# P(A and B) = P(A) * P(B) jab events independent hon
# Coin toss � pehla aur doosra independent
# P(Heads and Heads) = 0.5 * 0.5 = 0.25
# Dependent Events (sampling without replacement)
# Bag mein 5 red, 3 blue balls
# P(Red first) = 5/8
# P(Red second | Red first) = 4/7 (ek red kam ho gaya!)
# P(Red then Red) = (5/8) * (4/7) = 20/56 = 0.357
# Simulation
results = []
for _ in range(10000):
bag = ['R']*5 + ['B']*3
first = random.choice(bag)
bag.remove(first)
second = random.choice(bag)
results.append(first == 'R' and second == 'R')
print(f"P(Red then Red): {sum(results)/len(results):.3f}")
# Output: ~0.357 (matches calculation!)Try it: Probability experiment karo
Neeche ka editor Python jaisa hai. Yahan coin toss ya dice roll ka experiment karo. "Run Python" dabao aur dekho probability kaise work karti hai.
Quick check
Coin toss mein Heads ki probability kitni hai? Number ya fraction mein jawab do.
Coin ke 2 sides hain � Heads aur Tails. Dono equally likely hain. Formula: Favorable / Total = 1 / 2
ML mein Probability kaise use hoti hai?
Har ML model probability ka use karta hai. Logistic regression directly probability nikalta hai. Decision tree probability based voting karta hai. Neural network bhi probability output deta hai. Yeh samjho toh ML clear ho jayega.
ML Models aur Probability:
1. LOGISTIC REGRESSION
✓ Directly probability nikalta hai
✓ Output: 0.73 (73% chance class 1 hai)
✓ Threshold: 0.5 se upar = class 1
2. NAIVE BAYES
✓ Bayes theorem use karta hai
? "yeh features hain toh yeh class hogi"
✓ Spam filter, text classification
3. RANDOM FOREST
✓ Multiple trees ka vote
✓ Majority vote se probability milti hai
? "60% trees ne class 1 bola"
4. NEURAL NETWORKS
✓ Softmax layer probability deta hai
✓ Har class ki probability hoti hai
? [0.1, 0.7, 0.2] � class 2 sabse zyadaCommon beginner mistakes
- Probability ko percentage samajho: Probability 0-1 mein hoti hai, percentage 0-100. 0.75 = 75%. Dono alag nahi hain.
- Independent events ko dependent mat samjho: Coin toss independent hai � pehla toss doosre pe asar nahi karta. Gambler's fallacy mat karo.
- Base rate bhool jao: Bayes theorem mein prior probability (base rate) bahut important hai. Bina base rate ke result galat aayega.
- Conditional probability ka order mat bhulo: P(A|B) alag hai, P(B|A) alag hai. "Disease given positive" ? "Positive given disease."
Ab Data Cleaning par chalo � real-world data ganda hota hai, saaf karna seekho. Probability samajh ke data better analyze kar paoge.