سلام به وبلاگ علی محمدی خوش آمدید

۳ مطلب در خرداد ۱۴۰۱ ثبت شده است

مدیریت داده‌های گمشده (missing data)

مقدمه

مدیریت داده‌های گمشده یا مقادیر از دست رفته گام مهمی در پاکسازی داده‌ها (Data cleaning) و پیش پردازش داده‌ها (Preprocessing) در بحث یادگیری ماشین (Machin Learning) یا داده‌کاوی (Data Mining) است که می تواند بر اعتبار و قابلیت اطمینان مدل تأثیر بگذارد. دلیل اهمیت گمشدگی داده‌ها این است که تقریباً تمام تکنیک‌های آماری کلاسیک و مدرن عملکرد آنها براساس داده‌های کامل است (یا به آنها نیاز دارند). دلیل دیگر اینکه اغلب بسته‌های آماری رایج در بسیاری از نرم‌افزارهای آماری حداقل گزینه‌های مطلوب آنها برای مقابله با داده‌های از دست رفته حذف داده‌های گمشده از تجزیه و تحلیل است.

در این آموزش موارد زیر پوشش  داده‌ خواهد شد:

  • مکانیزم‌های گمشدگی داده‌ها
  • چگونگی برخورد با داده‌های گمشده

داده‌ی گمشده چیست؟

علــی رغــم ایــن کــه در اکثــر تحقیقات علمی روش‌های استنباط براساس داده‌های کامل می‌باشد، ولی در بسیاری از موارد به ویژه وقتی با داده‌های حجیم سروکار داریم، جمـع آوری داده‌هـا به طور کامـل امکـان پـذیر نمی‌باشـد. بنابراین اگر داده‌ای یا مقداری از هر متغیری از هر شرکت‌کننده وجود نداشته باشد، محقق با داده‌های گمشده یا ناقص سروکار دارد.

 

 

برخی از دلایل گمشدگی داده‌ها

  • برخـــی از افـــراد شـــرکت کننده در مطالعـه از ادامـــه همکـــاری انصـــراف می‌دهند.
  • برخـــی از افـــراد شـــرکت کننده از پاسـخ دادن بـه برخـی از سـئوالات اجتنـاب می‌کنند.
  • محققـین، تکنسـینها، جمـع آوری‌کننـده داده‌هــا ممکن است اشتباهاتی را انجام دهند.
  • در بعضی از مطالعات نظر سنجی، افـرادی قـادر به اظهار نظـر دقیـق نباشـند.
  • در یـک مطالعه گذشته نگر به علت نقص مدارک و سـوابق ممکـن است برخی از اطلاعات در دسترس نباشد.
  • ممکن است بـه علـت نقـص یـا ضـعف دسـتگاه و تجهیـزات، امکـان مشـاهده و انـدازه گیـری وجـود نداشـته باشد.

تاثیرات گمشدگی داده‌ها

  • اکثر کتابخانه‌های R و Python مورد استفاده در یادگیری ماشین و داده‌کاوی معمولا ابزاری برای مدیریت خودکار داده‌های گمشده ندارند و می توانند منجر به خطا شوند.
  • داده‌های گمشده می‌تواند باعث ایجاد اغتشاش در توزیع متغیر شود، یعنی می‌توانند باعث بیش‌برازش یا کم‌برازش مدل‌ها شوند.
  • داده‌های گمشده می‌توانند باعث یک سوگیری (اریبی) در مجموعه داده شوند و بنابراین تجزیه و تحلیل آمـاری را بـه سـوی نتـایج اریب سوق داده و نهایتاً دستیابی به یک نتیجه‌گیری مفیـد از داده‌های جمع آوری شده را با مشـکل مواجـه می‌سـازد و می‌توانند منجر به تجزیه و تحلیل نادرست مدل شوند.

مکانیزم‌های گمشدگی

  • هنگام کاوش در داده‌های گمشده یا از دست رفته، مهمترین چیز یافتن و پی بردن به مکانیزم گمشدگی است یعنی اینکه داده‌های گمشده به چه دلیل گم‌شده‌اند؟
  • یعنی گمشدگی داده‌ها هم می‌تواند به صورت تصادفی باشد یا اینکه به دلیل غیرتصادفی و هدفمند عدم پاسخ صورت گرفته باشد. به عنوان مثال، اکثر زنان در یک مطالعه از پاسخ دادن به سوالاتی که مربوط به سن باشند ممکن است به آن سوالات پاسخ ندهند یا معمولا مردان ممکن است از پاسخگویی به سوالات در مورد درآمد خودداری کنند. بنابراین شناخت سازوکار گمشدگی بسیار مهم می‌باشند.

