মূল content-এ যাও

Python for AI/Matplotlib/Lesson 50

Line Plot

fig, ax = plt.subplots() দিয়ে শুরু — line plot, label, title, legend, grid, marker; আর প্রতিটা ML engineer-এর সবচেয়ে দেখা graph: training আর validation loss curve, যেখানে overfitting চোখে পড়ে।

সময়
22 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

সংখ্যার table দেখে pattern বোঝা কঠিন। একটা graph এক নজরে বলে দেয় কী হচ্ছে। Matplotlib হলো Python-এর সবচেয়ে মৌলিক graph library — Pandas আর Seaborn-এর plotting-ও ভেতরে এটাই।

main.py
  • fig — পুরো ছবি
  • ax — ছবির ভেতরের plot-এর জায়গা (axes)
  • ax.plot(x, y) — line আঁকে

Graph-এর লেখা English-এ রাখো। Matplotlib-এর default font-এ বাংলা অক্ষর নেই, আর বাংলা যুক্তাক্ষর ঠিকমতো জোড়া দিতেও পারে না। আন্তর্জাতিক convention-ও তাই — report আর paper-এর graph সাধারণত English-এ।

কেন দরকার?

  • Training monitor — loss কমছে কিনা, overfitting হচ্ছে কিনা (আজকের মূল উদাহরণ)
  • Data exploration — model বানানোর আগে data বোঝা
  • ফলাফল বোঝানো — boss, client বা paper-এ একটা ভালো graph হাজার সংখ্যার চেয়ে কার্যকর

দুটো style: plt. বনাম ax.

অনলাইনে দুই ধরনের code দেখবে:

main.py
main.py

দ্বিতীয়টা (fig, ax) ব্যবহার করো — একাধিক graph-এ কোনটায় আঁকছো স্পষ্ট থাকে। লক্ষ্য করো নাম: plt.title() কিন্তু ax.set_title()।

Line-কে সাজানো

main.py
Parameterউদাহরণ
color"red", "#059669"
linestyle"-", "--", ":"
linewidth2
marker"o", "s", "^"
labellegend-এর জন্য নাম
alphaস্বচ্ছতা 0–1

Math intuition: overfitting দেখা

main.py
শুরুতে:     দুটোই কমছে        -> model শিখছে (underfitting থেকে বেরিয়ে আসছে)
মাঝখানে:   validation সবচেয়ে কম -> সেরা model, এখানেই থামা উচিত
শেষে:      train কমছে, val বাড়ছে -> overfitting: training data মুখস্থ করছে

এই graph-টা চিনতে পারা ML-এর সবচেয়ে মৌলিক skill-গুলোর একটা। Interview-তে প্রায় নিশ্চিত প্রশ্ন।

Exercise

Exercise

Loss curve আঁকো

+20 XP

একটা model-এর ১০ epoch-এর training আর validation loss দেওয়া আছে। fig, ax = plt.subplots() দিয়ে একটা graph বানাও যেখানে:

  • দুটো line — label="train" আর label="validation"
  • x-axis label "epoch", y-axis label "loss"
  • title "Training curve"
  • একটা legend
solution.py

Quiz

  1. Q1Training loss কমছে কিন্তু validation loss বাড়ছে — এর মানে কী?
  2. Q2fig, ax = plt.subplots()-এ fig আর ax কী?
  3. Q3দুটো line-এর কোনটা কী বোঝাতে কী লাগে?
0/3 answered

Challenge

Challenge

সেরা epoch চিহ্নিত করো

+50 XP

Validation loss যেখানে সবচেয়ে কম, সেখানেই model সবচেয়ে ভালো — তার পরে overfitting শুরু। এটা early stopping-এর মূল ধারণা।

  1. best_epoch — যে epoch-এ val_loss সবচেয়ে কম (epoch নম্বর, index না)
  2. fig, ax = plt.subplots() দিয়ে val_loss-এর line আঁকো
  3. best_epoch-এ একটা খাড়া dashed line (ax.axvline(..., linestyle="--"))
  4. Title: f"Best epoch: {best_epoch}"

best_epoch data থেকে হিসাব করো, হাতে লিখো না।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

Learning rate তুলনা — একই model, তিনটা আলাদা learning rate। কোনটা বেছে নেবে?

main.py
  • বেশি — loss লাফালাফি করে, কখনো স্থির হয় না
  • কম — খুব ধীরে নামে, ৩০ epoch-এও শেষ হয় না
  • ঠিকঠাক — দ্রুত নামে, তারপর স্থির

Weights & Biases, TensorBoard, MLflow — সব experiment tracking tool মূলত এরকম line plot দেখায়।

Interview প্রশ্ন

  • Beginner: Training আর validation loss-এর graph দেখে overfitting কীভাবে চিনবে?
  • Intermediate: Underfitting দেখতে কেমন? Overfitting আর underfitting-এর সমাধান কী কী?
  • Advanced: Validation loss বাড়ছে কিন্তু validation accuracy-ও বাড়ছে — এটা কীভাবে সম্ভব? (Model আত্মবিশ্বাসী ভুল করছে — calibration সমস্যা।)

এরপর কী?

Line plot দেখায় সময়ের সাথে পরিবর্তন। কিন্তু দুটো জিনিসের মধ্যে সম্পর্ক — বাড়ির আয়তন বনাম দাম? পরের lesson: Scatter Plot।