সমাধান করা হয়েছে: স্বাভাবিক বন্টন থেকে প্লট n সংখ্যা

সর্বশেষ আপডেট: 09/11/2023

আজকের বিশ্বে, সিদ্ধান্ত নেওয়ার প্রক্রিয়ায় ডেটা গুরুত্বপূর্ণ ভূমিকা পালন করে এবং এটি বোঝা যে কোনও ব্যবসার জন্য গুরুত্বপূর্ণ। ডেটা বিশ্লেষণে বিভিন্ন ধরনের কৌশল জড়িত থাকে, যার মধ্যে একটি হল একটি সাধারণ বন্টন থেকে নম্বর প্লট করা। একটি সাধারণ বন্টন হল একটি সাধারণ সম্ভাব্যতা বন্টন, যা গাউসিয়ান ডিস্ট্রিবিউশন বা বেল কার্ভ নামেও পরিচিত। এই নিবন্ধে, আমরা পাইথন ব্যবহার করে একটি সাধারণ বিতরণ থেকে র্যান্ডম সংখ্যা প্লট করার সমস্যাটি অন্বেষণ করব, জড়িত লাইব্রেরিগুলিকে বুঝব এবং প্রতিটি ধাপ বোঝার জন্য কোডটি বিচ্ছিন্ন করব।

সাধারণ বিতরণের জন্য লাইব্রেরি এবং কার্যাবলী

পাইথন বেশ কয়েকটি লাইব্রেরি অফার করে যা একটি সাধারণ বিতরণ থেকে নম্বর তৈরি এবং প্লট করতে আমাদের সাহায্য করতে পারে। এই উদ্দেশ্যে দুটি বহুল ব্যবহৃত লাইব্রেরি হল NumPy এবং Matplotlib।

নম্র অ্যারে পরিচালনা এবং বিভিন্ন সংখ্যাসূচক গণনা সম্পাদনের জন্য একটি শক্তিশালী লাইব্রেরি। আমরা একটি সাধারণ বিতরণ থেকে র্যান্ডম সংখ্যা তৈরি করতে এটি ব্যবহার করব। আমাদের সমস্যার জন্য NumPy-এর কিছু গুরুত্বপূর্ণ ফাংশনের মধ্যে রয়েছে np.random.normal() এবং np.linspace()।

ম্যাটপ্ল্লোব পাইথনে স্ট্যাটিক, ইন্টারেক্টিভ এবং অ্যানিমেটেড ভিজ্যুয়ালাইজেশন তৈরি করার জন্য একটি লাইব্রেরি। আমরা উত্পন্ন র্যান্ডম সংখ্যার স্বাভাবিক বন্টন কল্পনা করতে এটি ব্যবহার করব। এই লাইব্রেরি থেকে আমরা যে প্রাথমিক ফাংশনটি ব্যবহার করব তা হল plt.hist()।

এখন আসুন এই এলোমেলো সংখ্যাগুলি প্লট করার জন্য সমাধানটি অনুসন্ধান করি এবং ধাপে ধাপে কোডটি বুঝতে পারি।

সমাধান: একটি সাধারণ বন্টন থেকে প্লট নম্বর

সমাধানটি প্রদর্শন করতে, আমরা নিম্নলিখিত পাইথন কোডটি ব্যবহার করব:

import numpy as np
import matplotlib.pyplot as plt

mu = 0
sigma = 1
n = 1000

samples = np.random.normal(mu, sigma, n)
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)

plt.hist(samples, bins=x, density=True, alpha=0.6, color='g')
plt.xlabel('Random Numbers')
plt.ylabel('Frequency')
plt.title('Plotting Numbers from a Normal Distribution')

plt.show()

এখন আসুন কোডটি ভেঙে বিস্তারিতভাবে বুঝি।

1. আমরা প্রয়োজনীয় লাইব্রেরি আমদানি করে শুরু করি: NumPy এবং Matplotlib।

