আমরা যখন Artificial Intelligence (AI) অথবা Machine Learning (ML) শিখি, তখন ডেটা সবচেয়ে গুরুত্বপূর্ণ বিষয়। কারণ – ডেটা ভালো হলে মডেল ভালো হবে। আর খারাপ ডেটা থেকে ভালো মডেল আশা করা যায় না। তাহলে প্রশ্ন হলো – ডেটা কোথা থেকে আসে? এই ব্লগে আমরা তিনটি প্রধান ডেটার উৎস (Sources of Data) শিখব |
ডেটা বিশ্লেষণের জন্য সঠিক উৎস থেকে তথ্য সংগ্রহ করা অত্যন্ত গুরুত্বপূর্ণ। বিভিন্ন পদ্ধতির মাধ্যমে ডেটা সংগ্রহ করা যায়, যেমন স্যাম্পলিং, ডিজাইন অফ এক্সপেরিমেন্ট (DoE), এবং অ্যাডমিনিস্ট্রেটিভ রেকর্ড ও অবজার্ভেশনাল ডেটা। এই ব্লগে আমরা এই পদ্ধতিগুলো বাংলায় সহজভাবে ব্যাখ্যা করব।
১. স্যাম্পলিং (Sampling)
স্যাম্পলিং হলো একটি বৃহৎ জনগোষ্ঠী বা পপুলেশন থেকে একটি ছোট অংশ (স্যাম্পল) নির্বাচন করার প্রক্রিয়া। এই পদ্ধতিতে পুরো জনগোষ্ঠীর পরিবর্তে শুধুমাত্র স্যাম্পলের তথ্য সংগ্রহ করে বিশ্লেষণ করা হয়। এটি সময়, শ্রম এবং খরচ কমায়।
- উদাহরণ: ধরুন, আমরা একটি শহরের মানুষের বয়সের তথ্য থেকে নমুনা নিতে চাই। এখানে আমরা একটি বড় জনগোষ্ঠী (যেমন, ১০০০ জনের তথ্য) থেকে এলোমেলোভাবে ১০০ জনের নমুনা (sample) নির্বাচন করব।
- কেন ব্যবহার করা হয়? স্যাম্পলিং ব্যবহার করা হয় কারণ পুরো জনগোষ্ঠীর তথ্য সংগ্রহ করা কঠিন এবং ব্যয়বহুল। সঠিকভাবে স্যাম্পল নির্বাচন করলে এটি পুরো জনগোষ্ঠীর প্রতিনিধিত্ব করতে পারে।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import random import numpy as np # একটি বড় জনগোষ্ঠীর বয়সের ডেটা তৈরি করা (ধরা যাক ১০০০ জনের তথ্য) population_ages = [random.randint(15, 80) for _ in range(1000)] # এলোমেলো স্যাম্পলিং (১০০ জনের নমুনা) sample_size = 100 sample_ages = random.sample(population_ages, sample_size) # নমুনার গড় বয়স বের করা average_age = np.mean(sample_ages) print(f"নমুনার গড় বয়স: {average_age:.2f} বছর") print(f"নমুনার প্রথম ১০টি বয়স: {sample_ages[:10]}") |
ব্যাখ্যা:
- আমরা random.randint ব্যবহার করে ১৫ থেকে ৮০ বছরের মধ্যে ১০০০ জনের বয়সের একটি তালিকা তৈরি করেছি।
- random.sample ফাংশন দিয়ে এলোমেলোভাবে ১০০ জনের বয়স নির্বাচন করা হয়েছে।
- numpy-এর mean ফাংশন দিয়ে নমুনার গড় বয়স বের করা হয়েছে।
- এটি দেখায় কীভাবে একটি বড় জনগোষ্ঠী থেকে ছোট নমুনা নিয়ে বিশ্লেষণ করা যায়।
২. ডিজাইন অফ এক্সপেরিমেন্ট (Design of Experiment – DoE)
ডিজাইন অফ এক্সপেরিমেন্ট হলো এমন একটি পদ্ধতি যেখানে গবেষক কিছু নির্দিষ্ট উপাদান বা শর্ত পরিবর্তন করে তার প্রভাব পর্যবেক্ষণ করেন। এটি সাধারণত চিকিৎসা, কৃষি, এবং শিল্প গবেষণায় ব্যবহৃত হয়।
- উদাহরণ: একটি নতুন ওষুধের কার্যকারিতা পরীক্ষা করতে গবেষক একদল রোগীকে ওষুধ দেন এবং অন্য দলকে প্লাসিবো (নকল ওষুধ) দেন। তারপর তিনি তুলনা করেন কোন দলের স্বাস্থ্যের উন্নতি বেশি হয়েছে।
- কেন গুরুত্বপূর্ণ? এই পদ্ধতি কারণ ও ফলাফলের সম্পর্ক স্পষ্টভাবে বোঝার জন্য নিয়ন্ত্রিত পরিবেশে তথ্য সংগ্রহ করে। এটি বিশেষ করে নতুন পণ্য বা পদ্ধতির কার্যকারিতা পরীক্ষার জন্য উপযোগী।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import numpy as np import pandas as pd from scipy import stats # দুটি গ্রুপের জন্য ডেটা তৈরি (ধরা যাক ২০ জন রোগী প্রতি গ্রুপে) np.random.seed(42) # পুনরায় চালানোর জন্য ফলাফল স্থির রাখতে low_dose_recovery = np.random.normal(loc=10, scale=2, size=20) # কম ডোজ, গড় ১০ দিন high_dose_recovery = np.random.normal(loc=8, scale=2, size=20) # বেশি ডোজ, গড় ৮ দিন # ডেটা ফ্রেমে সংরক্ষণ data = pd.DataFrame({ 'Recovery_Time': np.concatenate([low_dose_recovery, high_dose_recovery]), 'Dose': ['Low']*20 + ['High']*20 }) # গ্রুপ অনুযায়ী গড় সুস্থতার সময় print("গ্রুপ অনুযায়ী গড় সুস্থতার সময়:") print(data.groupby('Dose')['Recovery_Time'].mean()) # t-test করে দেখা যে ডোজের প্রভাবে পার্থক্য আছে কি না t_stat, p_value = stats.ttest_ind(low_dose_recovery, high_dose_recovery) print(f"\nt-test ফলাফল: t-statistic = {t_stat:.2f}, p-value = {p_value:.4f}") if p_value < 0.05: print("ডোজের মধ্যে উল্লেখযোগ্য পার্থক্য আছে।") else: print("ডোজের মধ্যে উল্লেখযোগ্য পার্থক্য নেই।") |
ব্যাখ্যা:
- আমরা numpy ব্যবহার করে দুটি গ্রুপের জন্য সুস্থতার সময়ের ডেটা তৈরি করেছি: একটি কম ডোজ (গড় ১০ দিন) এবং একটি বেশি ডোজ (গড় ৮ দিন)।
- pandas দিয়ে ডেটা সংরক্ষণ করে গ্রুপ অনুযায়ী গড় বের করা হয়েছে।
- scipy.stats.ttest_ind দিয়ে t-test করা হয়েছে যাতে দেখা যায় দুটি গ্রুপের মধ্যে উল্লেখযোগ্য পার্থক্য আছে কি না।
- এটি দেখায় কীভাবে একটি নিয়ন্ত্রিত পরীক্ষা (DoE) করে ফলাফল বিশ্লেষণ করা যায়।
৩. অ্যাডমিনিস্ট্রেটিভ রেকর্ড এবং অবজার্ভেশনাল ডেটা
এই পদ্ধতিতে বিদ্যমান রেকর্ড বা প্রাকৃতিক পর্যবেক্ষণ থেকে তথ্য সংগ্রহ করা হয়। এটি দুই ধরনের হতে পারে:
- অ্যাডমিনিস্ট্রেটিভ রেকর্ড: এটি সরকারি বা বেসরকারি প্রতিষ্ঠানের রেকর্ড থেকে সংগ্রহ করা তথ্য। যেমন, হাসপাতালের রোগীর তথ্য, স্কুলের ছাত্রদের রেকর্ড, বা জনসংখ্যার সরকারি তথ্য।
- অবজার্ভেশনাল ডেটা: এটি এমন তথ্য যা কোনো নিয়ন্ত্রণ ছাড়াই পর্যবেক্ষণের মাধ্যমে সংগ্রহ করা হয়। গবেষক শুধু পরিস্থিতি পর্যবেক্ষণ করেন এবং তথ্য রেকর্ড করেন।
- উদাহরণ: একটি পার্কে কতজন মানুষ সকালে ব্যায়াম করতে আসে তা পর্যবেক্ষণ করে তথ্য সংগ্রহ করা।
- কেন ব্যবহার করা হয়? এই তথ্য সহজলভ্য এবং প্রাকৃতিক পরিবেশের প্রতিফলন ঘটায়। তবে এটির মাধ্যমে কারণ-ফলাফল সম্পর্ক সবসময় স্পষ্ট হয় না।
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import pandas as pd # ধরা যাক, আমাদের একটি CSV ফাইল আছে (এখানে আমরা ডেটা তৈরি করছি) data = { 'Patient_ID': range(1, 21), 'Age': [25, 34, 45, 60, 22, 38, 50, 29, 55, 42, 31, 27, 65, 48, 36, 53, 44, 39, 28, 62], 'Days_in_Hospital': [3, 5, 7, 10, 2, 4, 8, 3, 9, 6, 4, 3, 12, 7, 5, 8, 6, 5, 4, 11] } df = pd.DataFrame(data) # ডেটার সারাংশ print("ডেটার সারাংশ:") print(df.describe()) # বয়স এবং হাসপাতালে থাকার দিনের সম্পর্ক বিশ্লেষণ correlation = df['Age'].corr(df['Days_in_Hospital']) print(f"\nবয়স এবং হাসপাতালে থাকার দিনের মধ্যে সম্পর্ক (করেলেশন): {correlation:.2f}") # বয়সের গ্রুপ অনুযায়ী গড় হাসপাতালে থাকার দিন df['Age_Group'] = pd.cut(df['Age'], bins=[0, 30, 50, 100], labels=['Young', 'Middle-aged', 'Senior']) print("\nবয়সের গ্রুপ অনুযায়ী গড় হাসপাতালে থাকার দিন:") print(df.groupby('Age_Group')['Days_in_Hospital'].mean()) |
ব্যাখ্যা:
- আমরা একটি ছোট ডেটাসেট তৈরি করেছি যেখানে রোগীর বয়স এবং হাসপাতালে থাকার দিনের তথ্য আছে।
- pandas ব্যবহার করে ডেটার সারাংশ (গড়, মিনিমাম, ম্যাক্সিমাম ইত্যাদি) বের করা হয়েছে।
- বয়স এবং হাসপাতালে থাকার দিনের মধ্যে সম্পর্ক (correlation) পরীক্ষা করা হয়েছে।
- বয়সের গ্রুপ (যুবক, মধ্যবয়সী, প্রবীণ) অনুযায়ী গড় হাসপাতালে থাকার দিন বের করা হয়েছে।
- এটি দেখায় কীভাবে বিদ্যমান রেকর্ড (অ্যাডমিনিস্ট্রেটিভ ডেটা) বিশ্লেষণ করা যায়।
ডেটার উৎস নির্বাচন করা গবেষণার ধরন এবং উদ্দেশ্যের উপর নির্ভর করে। স্যাম্পলিং সময় ও খরচ বাঁচায়, ডিজাইন অফ এক্সপেরিমেন্ট কারণ-ফলাফল সম্পর্ক বোঝায়, এবং অ্যাডমিনিস্ট্রেটিভ ও অবজার্ভেশনাল ডেটা সহজলভ্য তথ্য সরবরাহ করে। সঠিক পদ্ধতি বেছে নিলে গবেষণার ফলাফল আরও নির্ভরযোগ্য এবং কার্যকর হবে।

Leave a Comment