ডেটা সাইন্সের বা মেশিন লার্নিং এর জগতে শুধু ডেটা সংগ্রহ বা অ্যানালাইসিস করলেই হয় না, সেই ডেটার ভেতরের গল্পটা সহজভাবে তুলে ধরাও খুব জরুরি। আর এই গল্প বলার সবচেয়ে শক্তিশালী মাধ্যম হলো গ্রাফ বা চার্ট (Data graphical method representation)। ডেটাকে গ্রাফের মাধ্যমে প্রকাশ করাকে ডেটা ভিজুয়ালাইজেশন (Data Visualization) বলে।
আজ আমরা ডেটা সামারাইজ করার জন্য সবচেয়ে বেশি ব্যবহৃত ৫টি গ্রাফিক্যাল পদ্ধতি নিয়ে আলোচনা করব এবং পাইথনের Matplotlib ও Seaborn লাইব্রেরি ব্যবহার করে এগুলো তৈরি করা শিখব।
১. হিস্টোগ্রাম (Histogram – Data Graphical Method)
হিস্টোগ্রাম দেখতে অনেকটা বার চার্টের মতো হলেও এর কাজ ভিন্ন। এটি একটি নির্দিষ্ট ভ্যারিয়েবলের ডিস্ট্রিবিউশন বা বিন্যাস দেখায়। অর্থাৎ, কোনো একটি নির্দিষ্ট রেঞ্জের মধ্যে কতগুলো ডেটা পয়েন্ট আছে, তা হিস্টোগ্রাম থেকে বোঝা যায়। এটি শুধুমাত্র নিউমেরিক্যাল (সংখ্যাসূচক) ডেটার জন্য ব্যবহৃত হয়। কখন ব্যবহার করবেন?
- যখন আপনি ডেটার বণ্টন বা আকৃতি (Shape of Distribution) দেখতে চান। যেমন: ডেটাগুলো কি নরমালি ডিস্ট্রিবিউটেড (Normal Distribution) নাকি একপাশে হেলানো (Skewed)?
- ডেটার ঘনত্ব (concentration) কোথায় সবচেয়ে বেশি, তা বোঝার জন্য।
- ডেটার মধ্যে আউটলায়ার (Outlier) বা অস্বাভাবিক মান খুঁজে বের করার জন্য।
পাইথন উদাহরণ: ধরা যাক, আমাদের কাছে একটি ক্লাসের শিক্ষার্থীদের পরীক্ষার নম্বর আছে। আমরা দেখতে চাই নম্বরগুলোর বণ্টন কেমন।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import matplotlib.pyplot as plt import numpy as np # শিক্ষার্থীদের পরীক্ষার নম্বর (0 থেকে 100) exam_scores = np.random.normal(75, 10, 100) # 75 গড় এবং 10 standard deviation সহ 100টি নম্বর plt.figure(figsize=(8, 5)) plt.hist(exam_scores, bins=10, edgecolor='black') # bins=10 মানে ডেটাকে ১০টি গ্রুপে ভাগ করা হয়েছে plt.title('পরীক্ষার নম্বরের ডিস্ট্রিবিউশন') plt.xlabel('নম্বর') plt.ylabel('শিক্ষার্থীর সংখ্যা') plt.grid(True, linestyle='--', alpha=0.6) plt.show() |
এই কোডটি একটি হিস্টোগ্রাম তৈরি করবে যা দেখাবে কোন নম্বরের পরিসরে কতজন শিক্ষার্থী আছে।
২. বার চার্ট (Bar Chart – Data Graphical Method)
বার চার্ট বিভিন্ন ক্যাটাগরিক্যাল ডেটার মধ্যে তুলনা করার জন্য ব্যবহৃত হয়। প্রতিটি ক্যাটাগরির মান একটি আয়তাকার বার দিয়ে দেখানো হয়, যার উচ্চতা বা দৈর্ঘ্য ওই ক্যাটাগরির মানের সমানুপাতিক। কখন ব্যবহার করবেন?
- বিভিন্ন গ্রুপের মধ্যে তুলনা করার জন্য। যেমন: বিভিন্ন দেশের জনসংখ্যা, বিভিন্ন পণ্যের বিক্রি।
- সময়ের সাথে সাথে কোনো ক্যাটাগরিক্যাল ডেটার পরিবর্তন দেখানোর জন্য (যদিও এর জন্য লাইন চার্ট বেশি উপযোগী)।
পাইথন উদাহরণ: ধরা যাক, আমরা একটি ফলের দোকানে বিভিন্ন ফলের স্টক তুলনা করতে চাই।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import matplotlib.pyplot as plt # বিভিন্ন ফলের নাম ও তাদের পরিমাণ fruits = ['আম', 'জাম', 'লিচু', 'কলা'] quantity = [120, 75, 90, 150] plt.figure(figsize=(8, 5)) plt.bar(fruits, quantity, color=['gold', 'purple', 'red', 'yellow']) plt.title('ফলের দোকানে মজুদের পরিমাণ') plt.xlabel('ফলের নাম') plt.ylabel('পরিমাণ (কেজি)') plt.show() |
এই বার চার্টটি খুব সহজেই দেখিয়ে দেবে কোন ফলের পরিমাণ সবচেয়ে বেশি বা কম।
৩. স্ক্যাটার প্লট (Scatter Plot – Data Graphical Method)
স্ক্যাটার প্লট দুটি নিউমেরিক্যাল ভ্যারিয়েবলের মধ্যেকার সম্পর্ক (relationship) দেখানোর জন্য ব্যবহৃত হয়। প্রতিটি ডেটা পয়েন্টকে একটি ডট (বিন্দু) হিসেবে প্লটে দেখানো হয়। কখন ব্যবহার করবেন?
- দুটি ভ্যারিয়েবলের মধ্যে কোনো কোরিলেশন (correlation) বা ارتباط আছে কিনা তা বোঝার জন্য।
- Positive Correlation: একটি বাড়লে অন্যটিও বাড়ে।
- Negative Correlation: একটি বাড়লে অন্যটি কমে।
- No Correlation: কোনো সম্পর্ক নেই।
পাইথন উদাহরণ: আমরা দেখতে চাই, একজন শিক্ষার্থী যত ঘণ্টা পড়াশোনা করে, তার পরীক্ষার নম্বরের ওপর তার কোনো প্রভাব আছে কিনা।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import matplotlib.pyplot as plt # পড়াশোনার ঘণ্টা এবং প্রাপ্ত নম্বর study_hours = [2, 3, 5, 1, 6, 4, 7] exam_marks = [65, 70, 85, 50, 90, 75, 95] plt.figure(figsize=(8, 5)) plt.scatter(study_hours, exam_marks, color='green') plt.title('পড়াশোনার সময় বনাম পরীক্ষার নম্বর') plt.xlabel('পড়াশোনার ঘণ্টা') plt.ylabel('প্রাপ্ত নম্বর') plt.grid(True, linestyle='--', alpha=0.6) plt.show() |
এই প্লটটি দেখে আমরা সহজেই অনুমান করতে পারি যে, পড়াশোনার সময় বাড়ার সাথে সাথে পরীক্ষার নম্বরও বাড়ছে (Positive Correlation)।
৪. বক্সপ্লট (Boxplot – Data Graphical Method)
বক্সপ্লট একটি নিউমেরিক্যাল ভ্যারিয়েবলের ডিস্ট্রিবিউশনকে পাঁচটি গুরুত্বপূর্ণ সংখ্যার মাধ্যমে সংক্ষিপ্তভাবে দেখায়: সর্বনিম্ন মান (Minimum), প্রথম কোয়ার্টাইল (Q1), মিডিয়ান (Median/Q2), তৃতীয় কোয়ার্টাইল (Q3), এবং সর্বোচ্চ মান (Maximum)। এটি ডেটার বিস্তার এবং আউটলায়ার খুঁজে বের করতে খুব কার্যকর। কখন ব্যবহার করবেন?
- ডেটার বিস্তার (spread) এবং মধ্যক (median) বোঝার জন্য।
- ডেটার মধ্যে আউটলায়ার বা অস্বাভাবিক মান আছে কিনা তা দেখার জন্য।
- একাধিক গ্রুপের ডিস্ট্রিবিউশনকে পাশাপাশি তুলনা করার জন্য।
পাইথন উদাহরণ: ধরা যাক, তিনটি ভিন্ন ক্লাসের শিক্ষার্থীদের পরীক্ষার নম্বরের ডিস্ট্রিবিউশন আমরা তুলনা করতে চাই।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import matplotlib.pyplot as plt import numpy as np # তিনটি ক্লাসের পরীক্ষার নম্বর class_A = np.random.normal(70, 10, 50) class_B = np.random.normal(80, 12, 50) class_C = np.random.normal(65, 8, 50) data_to_plot = [class_A, class_B, class_C] plt.figure(figsize=(8, 6)) plt.boxplot(data_to_plot, patch_artist=True, labels=['ক্লাস A', 'ক্লাস B', 'ক্লাস C']) plt.title('তিনটি ক্লাসের নম্বরের তুলনা') plt.ylabel('নম্বর') plt.grid(True, linestyle='--', alpha=0.6) plt.show() |
এই বক্সপ্লট থেকে আমরা এক নজরে বুঝতে পারব কোন ক্লাসের গড় নম্বর বেশি, কোন ক্লাসের নম্বরের বিস্তার বেশি এবং কোনো ক্লাসে আউটলায়ার আছে কিনা।\
৫. লাইন চার্ট (Line Chart – Data Graphical Method)
লাইন চার্ট ধারাবাহিক ডেটা পয়েন্টগুলোকে একটি সরলরেখা দিয়ে যুক্ত করে। এটি সাধারণত সময়ের সাথে সাথে কোনো কিছুর পরিবর্তন দেখানোর জন্য ব্যবহৃত হয়।
কখন ব্যবহার করবেন?
- সময়-ভিত্তিক ডেটা বা টাইম-সিরিজ ডেটা (Time-Series Data) দেখানোর জন্য। যেমন: শেয়ার বাজারের ওঠানামা, এক বছরের মাসিক তাপমাত্রা, বা কোনো ওয়েবসাইটের দৈনিক ভিজিটর সংখ্যা।
- একাধিক সিরিজের মধ্যে সময়ের সাথে ট্রেন্ড তুলনা করার জন্য।
পাইথন উদাহরণ: আমরা গত এক সপ্তাহে একটি কোম্পানির শেয়ারের দামের পরিবর্তন দেখতে চাই।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import matplotlib.pyplot as plt # সপ্তাহের দিন এবং শেয়ারের দাম days = ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র'] stock_price = [102, 105, 103, 108, 110, 109] plt.figure(figsize=(8, 5)) plt.plot(days, stock_price, marker='o', linestyle='-', color='b') plt.title('সাপ্তাহিক শেয়ারের দামের ট্রেন্ড') plt.xlabel('দিন') plt.ylabel('দাম (টাকা)') plt.grid(True, linestyle='--', alpha=0.6) plt.show() |
এই লাইন চার্টটি পরিষ্কারভাবে দেখাচ্ছে যে সময়ের সাথে শেয়ারের দামের ট্রেন্ড কেমন ছিল।
সঠিক ডেটার জন্য সঠিক চার্ট বেছে নেওয়া ডেটা অ্যানালিসিসের একটি শৈল্পিক দিক। প্রতিটি চার্টের নিজস্ব শক্তি এবং দুর্বলতা আছে। আশা করি, এই আলোচনা আপনাকে ডেটা ভিজুয়ালাইজেশনের জগতে আপনার প্রথম পদক্ষেপ নিতে সাহায্য করবে। এখন আপনার পালা, বিভিন্ন ডেটাসেট নিয়ে এই চার্টগুলো তৈরি করার চেষ্টা করুন!

Leave a Comment