2. আমরা এলোমেলো সংখ্যা তৈরি করার জন্য প্রয়োজনীয় পরামিতি সেট করি। এখানে, mu গড় প্রতিনিধিত্ব করে, সিগমা আদর্শ বিচ্যুতি প্রতিনিধিত্ব করে, এবং n আমরা যে র্যান্ডম সংখ্যা তৈরি করতে চাই তার সংখ্যা প্রতিনিধিত্ব করে।

3. আমরা np.random.normal() ফাংশন ব্যবহার করে গড়, মানক বিচ্যুতি এবং র্যান্ডম সংখ্যার সংখ্যা প্রদান করে এলোমেলো সংখ্যা তৈরি করি।

4. আমরা mu-3*sigma থেকে mu+3*sigma পর্যন্ত মানগুলির জন্য np.linspace() ব্যবহার করে একটি linspace তৈরি করি, যা প্রায় 99.7% ডেটা পয়েন্ট কভার করে x-অক্ষের জন্য পরিসীমা উপস্থাপন করে।

5. হিস্টোগ্রাম প্লট করতে আমরা Matplotlib থেকে plt.hist() ফাংশন ব্যবহার করি। আমরা আমাদের তৈরি করা লিনস্পেস প্রদান করে বিনগুলি নির্দিষ্ট করি এবং স্বাভাবিককরণের জন্য আমরা ঘনত্বকে সত্যে সেট করি। স্বচ্ছতার জন্য আলফা প্যারামিটার 0.6 এবং সবুজ রঙের জন্য 'g' সেট করা হয়েছে।

6. আমরা যথাক্রমে plt.xlabel(), plt.ylabel(), এবং plt.title() ফাংশন ব্যবহার করে x-অক্ষ লেবেল, y-অক্ষ লেবেল এবং হিস্টোগ্রামের শিরোনাম সেট করি।

7. অবশেষে, আমরা plt.show() ব্যবহার করে হিস্টোগ্রাম প্রদর্শন করি।

np.random.normal() ফাংশন বোঝা

np.random.normal() ফাংশন হল NumPy লাইব্রেরির মধ্যে একটি বহুমুখী ফাংশন। এটি আমাদের একটি স্বাভাবিক (গাউসিয়ান) বিতরণ থেকে এলোমেলো নমুনা তৈরি করতে দেয়। ফাংশনটি তিনটি আর্গুমেন্ট নেয়:

- loc (ফ্লোট): বিতরণের গড় ("কেন্দ্র")।
- স্কেল (ফ্লোট): বিতরণের মানক বিচ্যুতি (স্প্রেড বা "প্রস্থ")।
– আকার (int বা ints এর tuple): আউটপুট আকৃতি, যা উৎপন্ন করার জন্য এলোমেলো সংখ্যার সংখ্যা নির্ধারণ করে।

এই ফাংশনটি ব্যবহার করে, আমরা সহজে এলোমেলো সংখ্যা তৈরি করতে পারি এবং একটি হিস্টোগ্রাম ব্যবহার করে তাদের প্লট করতে পারি, যেমনটি উপরের কোডে প্রদর্শিত হয়েছে।

উপসংহারে, Python, NumPy এবং Matplotlib-এর মতো শক্তিশালী লাইব্রেরি সহ, একটি সাধারণ বিতরণ থেকে প্লট নম্বরগুলিকে একটি সহজ কাজ করে তোলে। এই লাইব্রেরিগুলি এবং তাদের ফাংশনগুলি বোঝা ডেটা পরিচালনা এবং এটি কার্যকরভাবে দৃশ্যমান করার জন্য অপরিহার্য। কোডের কয়েকটি লাইনের সাহায্যে, আমরা এলোমেলো সংখ্যা তৈরি করতে পারি এবং তাদের বিতরণকে কল্পনা করতে পারি, যা পাইথনকে পরিসংখ্যানগত বিশ্লেষণ এবং ডেটা ভিজ্যুয়ালাইজেশনের জন্য একটি চমৎকার পছন্দ করে তোলে।

সম্পর্কিত পোস্ট:

মতামত দিন