📋 বিষয়সূচী (Table of Contents)

01

Data Processing কী এবং কেন দরকার?

Machine Learning শেখার আগে সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো ডেটা প্রস্তুত করা। একটি ML মডেল যতটা ভালো হবে, তা নির্ভর করে তার ডেটা কতটা পরিষ্কার ও সঠিকভাবে প্রস্তুত করা হয়েছে তার উপর।

🍳 রান্নার উপমা

কল্পনা করুন আপনি বিরিয়ানি রান্না করবেন। বাজার থেকে কাঁচা সবজি, মাংস, মশলা এনেছেন। এগুলো সরাসরি হাঁড়িতে ফেললেই কি বিরিয়ানি হবে? অবশ্যই না! আপনাকে আগে ধুতে হবে, কাটতে হবে, মশলা মাখাতে হবে।

Machine Learning-এও একই কথা: Raw Data → Process → তারপর Model।

কেন Raw Data সরাসরি ব্যবহার করা যায় না?

সমস্যাউদাহরণকী হয়?
Missing Valuesকিছু ঘর খালিModel error দেয়
Different Scalesবয়স ১-১০০, আয় ১০,০০০-১০,০০,০০০বড় সংখ্যা বেশি গুরুত্ব পায়
Text Categories"ঢাকা", "চট্টগ্রাম"Machine বোঝে না
Skewed Dataবেশিরভাগ মানুষের আয় কম, কিছু ধনীর অনেক বেশিModel ভুল শেখে
Outliersবয়স কলামে মান = ৯৯৯Model বিভ্রান্ত হয়

সম্পূর্ণ ML Pipeline

Step 01📦 Raw Data সংগ্রহ
Step 02🧹 Data Cleaning
Step 03⚙️ Data Processing
Step 04🔧 Feature Engineering
Step 05🤖 Model Training
Step 06🎯 Prediction
02

Numerical Data Processing

Numerical Data হলো সংখ্যায় প্রকাশিত ডেটা। এটি দুই ধরনের: Continuous (যেকোনো দশমিক মান — উচ্চতা, বেতন) এবং Discrete (শুধু পূর্ণসংখ্যা — রুম সংখ্যা, ক্লিক সংখ্যা)।

ডোমেইনContinuous VariablesDiscrete Variables
বাড়ির দামআয়তন (বর্গফুট), দূরত্ব (কিমি)রুম সংখ্যা, বাথরুম সংখ্যা
ছাত্র ফলাফলGPA (৩.৭৫), নম্বর (%)উপস্থিতির দিন, পরীক্ষা সংখ্যা
Customer Analyticsমাসিক আয়, ক্রয়ের পরিমাণক্রয়ের সংখ্যা, পরিবারের সদস্য

Standardization (Z-Score Normalization)

সমস্যাটা কী?

বয়স কলাম: ২২–৩০, আয় কলাম: ৩৫,০০০–৮০,০০০। ML model আয়কে বেশি গুরুত্ব দেবে শুধু সংখ্যা বড় বলে। এটা ভুল! Standardization সব কলামকে একই স্কেলে আনে।

Z-Score Formula
Z = (মান − গড়) ÷ Standard Deviation
Z = 0 → মানটি ঠিক গড়ে আছে
Z = +1 → গড়ের ১ standard deviation উপরে
Z = −1 → গড়ের ১ standard deviation নিচে

Step-by-Step উদাহরণ (বয়স কলাম)

ছাত্রবয়সগড় (Mean)বয়স − গড়Std DevZ-Score
রাহেল২৫২৫.৭−০.৭৪.০−০.১৭৫
করিম৩০২৫.৭+৪.৩৪.০+১.০৭৫
সুমাইয়া২২২৫.৭−৩.৭৪.০−০.৯২৫

সুবিধা ও অসুবিধা

❌ অসুবিধা
Output range নির্দিষ্ট নয়
০ থেকে ১-এ থাকে না
কম intuitive
✅ সুবিধা
Outlier-এ ভালো কাজ করে
SVM, K-Means, PCA-তে সেরা
সব কলাম সমান গুরুত্ব পায়