روبین در سال 1976 انواع داده های گمشده را بر اساس دلایل گمشدگی داده‌ها به سه دسته زیر تقسیم‌بندی کرد:

 

ادامه مطالب بسیار ارزشمند و بی‌نظیر این مقاله را به صورت PDF در فایل زیر مطالعه نمائید. در ادامه کار به نحوه‌ی کار با داده‌های گمشده خواهیم پرداخت همچنین می‌توانید ویدیوی ضبط شده توسط آقای دکتر عبدالسعید توماج را نیز که در کانال یوتیوب علم داده به انتشار رسیده، مشاهده نمائید.

  1. دانلود مابقی مقاله بصورت PDF 
  2. مشاهده قسمت اول ویدیو (مربوط به این مقاله)
  3. مشاهده قسمت دوم ویدیو (مربوط به این مقاله)

مدرسه‌ی تابستانی علم داده

 

 

مدرسه تابستانی علم داده
 

جذاب‌ترین شغل قرن 21ام

 

مدرس: دکتر محمد فزونی

 تاریخ شروع: 25 تیرماه 1401

 هزینه ثبت‌نام: 695 هزار تومان

 طول مدت آموزش: 35 ساعت

 نحوه آموزش: آنلاین (ارسال ویدیو، درسنامه، تمرین)

 ارزیابی: آزمون پایانی و ارائه مدرک از سوی مرکز آموزش‌های آزاد دانشگاه گنبدکاووس

 

شرکت در مدرسه‌ی تابستانی علم داده

اصل پارتو و کتابخانه‌های پانداس

تسلط کامل بر یک کتابخانه‌ی پایتون مانند پانداس ‌برای هر کسی می‌تواند چالش برانگیز باشد. اگر یک قدم به عقب برداریم و بیاندیشیم؛ آیا واقعاً نیاز است با جزئیات یک کتابخانه‌ی خاصی آشنا باشیم؟ بخصوص در دنیایی زندگی می‌کنیم که با اصل پارتو (Pareto principle) اداره می‌گردد. همچنین اصل پارتو بعنوان قانون 20-80 نیز شناخته می‌شود.

این اصل بیان می‌کند که %20 از ورودی‌های شما همیشه در تولید %80 از خروجی‌های شما نقش دارند. بنابراین در این پست تلاش کرده‌ایم اصل پارتو را در کتابخانه‌ی پانداس اعمال کنیم؛ یعنی %20 از توابع خاص پانداس را به شما معرفی می‌نمائیم که احتمالاً %80 از وقت خود را با آنها می‌گذرانید. روش‌های زیر برای شروع پانداس ضروری هستند.

 

1. خواندن فایل csv

اگر بخواهید یک فایل csv را در پانداس بخوانید باید از روش

( )pd.read_csv استفاده کنید که در شکل زیر نشان داده شده‌ است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

2. ذخیره سازی دیتافریم در یک فایل csv

اگر بخواهید دیتافریم را در یک فایل بصورت csv ذخیره سازی کنید باید از روش 

( )to_csv استفاده نمائید که در شکل زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

3. ساخت دیتافریم از تعدادی لیستی

اگر بخواهید از لیست‌ها، دیتافریم بسازید باید از روش

( )pd.DataFrame استفاده کنید که در شکل زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

4. ساخت دیتافریم از دیکشنری

اگر بخواهید یک دیتافریم از دیکشنری بسازید باید از روش 

( )pd.DataFrame استفاده کنید. که در شکل زیر نشان داده شده است:

 


برای توضیحات بیشتر اینجا کلیک نمائید

 

5. ادغام دیتافریم‌ها

عمل ادغام در دیتافریم‌ها همان عمل پیوستن (Join) در SQL است که از آن برای پیوستن دو دیتافریم در یک یا چند ستون استفاده می‌کنیم. همچنین اگر بخواهید دو دیتافریم را ادغام کنید باید از روش ( )pd.merge استفاده نمائید که در شکل زیر نشان داده شده است:


برای توضیحات بیشتر اینجا کلیک نمائید

 

6. مرتب سازی دیتافریم

