মূল content-এ যাও

Python for AI/Matplotlib/Lesson 51

Scatter Plot

দুটো variable-এর সম্পর্ক চোখে দেখা — scatter, রং দিয়ে class আলাদা করা, size আর alpha, correlation, আর data-র ওপর regression line বসানো।

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

সহজ ভাষায়

Scatter plot-এ প্রতিটা data point একটা বিন্দু — x-এ একটা variable, y-এ আরেকটা। দুটোর মধ্যে সম্পর্ক এক নজরে দেখা যায়:

main.py

বিন্দুগুলো মোটামুটি একটা সোজা রেখায় উপরের দিকে — positive correlation।

কেন দরকার?

  • Feature বাছাই — কোন feature target-এর সাথে সম্পর্কিত? (Linear regression-এ এটা প্রথম পদক্ষেপ)
  • Class কতটা আলাদা — দুই class-এর point আলাদা দল বাঁধলে classification সহজ হবে
  • Outlier খোঁজা — দলছুট বিন্দু চোখে পড়ে
  • Model যাচাই — আসল বনাম predicted মান: ভালো model-এ সব বিন্দু একটা কর্ণ বরাবর

Correlation

main.py

Correlation coefficient (r) −1 থেকে +1:

rমানে
+1 এর কাছেএকটা বাড়লে আরেকটাও বাড়ে
0 এর কাছেকোনো সোজা সম্পর্ক নেই
−1 এর কাছেএকটা বাড়লে আরেকটা কমে

(plt.subplots(1, 3) দিয়ে পাশাপাশি তিনটা graph — subplots lesson-এ বিস্তারিত।)

r শুধু সোজা (linear) সম্পর্ক মাপে। U-আকৃতির সম্পর্কে r ≈ 0 হতে পারে, অথচ সম্পর্ক খুবই শক্তিশালী। তাই সংখ্যার পাশাপাশি সবসময় graph-ও দেখো।

রং, আকার আর স্বচ্ছতা

main.py
Parameterকাজ
c + cmapমান অনুযায়ী রং (তৃতীয় variable)
sবিন্দুর আকার (চতুর্থ variable!)
alphaস্বচ্ছতা — অনেক point-এ overlap কমায়

একটা 2D graph-এ চারটা তথ্য: income, spend, age (রং), age (আকার)।

Exercise

Exercise

আয়তন বনাম দাম

+20 XP

fig, ax = plt.subplots() দিয়ে বাড়ির আয়তন (x) বনাম দাম (y)-এর scatter plot আঁকো। x-label "area (sqft)", y-label "price (lakh)"।

তারপর corr = আয়তন আর দামের correlation (np.corrcoef দিয়ে), 2 ঘর দশমিকে round।

solution.py

Quiz

  1. Q1Correlation (r) = −0.85 মানে কী?
  2. Q2দুটো variable-এর correlation 0.9 — তার মানে কি একটা আরেকটার কারণ?
  3. Q3১০,০০০ point-এর scatter-এ সব একসাথে মিশে কালো দলা — কী করবে?
0/3 answered

Challenge

Challenge

দুই class আর regression line

+50 XP

df-এ পরীক্ষার আগে পড়ার ঘণ্টা আর নম্বর, সাথে passed (True/False)। fig, ax = plt.subplots() দিয়ে:

  1. Pass আর fail-দের আলাদা দুটো scatter — label="pass" আর label="fail", আলাদা রঙে
  2. সব data-র ওপর একটা regression line (np.polyfit দিয়ে degree 1), label="trend"
  3. Legend

আর slope = সেই line-এর ঢাল (প্রতি ঘণ্টায় কত নম্বর বাড়ে), 1 ঘর দশমিকে round।

solution.py

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

Predicted বনাম actual — একটা regression model কতটা ভালো, সবচেয়ে সৎ graph:

main.py

লাল রেখা = নিখুঁত prediction। ভালো model-এর বিন্দুগুলো রেখার কাছে; দুর্বল model সব কিছু গড়ের দিকে টানে — দামি বাড়ির দাম কম বলে, সস্তার বেশি। শুধু MAE সংখ্যা দেখে এই pattern বোঝা যেত না।

Interview প্রশ্ন

  • Beginner: Scatter plot কখন ব্যবহার করবে? Correlation কী?
  • Intermediate: Correlation আর causation-এর পার্থক্য কী? একটা উদাহরণ দাও।
  • Advanced: Pearson correlation কোন ধরনের সম্পর্ক ধরতে পারে না? Spearman correlation কখন ভালো?

এরপর কী?

Scatter দুটো variable-এর সম্পর্ক দেখায়। কিন্তু একটা variable-এর মানগুলো কীভাবে ছড়ানো — বেশিরভাগ কোথায়, কতটা বিস্তৃত? পরের lesson: Histogram।