Min-Max Scaling

Min-Max Formula
Scaled = (মান − সর্বনিম্ন) ÷ (সর্বোচ্চ − সর্বনিম্ন)
সর্বনিম্ন মান → 0.0 | সর্বোচ্চ মান → 1.0 | বাকিগুলো মাঝে

উদাহরণ: পরীক্ষার নম্বর [৪৫, ৬০, ৭৫, ৮৫, ৯৫]

নম্বরMinMaxনম্বর − MinMax − MinScaled মান
৪৫৪৫৯৫৫০০.০০
৬০৪৫৯৫১৫৫০০.৩০
৭৫৪৫৯৫৩০৫০০.৬০
৮৫৪৫৯৫৪০৫০০.৮০
৯৫৪৫৯৫৫০৫০১.০০

Standardization vs Min-Max: তুলনা

বিষয়StandardizationMin-Max
Output Rangeনির্দিষ্ট নয় (সাধারণত −৩ থেকে +৩)সবসময় ০ থেকে ১
Outlier প্রভাবতুলনামূলক কমOutlier range বিকৃত করে
সূত্র(x − mean) / std(x − min) / (max − min)
সেরা AlgorithmSVM, K-Means, PCA, Neural NetKNN, Neural Net, Image Data
কখন ব্যবহারOutlier থাকলে০–১ range দরকার হলে

Log Transformation

Skewed Data সমস্যা

Income data-তে বেশিরভাগ মানুষের আয় কম (১০,০০০–৫০,০০০ টাকা), কিন্তু কিছু ধনীর আয় কোটি টাকা। এই ভারসাম্যহীনতাকে Right Skew বলে। এতে ML model শুধু ধনীদের pattern শেখে।

Log Transformation-এর পরে কী হয়?

ব্যক্তিমাসিক আয় (আগে)Log মান (পরে)পার্থক্য কমেছে?
রিকশাচালক৮,০০০৮.৯৯
শিক্ষক৩০,০০০১০.৩১
ডাক্তার১,৫০,০০০১১.৯২
ব্যবসায়ী৫,০০,০০০১৩.১২
শিল্পপতি৫০,০০,০০০১৫.৪৩✅ Extreme outlier নিয়ন্ত্রিত
আগে ৫০,০০,০০০ ÷ ৮,০০০ = ৬২৫ গুণ পার্থক্য → পরে মাত্র ৬.৪৪ পার্থক্য!
⚠️ সতর্কতা

Log Transformation শুধু ধনাত্মক (positive) মানে কাজ করে। ডেটায় ০ বা ঋণাত্মক মান থাকলে সরাসরি log ব্যবহার করা যাবে না। সমাধান: log(x + 1) ব্যবহার করুন।

03

Categorical Data Processing

Categorical Data হলো সেই ডেটা যা নির্দিষ্ট বিভাগে বিভক্ত — সংখ্যা নয়, বরং নাম বা লেবেল।

ধরনসংজ্ঞাউদাহরণসেরা Encoding
Nominalকোনো ক্রম নেইলিঙ্গ, শহর, রঙ, পেশাOne-Hot / Frequency
Ordinalনির্দিষ্ট ক্রম আছেশিক্ষার স্তর, রেটিং (১-৫)Ordinal Encoding

One-Hot Encoding

কেন দরকার?

যদি Red=1, Blue=2, Green=3 করি, তাহলে model মনে করবে Green > Blue > Red — এটা সম্পূর্ণ ভুল! One-Hot Encoding প্রতিটি category-র জন্য আলাদা ০/১ column তৈরি করে।

রূপান্তর উদাহরণ: শহর

