Machine Learning Model Training: শূন্য থেকে শুরু করার সম্পূর্ণ গাইড
Machine learning model কীভাবে train করতে হয়? Data সংগ্রহ থেকে deploy পর্যন্ত ১০টা ধাপ, Python code ও নতুনদের সাধারণ ভুল — সহজ বাংলায়।

শুরুর কথা ChatGPT, Face Unlock, YouTube-এর recommendation, Google Translate — এগুলোর পেছনে আছে একটাই জিনিস: একটা trained machine learning model। কিন্তু এই model আসলে কীভাবে "শেখে"? আর আপনি নিজে কি একটা model train করতে পারবেন? উত্তর হলো — হ্যাঁ, পারবেন। দামি computer লাগবে না, PhD-ও লাগবে না। লাগবে শুধু একটা পরিষ্কার পথনির্দেশ। এই লেখায় ঠিক সেটাই পাবেন: data সংগ্রহ থেকে শুরু করে model deploy পর্যন্ত পুরো প্রক্রিয়া, ধাপে ধাপে, সহজ বাংলায়, সাথে চালিয়ে দেখার মতো Python code। Model training আসলে কী? একটা শিশুকে আপেল চেনাতে আমরা তাকে অনেকগুলো আপেল দেখাই আর বলি "এটা আপেল"। কিছুদিন পর সে নতুন, আগে না-দেখা আপেলও চিনে ফেলে। Model training ঠিক এভাবেই কাজ করে। আমরা computer-কে অনেক উদাহরণ (data) দিই, আর প্রতিটার সঠিক উত্তর (label) বলে দিই। Model প্রথমে এলোমেলো অনুমান করে, তারপর নিজের ভুল মেপে (একে বলে loss) ধীরে ধীরে নিজের ভেতরের সংখ্যাগুলো (weight) ঠিক করে। হাজারবার এভাবে চেষ্টার পর সে pattern শিখে যায়। তিনটা শব্দ মনে রাখুন: • Feature (X): যে তথ্য দিয়ে predict করব — যেমন বাড়ির আয়তন, ঘরের সংখ্যা। • Label (y): যা predict করতে চাই — যেমন বাড়ির দাম। • Model: একটা গাণিতিক function, যা X দেখে y অনুমান করতে শেখে। শুরুর আগে যা লাগবে ভালো খবর হলো, শুরু করতে শুধু একটা browser আর Google account-ই যথেষ্ট। • Google Colab: browser-এ বিনামূল্যে Python চালানোর জায়গা, সাথে ফ্রি GPU। কিছু install করতে হয় না। • Python-এর basic: list, loop, function জানলেই চলবে। • কয়েকটা library: Pandas (data), scikit-learn (classical ML), PyTorch (deep learning) — Colab-এ আগে থেকেই থাকে। • ধৈর্য: প্রথম model-এ ভুল হবেই, আর সেখান থেকেই আসল শেখা। নিজের computer-এ করতে চাইলে Python install করে এই command চালান: pip install numpy pandas matplotlib scikit-learn torch torchvision ধাপে ধাপে Model Training: ১০টা ধাপ ধাপ ১: সমস্যাটা পরিষ্কার করুন Code লেখার আগে ঠিক করুন আপনি কী predict করতে চান। Email spam কি না (classification)? নাকি বাড়ির দাম কত (regression)? সাথে ঠিক করুন সাফল্যের মাপকাঠি — যেমন "৯০% সঠিক হলেই চলবে"। লক্ষ্য না থাকলে কখন থামবেন বুঝবেন না। ধাপ ২: Data সংগ্রহ করুন ও বুঝুন Model ততটাই ভালো, যতটা ভালো তার data। Kaggle, UCI Repository বা Hugging Face থেকে বিনামূল্যে dataset পাবেন। তারপর data খুঁটিয়ে দেখুন (একে বলে EDA): কোথায় তথ্য নেই, কোন class কত বেশি, কোনো অস্বাভাবিক মান আছে কি না। ধাপ ৩: Data পরিষ্কার ও প্রস্তুত করুন Model শুধু সংখ্যা বোঝে। তাই missing value পূরণ করুন, "ঢাকা/চট্টগ্রাম"-এর মতো লেখাকে সংখ্যায় রূপ দিন (encoding), আর সব সংখ্যাকে একই scale-এ আনুন (scaling)। ছবির ক্ষেত্রে সব ছবি একই size-এ resize করুন। ধাপ ৪: Data তিন ভাগে ভাগ করুন • Training (৭০%): model এখান থেকে শিখবে। • Validation (১৫%): কোন model বা setting ভালো তা বাছাই করতে। • Test (১৫%): একদম শেষে, মাত্র একবার — চূড়ান্ত পরীক্ষা। পরীক্ষার প্রশ্ন আগে দেখে ফেললে যেমন ফলাফলের মানে থাকে না, test data training-এ ঢুকে গেলেও তেমনি model-এর ফল অর্থহীন হয়ে যায়। একে বলে data leakage — নতুনদের সবচেয়ে বড় ভুল। ধাপ ৫: সঠিক Model বাছুন সবসময় সহজ model দিয়ে শুরু করুন। Data-র ধরন প্রথমে চেষ্টা করুন Table (Excel/CSV) Logistic Regression, Random Forest, XGBoost ছবি Pretrained ResNet / EfficientNet (transfer learning) লেখা (text) TF-IDF + Logistic Regression, তারপর BERT Transfer learning মানে আগে থেকে লাখো ছবিতে train করা model নিয়ে শুধু শেষ অংশটা নিজের data-তে শেখানো। কম data আর কম সময়েও দারুণ ফল আসে। ধাপ ৬: Model Train করুন Training মানে একটা চক্র: prediction → ভুল মাপা (loss) → weight একটু ঠিক করা → আবার। কয়েকটা গুরুত্বপূর্ণ setting: • Learning rate: প্রতি ধাপে কতটা বদলাবে। বেশি হলে লাফালাফি, কম হলে খুব ধীর। • Epoch: পুরো data একবার দেখা। • Batch size: একবারে কয়টা উদাহরণ দেখবে (সাধারণত ৩২)। ধাপ ৭: ফলাফল যাচাই করুন শুধু accuracy দেখে খুশি হবেন না। ধরুন ১০০ জনের মধ্যে ৫ জনের রোগ আছে; যে model সবাইকে "সুস্থ" বলে, তারও accuracy ৯৫%! তাই দেখুন: • Precision: "হ্যাঁ" বলাগুলোর কতটা সত্যি। • Recall: আসল "হ্যাঁ"-গুলোর কতটা ধরা পড়ল। • F1-score: দুটোর ভারসাম্য। • Confusion matrix: কোন জিনিসকে কী ভেবে ভুল করছে। ধাপ ৮: Overfitting সামলান Training data-তে ৯৯% কিন্তু নতুন data-তে ৭০%? Model মুখস্থ করেছে, শেখেনি — একে বলে overfitting। সমাধান: আরও data, data augmentation, dropout, regularization, আর validation loss বাড়তে শুরু করলে থেমে যাওয়া (early stopping)। উল্টোটা, দুই জায়গাতেই খারাপ ফল হলে (underfitting), বড় model বা আরও feature লাগবে। ধাপ ৯: Hyperparameter Tuning Learning rate, tree-র গভীরতার মতো setting বিভিন্নভাবে চেষ্টা করে সেরাটা বের করুন। scikit-learn-এর GridSearchCV বা RandomizedSearchCV, কিংবা Optuna এই কাজ স্বয়ংক্রিয়ভাবে করে দেয়। মনে রাখবেন: tuning হবে validation data দিয়ে, test data দিয়ে কখনো নয়। ধাপ ১০: Save ও Deploy করুন সব শেষে test data-তে একবার চূড়ান্ত পরীক্ষা করুন, তারপর model save করুন (joblib বা torch.save)। Gradio বা Streamlit দিয়ে কয়েক লাইনে একটা web app বানিয়ে Hugging Face Spaces-এ বিনামূল্যে সবাইকে দেখাতে পারবেন। হাতে-কলমে: ১০ মিনিটে আপনার প্রথম Model নিচের code Google Colab-এ copy করে চালান। এটা breast cancer dataset ব্যবহার করে বুঝতে শেখে tumor ক্ষতিকর কি না — আর উপরের ১০টা ধাপের প্রায় সবগুলোই এখানে দেখতে পাবেন। from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split, cross_val_score from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from sklearn.dummy import DummyClassifier from sklearn.metrics import classification_report import joblib
# ১. Data load X, y = load_breast_cancer(return_X_y=True, as_frame=True)
# ২. Train ও Test ভাগ (test একদম আলাদা রাখা) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42)
# ৩. কয়েকটা model তুলনা (শুধু training data-তে cross-validation) models = { "Baseline": DummyClassifier(strategy="most_frequent"), "LogReg": Pipeline([("scale", StandardScaler()), ("model", LogisticRegression(max_iter=1000))]), "RandomForest": RandomForestClassifier(n_estimators=300, random_state=42), } for name, m in models.items(): score = cross_val_score(m, X_train, y_train, cv=5, scoring="f1").mean() print(f"{name}: F1 = {score:.3f}")
# ৪. সেরা model train best = models["LogReg"].fit(X_train, y_train)
# ৫. চূড়ান্ত পরীক্ষা (একবারই) print(classification_report(y_test, best.predict(X_test)))
# ৬. Save joblib.dump(best, "my_first_model.joblib") চালানোর পর দেখবেন Baseline-এর চেয়ে আসল model অনেক ভালো করছে — এটাই প্রমাণ যে model সত্যিই কিছু শিখেছে। এরপর একই কাঠামো নিজের CSV file-এ প্রয়োগ করে দেখুন। নতুনদের ৫টা সাধারণ ভুল 1. Split-এর আগে preprocessing করা: পুরো data-য় scaling করলে test-এর তথ্য training-এ ঢুকে যায়। আগে ভাগ করুন, তারপর শুধু training data দিয়ে scaler শেখান। 2. শুধু accuracy দেখা: imbalanced data-তে accuracy ধোঁকা দেয়। F1-score আর confusion matrix দেখুন। 3. Baseline ছাড়া শুরু করা: সহজ model-এর সাথে তুলনা না করলে বুঝবেন না জটিল model আসলে কাজে লাগছে কি না। 4. Test data বারবার দেখা: test-এর ফল দেখে model বদলালে সেটা আর "অদেখা" থাকে না। 5. প্রথমেই বড় neural network: ছোট, সহজ model দিয়ে শুরু করুন; ছবি বা লেখার কাজে transfer learning ব্যবহার করুন। একটা গোপন কৌশল: প্রথমে মাত্র ১০–২০টা উদাহরণে train করে দেখুন model সেটা পুরো মুখস্থ করতে পারে কি না। না পারলে আপনার code-এ bug আছে। শেষ কথা Model training কোনো জাদু নয়, এটা একটা প্রক্রিয়া: সমস্যা ঠিক করা, data বোঝা, train করা, যাচাই করা, আর বারবার উন্নতি করা। প্রথম model নিখুঁত হবে না, আর সেটাই স্বাভাবিক। প্রতিটা ভুল থেকে আপনি আরও ভালো model বানানো শিখবেন। এখন কী করবেন: • উপরের code Colab-এ চালিয়ে দেখুন। • Kaggle-এর Titanic বা House Prices প্রতিযোগিতায় অংশ নিন। • আরও গভীরে যেতে Andrew Ng-এর Machine Learning Specialization বা fast.ai-এর বিনামূল্যের course দেখুন। লেখাটা কাজে লাগলে বন্ধুদের সাথে শেয়ার করুন, আর কোনো প্রশ্ন থাকলে নিচে comment করুন। Happy training!