پاکسازی داده (Data Cleaning)
برخورد با مقادیر گمشده، دادههای تکراری و پرت؛ تکنیکهای حذف و جایگزینی برای داده تمیز
چرا پاکسازی داده؟
داده واقعی همیشه کثیف است! مقادیر گمشده، تکراری و پرت، کیفیت مدل را نابود میکنند. در این مبحث تکنیکهای اصلی پاکسازی را یاد میگیریم.
۱. مقادیر گمشده (Missing Values)
ابتدا گمشدهها را پیدا کنید:
df.isnull().sum() # تعداد گمشده هر ستون
سه راه اصلی برخورد:
- حذف سطرها:
df.dropna()— وقتی گمشدهها کم باشند - پر کردن با آمار:
df.fillna(df["price"].mean())— با میانگین یا میانه - پر کردن پیشرفته: پیشبینی مقدار گمشده با مدل — وقتی داده ارزشمند است
کدام آمار؟ میانگین یا میانه؟
اگر داده پرت (داده غیرعادی) دارد، میانه بهتر است چون تحت تأثیر مقادیر خیلی بزرگ یا کوچک قرار نمیگیرد. مثلاً در حقوق، میانگین با چند میلیاردر بالا میرود ولی میانه واقعی است.
۲. دادههای تکراری
df.duplicated().sum() # شمارش تکراریها
df = df.drop_duplicates() # حذف
داده تکراری باعث میشود مدل به برخی نمونهها بیش از حد اهمیت دهد.
۳. دادههای پرت (Outliers)
مقادیر غیرعادی مثل خانه ۱۰هزار متری در داده آپارتمانها. روشهای شناسایی:
- روش IQR: خارج از بازه
[Q1 - 1.5×IQR, Q3 + 1.5×IQR] - نمودار جعبهای (Box Plot):
plt.boxplot(df["price"])
۴. خطاهای ورودی
- سن منفی یا ۹۹۹ سال
- متن در ستون عددی («نامشخص» بهجای قیمت)
- ناهماهنگی واحد (متر و فوت قاطی)
همیشه بعد از پاکسازی،
df.shape را چک کنید تا بدانید چند سطر حذف شده و مطمئن شوید زیادهروی نکردهاید.جمعبندی
- گمشدهها: حذف یا پر کردن با میانه/میانگین
- تکراریها: حذف با
drop_duplicates - پرتها: شناسایی با IQR یا Box Plot و تصمیم آگاهانه
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.