আগে (Original)
রাহেল → ঢাকা
করিম → চট্টগ্রাম
সুমাইয়া → সিলেট
নাফিস → ঢাকা
পরে (Encoded)
রাহেল → [1, 0, 0]
করিম → [0, 1, 0]
সুমাইয়া → [0, 0, 1]
নাফিস → [1, 0, 0]
ছাত্রশহর_ঢাকাশহর_চট্টগ্রামশহর_সিলেট
রাহেল
করিম
সুমাইয়া
নাফিস
⚠️ High Cardinality সমস্যা

১০০টি শহর থাকলে One-Hot Encoding করলে ১০০টি নতুন column তৈরি হবে! এতে memory বাড়ে এবং overfitting হওয়ার সম্ভাবনা থাকে। এক্ষেত্রে Target Encoding বা Frequency Encoding ভালো।

Target Encoding

প্রতিটি category-কে সেই category-র গড় target মান দিয়ে replace করা হয়।

Customer Churn উদাহরণ

বিভাগমোট CustomerChurn হয়েছেChurn RateEncoded মান
IT২÷৩ = ০.৬৭০.৬৭
Banking১÷২ = ০.৫০০.৫০
Healthcare০÷১ = ০.০০০.০০
⚠️ Data Leakage ঝুঁকি

Target Encoding-এ Data Leakage-এর ঝুঁকি আছে। সমাধান: শুধু Training set-এ mean calculate করুন, তারপর Test set-এ apply করুন। Cross-validation ব্যবহার করুন।

Frequency Encoding

প্রতিটি category কতবার ডেটাসেটে আছে সেই সংখ্যা দিয়ে replace করা হয়।

ব্যক্তিশহর (আগে)কতবার আছেEncoded মান
ব্যক্তি ১ঢাকা
ব্যক্তি ২চট্টগ্রাম
ব্যক্তি ৩ঢাকা
ব্যক্তি ৪সিলেট
ব্যক্তি ৫ঢাকা

Ordinal Encoding

যখন category-গুলোর মধ্যে স্বাভাবিক ক্রম আছে, তখন ক্রম অনুযায়ী সংখ্যা দেওয়া হয়।

ছাত্রশিক্ষা (আগে)ক্রমEncoded মান
নাফিসHigh Schoolসর্বনিম্ন
করিমBachelorমধ্যম
সুমাইয়াMasterউচ্চ
রাহেলPhDসর্বোচ্চ

সব Encoding পদ্ধতির তুলনা

পদ্ধতিকখন ব্যবহারসুবিধাঅসুবিধা
One-HotNominal, কম categoriesমিথ্যা ক্রম নেইColumn বেড়ে যায়
TargetHigh cardinality, SupervisedPowerful, কম columnData leakage ঝুঁকি
Frequencyযেকোনো categoricalসহজ ও দ্রুতএকই সংখ্যায় ভিন্ন category
Ordinalক্রম আছে এমন dataক্রম সংরক্ষণ করেNominal-এ ভুল ফলাফল
04

Text Data Processing

Text Data হলো লেখা বা মন্তব্যের আকারে ডেটা — product review, social media post, email, customer complaint ইত্যাদি।

Machine কেন Text বোঝে না?

Machine শুধু সংখ্যা বোঝে। "ভালো" এবং "খারাপ" শব্দ machine-এর কাছে অর্থহীন। তাই Text → Numbers রূপান্তর করতে হবে।

প্রক্রিয়া: Raw Text → Tokenize (শব্দ ভাগ) → Vectorize (সংখ্যায় রূপান্তর) → ML Model

Bag of Words (BoW)

সব বাক্য থেকে unique শব্দের একটি Vocabulary তৈরি করে, তারপর প্রতিটি বাক্যে প্রতিটি শব্দ কতবার আছে তা গণনা করে।

উদাহরণ: Product Reviews

IDবাক্য
Doc1ভালো পণ্য ভালো দাম
Doc2খারাপ পণ্য ফেরত চাই
Doc3দাম কম পণ্য ভালো
Vocabulary

[ ভালো, পণ্য, দাম, খারাপ, ফেরত, চাই, কম ] — মোট ৭টি unique শব্দ

Word Count Matrix

