ডেটা সায়েন্স এবং মেশিন লার্নিং প্রোজেক্টে ডেটার মধ্যে missing values (অনুপস্থিত মান) একটি সাধারণ সমস্যা। এই ধরনের অনুপস্থিত ডেটা পরিচালনা করা অত্যন্ত গুরুত্বপূর্ণ, কারণ মডেল ট্রেনিং এবং বিশ্লেষণ সঠিকভাবে কাজ না করতে পারে যদি ডেটাতে গ্যাপ থাকে। Missing data হ্যান্ডলিংয়ের জন্য Mean, Median, এবং Mode এর মতো কৌশলগুলি ব্যাপকভাবে ব্যবহৃত হয়।
এখানে, আমরা দেখব কিভাবে Python এর pandas লাইব্রেরি ব্যবহার করে Missing Data হ্যান্ডল করা যায়।
1. Missing Data চেক করা
প্রথমে ডেটাতে কতটি missing values আছে তা চেক করা।
import pandas as pd
# ডেটাসেট লোড করা
df = pd.read_csv('data.csv')
# Missing values চেক করা
print(df.isnull().sum())
এই কমান্ডটি ডেটাসেটের প্রতি কলামে কতটি missing value আছে তা দেখাবে।
2. Missing Data হ্যান্ডলিং - Mean, Median, Mode
অনেক সময় missing values গুলি Mean, Median, অথবা Mode দিয়ে পূর্ণ করা হয়। যেটি উপযুক্ত হতে পারে তা নির্ভর করে ডেটার প্রকারের উপর।
(a) Mean দিয়ে Missing Data পূর্ণ করা
Mean (গড়) পূর্ণ করার জন্য, সাধারণত নিউমেরিক্যাল কলাম গুলিতে এটি ব্যবহার করা হয়।
# Numeric কলামগুলির জন্য Mean দিয়ে Missing Data পূর্ণ করা
df['column_name'] = df['column_name'].fillna(df['column_name'].mean())
এখানে:
column_nameহল সেই কলাম যেখানে missing data রয়েছে।fillna()ফাংশনটি missing value গুলিকে Mean দিয়ে পূর্ণ করবে।
(b) Median দিয়ে Missing Data পূর্ণ করা
Median (মধ্যম মান) গড়ের থেকে কম সংবেদনশীল, বিশেষত যখন ডেটা সিস্টেমেটিকালি স্কিউড (skewed) থাকে। স্কিউড ডেটার জন্য Median ব্যবহার করা ভাল।
# Numeric কলামগুলির জন্য Median দিয়ে Missing Data পূর্ণ করা
df['column_name'] = df['column_name'].fillna(df['column_name'].median())
(c) Mode দিয়ে Missing Data পূর্ণ করা
Mode (সর্বাধিক পুনরাবৃত্ত মান) ক্যাটেগরিক্যাল ডেটার জন্য ব্যবহার করা হয়, যেখানে প্রতিটি মান কতবার এসেছে তা গুরুত্বপূর্ণ।
# ক্যাটেগোরিক্যাল কলামের জন্য Mode দিয়ে Missing Data পূর্ণ করা
df['column_name'] = df['column_name'].fillna(df['column_name'].mode()[0])
এখানে:
mode()[0]হল সেই কলামের প্রথম Mode মান (যদি একাধিক Mode থাকে)।
3. Multiple Columns এ Missing Data পূর্ণ করা
আপনি একাধিক কলামে Missing Values হ্যান্ডল করতে চাইলে, নিচের মতো কোড ব্যবহার করতে পারেন:
# সব কলামের জন্য Mean দিয়ে Missing Data পূর্ণ করা
df.fillna(df.mean(), inplace=True)
# সব কলামের জন্য Median দিয়ে Missing Data পূর্ণ করা
df.fillna(df.median(), inplace=True)
# সব কলামের জন্য Mode দিয়ে Missing Data পূর্ণ করা
for column in df.select_dtypes(include=['object']).columns:
df[column].fillna(df[column].mode()[0], inplace=True)
এই কোডে:
- Mean, Median, এবং Mode ব্যবহার করে সব কলামে missing values পূর্ণ করা হচ্ছে।
4. Missing Data ড্রপ করা
কখনও কখনও, ডেটা হ্যান্ডল করার পরিবর্তে, অনুপস্থিত মানগুলো সরানো ভাল হতে পারে। আপনি dropna() ফাংশন ব্যবহার করে missing rows বা columns বাদ দিতে পারেন।
(a) Missing Row ড্রপ করা:
df = df.dropna() # যেখানে Missing Values আছে সেই rows সরিয়ে ফেলা
(b) Missing Column ড্রপ করা:
df = df.dropna(axis=1) # যেখানে Missing Values আছে সেই columns সরিয়ে ফেলা
5. Visualization করে Missing Data বিশ্লেষণ করা
Missing Data বিশ্লেষণের জন্য ভিজ্যুয়ালাইজেশন একটি কার্যকরী পদ্ধতি। Seaborn বা Matplotlib ব্যবহার করে Missing Data দেখতে পারেন।
import seaborn as sns
# Missing Data Visualization
sns.heatmap(df.isnull(), cbar=False, cmap='viridis')
এটি একটি heatmap তৈরি করবে, যেখানে Missing Data গুলি হল উজ্জ্বল (yellow) এবং উপস্থিত ডেটা গুলি গা dark (purple) হবে।
সারাংশ
- Missing data পূর্ণ করতে আপনি Mean, Median, বা Mode ব্যবহার করতে পারেন, যা ডেটার ধরন এবং প্রয়োজনীয়তার উপর নির্ভর করে।
- Mean ব্যবহার করা হয় নিউমেরিক্যাল ডেটার জন্য, Median ব্যবহার করা হয় স্কিউড ডেটার জন্য, এবং Mode ব্যবহার করা হয় ক্যাটেগরিক্যাল ডেটার জন্য।
- ডেটাতে missing rows বা columns মুছে ফেলা যায়
dropna()ফাংশন ব্যবহার করে।
Read more