اگر بخواهید یک دیتافریم را بر اساس مقادیر موجود در یک ستون خاص مرتب کنید باید از روش ( )sort_values استفاده کنید که در شکل زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

7. به هم پیوستن دیتافریم‌ها

اگر بخواهید دیتافریم‌ها را با هم الحاق کنید باید از روش 

()pd.concat استفاده کنید که بصورت زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

  • axis = 1 انباشته کردن ستون‌ها باهم
  • axis = 0 انباشته کردن ردیف‌ها باهم

 

8. تغییر نام ستون

اگر بخواهید نام یک ستون یا چندین ستون را در دیتافریم تغییر دهید باید از روش 

( )rename استفاده کنید که بصورت زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

9. اضافه کردن ستون جدید

اگر بخواهید یک ستون جدید به دیتافریم اضافه کنید می‌توانید عمل تخصیص را بصورت زیر انجام دهید:


 

10. فیلتر کردن دیتافریم بر اساس شرط

اگر بخواهید ردیف‌های دیتافریم را بر اساس یک شرط فیلتر کنید می‌توانید این کار را بصورت زیر که نشان داده شده است انجام دهید:

 

 

11. حذف ستون‌ها

اگر بخواهید یک یا چند ستون از دیتافریم را حذف کنید باید از روش ( )drop استفاده کنید که در زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

12. روش GroupBy:

اگر بخواهید عمل تجمیع را بعد از دسته‌بندی انجام دهید باید از روش 

( )groupby استفاده کنید که بصورت زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

13. مقادیر یکتا (یونیک) در یک ستون

اگر بخواهید مقادیر یونیک را در یک ستون از دیتافریم شمارش کنید باید از روش

( )nunique استفاده کنید. همچنین برای چاپ مقادیر یونیک در یک ستون از دیتافریم می‌توان از روش ( )unique استفاده کرد. از این دو روش در شکل زیر استفاده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

14. پر کردن مقادیر NaN:

اگر می‌خواهید در یک ستون مقادیر NaN را با مقادیر دیگر جایگزین کنید باید از روش

( )fillna استفاده کنید که بصورت زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

15. اعمال تابع روی یک ستون:

اگر می‌خواهید یک تابع را در یک ستون اعمال کنید باید از روش 

( )apply استفاده نمائید که بصورت زیر نشان داده شده است:

 

برای توضیحات بیشتر اینجا کلیک نمائید

 

16. حذف تکراری‌ها:

اگر می‌خواهید مقادیر تکراری (duplicate values) را حذف کنید باید از روش

( )drop_duplicates استفاده کنید که بصورت زیر نشان داده شده است:

 


برای توضیحات بیشتر اینجا کلیک نمائید

 

17. روش شمارش مقادیر (Value Counts):

اگر می‌خواهید فراوانی هر مقدار را در یک ستون پیدا کنید باید از روش 

( )value_counts استفاده کنید که بصورت زیر نشان داده شده است:

 


 

18. اندازه‌ی دیتافریم:

اگر می‌خواهید سایز یا اندازه‌ی دیتافریم را پیدا کنید باید از shape استفاده کنید که بصورت زیر است:

 

در این پست، برخی از متداول‌ترین روش‌ها در پانداس را پوشش دادیم تا در شروع به شما کمک نماید. این توابع و روش‌ها به شما در فرایند یادگیری، بسیار کمک خواهد نمود. اکیداً توصیه می‌کنیم که یک دیتافریم از خودتان ایجاد کنید و یا بیابید و در jupyter notebook موارد ذکر شده را تمرین کنید.

علاوه بر این بهترین راه برای افزایش دانش مراجعه به مستندات رسمی پانداس است که می‌توانید به آدرس زیر مراجعه کنید:

/https://pandas.pydata.org/docs

متشکرم از اینکه این مقاله را مطالعه کردید، امیدوارم برای شما مفید بوده باشد.

 

مترجم: علی محمدی

منبع:

 

***در صورتی که تمایل دارید در حوزه‌ی علم داده، بروز باشید و بمانید، اکیداً توصیه می‌کنیم که صفحه‌ی اینستاگرام علم داده را دنبال نمائید که روزانه پست‌های در این حوزه‌ی کاربردی، منتشر می‌نماید. همچنین با مراجعه به این صفحه می‌توانید کتاب‌های سطح‌بندی شده در این رشته که توسط ما معرفی شده‌اند را ببینید.***