Documentভালোপণ্যদামখারাপফেরতচাইকম
Doc1
Doc2
Doc3

TF-IDF Encoding

BoW-এর সমস্যা ও TF-IDF সমাধান

"এবং", "কিন্তু", "হয়" — এই common শব্দগুলো BoW-এ বেশি count পায় কিন্তু কোনো অর্থবহ তথ্য দেয় না।

TF = Term Frequency = ওই document-এ শব্দটি কতবার এসেছে

IDF = Inverse Document Frequency = শব্দটি কতটা বিরল (সব document মিলিয়ে)

TF-IDF = TF × IDF → বিরল কিন্তু গুরুত্বপূর্ণ শব্দকে বেশি মান দেয়

বিষয়Bag of WordsTF-IDF
Common শব্দের মানবেশিকম (IDF দিয়ে penalty)
বিরল কিন্তু গুরুত্বপূর্ণ শব্দকম মান পায়বেশি মান পায়
সঠিকতাতুলনামূলক কমসাধারণত বেশি
জটিলতাসহজকিছুটা জটিল
ব্যবহারসহজ classificationSearch engine, Document similarity

N-Grams

BoW-এ শব্দের ক্রম হারিয়ে যায়। "ভালো নয়" এবং "নয় ভালো" BoW-এ একই দেখায়। N-Grams এই সমস্যা সমাধান করে।

উদাহরণ: "এই পণ্য একদম ভালো নয়"

N-Gram ধরনতৈরি হওয়া টোকেন
Unigram (1-gram)এই | পণ্য | একদম | ভালো | নয়
Bigram (2-gram)এই পণ্য | পণ্য একদম | একদম ভালো | ভালো নয়
Trigram (3-gram)এই পণ্য একদম | পণ্য একদম ভালো | একদম ভালো নয়

BoW vs TF-IDF vs N-Grams: চূড়ান্ত তুলনা

বিষয়BoWTF-IDFN-Grams
শব্দের ক্রমরক্ষা করে নারক্ষা করে নাআংশিক রক্ষা করে
Common শব্দ সমস্যাআছেসমাধান করেআছে
Memory ব্যবহারমাঝামাঝিমাঝামাঝিঅনেক বেশি
সহজ Implementationসবচেয়ে সহজমাঝামাঝিকঠিন
সেরা ব্যবহারBasic classificationDocument searchSentiment analysis
05

সঠিক Processing Technique বাছাই

ডেটার ধরনপরিস্থিতিপ্রস্তাবিত পদ্ধতি
Numericalবিভিন্ন scale-এ আছেStandardization বা Min-Max
NumericalOutlier অনেক বেশিStandardization (Z-Score)
NumericalNeural Network বা ImageMin-Max (০ থেকে ১)
NumericalIncome, Price (Skewed)Log Transform → তারপর Scaling
CategoricalNominal, কম categories (২–১০)One-Hot Encoding
CategoricalHigh cardinality (১০০+ categories)Target বা Frequency Encoding
Categoricalক্রম আছে (শিক্ষা, রেটিং)Ordinal Encoding
TextBasic classificationBoW বা TF-IDF
TextSentiment analysisTF-IDF + N-Grams
TextComplex NLPWord2Vec বা BERT
06

সাধারণ ভুলসমূহ ও সমাধান

ভুলসমস্যা কী?সমাধান
অপ্রয়োজনীয় ScalingTree-based model-এ scaling দরকার নেইকোন algorithm ব্যবহার করছেন জানুন
ভুল Encodingশিক্ষার স্তরে One-Hot করলে ক্রম হারায়Ordinal data-তে Ordinal Encoding করুন
Data LeakageTest data-র তথ্য train-এ আসেশুধু train data-তে fit করুন
Skewed Data উপেক্ষাModel ভুল শেখেDistribution দেখে log transform করুন
High Cardinality উপেক্ষা১০০ শহরে One-Hot → ১০০ columnTarget বা Frequency Encoding ব্যবহার করুন
Test data আলাদাভাবে ScaleTrain ও Test-এর scale আলাদা হয়Train-এর scaler দিয়ে Test scale করুন
07

End-to-End বাস্তব উদাহরণ

একটি Customer dataset — predict করতে চাই কোন customer পণ্য কিনবে।

মূল Dataset

AgeSalaryCityEducationReview
২৫৩০,০০০ঢাকাBachelorদারুণ পণ্য
৩২৫০,০০০চট্টগ্রামMasterভালো না
৪৫২,০০,০০০ঢাকাPhDঅসাধারণ পণ্য সেবা
২২২৫,০০০সিলেটHSCমোটামুটি

Processing Plan

কলামডেটার ধরনসমস্যাProcessing পদ্ধতি
AgeNumerical Discreteবিভিন্ন scaleStandardization
SalaryNumerical ContinuousRight-skewed, বড় মানLog Transform → Standardization
CityCategorical NominalMachine text বোঝে নাOne-Hot Encoding (৩ column)
EducationCategorical Ordinalক্রম আছেOrdinal Encoding: HSC=১, Bach=২, Mas=৩, PhD=৪
ReviewText DataMachine text বোঝে নাTF-IDF Vectorization

প্রক্রিয়াকৃত ডেটা (Final)

Age_ZLogSal_ZCity_ঢাকাCity_চট্টCity_সিলেটEdu_Ord
−০.৮৫−০.৭২
−০.১২০.১৩
+১.৪৫+১.৮৮
−১.৪৮−১.২৯
এখন এই সংখ্যার matrix সরাসরি ML Model-এ দেওয়া যাবে!
08

Revision, Quiz & Exercises

📌 মূল বিষয়গুলো — Quick Recap

✅ Data Processing = কাঁচা ডেটাকে ML-উপযোগী করা

✅ Numerical → Standardization / Min-Max / Log Transform

✅ Categorical Nominal → One-Hot | Ordinal → Ordinal Encoding

✅ Text → BoW / TF-IDF / N-Grams

✅ Scaler সবসময় Train-এ fit করুন, Test-এ শুধু transform করুন

✅ Data Leakage সবচেয়ে বড় ভুল — সতর্ক থাকুন

Interview প্রশ্নোত্তর

Standardization এবং Normalization-এর পার্থক্য কী?
Standardization (Z-Score) ডেটাকে mean=0, std=1 করে — output range নির্দিষ্ট নয়। Normalization (Min-Max) ডেটাকে ০ থেকে ১ রেঞ্জে নিয়ে আসে। Outlier থাকলে Standardization ভালো কাজ করে কারণ এটি mean এবং std ব্যবহার করে, যা outlier দ্বারা সম্পূর্ণ বিকৃত হয় না।
One-Hot Encoding কখন ব্যবহার করবেন না?
High Cardinality data-তে One-Hot Encoding ব্যবহার করা উচিত নয়। উদাহরণ: ১০০টি শহর থাকলে ১০০টি নতুন column তৈরি হবে, যা "Curse of Dimensionality" সমস্যা তৈরি করে। এক্ষেত্রে Target Encoding বা Frequency Encoding ব্যবহার করুন।
Data Leakage কী এবং কীভাবে এড়াবেন?
Test data-র তথ্য যদি training process-এ চলে আসে, তাকে Data Leakage বলে। এতে model training-এ অসাধারণ accuracy দেখায় কিন্তু real world-এ ব্যর্থ হয়। সমাধান: সব preprocessing (scaler, encoder) শুধু training data-তে fit() করুন, তারপর test data-তে শুধু transform() করুন।
TF-IDF কী এবং এটি BoW থেকে কীভাবে ভালো?
TF-IDF প্রতিটি শব্দকে তার গুরুত্ব অনুযায়ী weighted মান দেয়। TF = ওই document-এ কতবার, IDF = কতটা বিরল। Common শব্দ ("এবং", "কিন্তু") কম IDF পায় (সব document-এ আছে), তাই কম মান পায়। বিরল কিন্তু গুরুত্বপূর্ণ শব্দ বেশি মান পায়।
Log Transformation কখন ব্যবহার করবেন?
যখন ডেটা Right-Skewed (ডানদিকে লম্বা লেজ) — Income, House Price, Sales Data-তে। তবে ডেটায় ০ বা ঋণাত্মক মান থাকলে সরাসরি log ব্যবহার করা যাবে না। সমাধান হলো log(x + 1) ব্যবহার করা।

MCQ পরীক্ষা

বিকল্পে ক্লিক করুন এবং উত্তর দেখুন।

Q1. Standardization-এর পরে ডেটার Mean (গড়) কত হয়?
০.৫
পরিবর্তন হয় না
Q2. Min-Max Scaling-এ সর্বোচ্চ মানটি কতে রূপান্তরিত হয়?
০.৫
১০০
Q3. শিক্ষার স্তর (HSC, Bachelor, Master, PhD) encode করতে কোন পদ্ধতি সেরা?
One-Hot Encoding
Frequency Encoding
Ordinal Encoding
Target Encoding
Q4. Log Transformation কোন ধরনের data-তে সরাসরি ব্যবহার করা যায় না?
Large positive numbers
০ বা ঋণাত্মক মান
Decimal numbers
Integer numbers
Q5. Bag of Words-এর মূল সীমাবদ্ধতা কোনটি?
শুধু সংখ্যার data-তে কাজ করে
Vocabulary তৈরি করতে পারে না
শব্দের ক্রম হারিয়ে যায়
কম memory ব্যবহার করে

ব্যবহারিক অনুশীলন

Exercise 01
Standardization অনুশীলন
৫ জন বন্ধুর বয়স এবং মাসিক পকেট মানির ডেটা সংগ্রহ করুন। Mean ও Std Dev বের করুন। তারপর প্রতিটি মানের Z-Score হিসাব করুন।
Exercise 02
One-Hot Encoding অনুশীলন
৫টি পেশার নাম নিন (ডাক্তার, ইঞ্জিনিয়ার, শিক্ষক, ব্যবসায়ী, কৃষক)। One-Hot Encoding table তৈরি করুন। কতটি নতুন column হবে?
Exercise 03
Bag of Words তৈরি
৩টি পণ্যের review লিখুন। Vocabulary তৈরি করুন। Word Count Matrix তৈরি করুন। TF-IDF মান কোন শব্দে বেশি হবে বলে মনে করেন?
Exercise 04
Real Dataset বিশ্লেষণ
Kaggle.com থেকে যেকোনো একটি dataset download করুন। প্রতিটি column identify করুন: Numerical নাকি Categorical নাকি Text? কোন processing পদ্ধতি ব্যবহার করবেন?
Exercise 05
Pipeline Design
একটি House Price Prediction dataset কল্পনা করুন: Size, Rooms, Location, Age, Condition। প্রতিটি column-এর জন্য complete processing pipeline design করুন।

Viva প্রশ্নসমূহ

  1. Numerical এবং Categorical Data-র পার্থক্য উদাহরণ দিয়ে বলুন।
  2. কেন Raw Data সরাসরি ML model-এ দেওয়া যায় না? ৩টি কারণ বলুন।
  3. Standardization কোন কোন ML algorithm-এর জন্য গুরুত্বপূর্ণ?
  4. Target Encoding কীভাবে Data Leakage ঘটাতে পারে?
  5. Bag of Words-এর ৩টি সীমাবদ্ধতা বলুন।
  6. Bigram এবং Trigram-এর পার্থক্য উদাহরণ দিয়ে বোঝান।
  7. High Cardinality কী এবং কীভাবে সমাধান করবেন?
  8. ML pipeline-এর ধাপগুলো সঠিক ক্রমে বলুন।
🎓 পরবর্তী ক্লাসে আসছে

Feature Engineering এবং Missing Value Handling — কীভাবে নতুন উপযোগী feature তৈরি করবেন এবং missing data সামলাবেন।