چگونه با EDA در داده‌ها اکتشاف کنیم؟

مدرس: مسعود کاویانی

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

اجازه بدهید با یک مثال درس را ادامه دهیم. فرض کنید می‌خواهید سیستمی بسازید که بتواند با استفاده از نتایج آزمایشِ قلب و عروق (داده‌های برگه‌ی آزمایشِ یک شخص)، پیش‌بینی کند که آیا یک شخص بیماری قلبی عروقی دارد یا خیر. این یادگیری باید از روی یک مجموعه‌ی داده‌ی آموزشی انجام شود. چند سطر از داده‌ها را می‌توانید در زیر مشاهده کنید:

در مجموعه داده‌ی بالا، هر سطر یک شخص بوده که دارای ستون‌های مختلف است. در هر ستون یک ویژگی از یک شخص در دسترس است. مثلا ستونِ id، شناسه‌ی یک شخص است. ویژگیِ age، سن شخص (تعداد روز عمر) است. مثلاً شخصِ شماره‌ی صفر (۰)، ۱۸۳۹۳ روز عمر کرده است و شخصِ شماره‌ی یک (۱)، ۲۰۲۲۸ روز عمر کرده است. ستونِ بعدی gender است که نشان‌دهده‌ی جنسیت (۱=مرد و ۲=زن) است. height و weight هم که دو ویژگی دیگر هستند که به ترتیب به قد و وزن اشخاص اشاره دارند.

دو ستونِ بعدی در مجموعه‌ی داده‌ی بالا، یعنی ap_hi و ap_lo به ترتیب فشار خون سیستولیک و دیاستولیک (فشار خون اول و دوم) است که توسط پزشک از شما گرفته می‌شود. (در مورد این دو فشار خون در اینجا توضیح داده شده است). ستونِ بعدی یا همان cholesterol میزان کلسترل موجود در هر شخص را نشان می‌دهد. ستون بعدی یا همان gluc هم نشان‌دهنده‌ی میزان گلوکز موجود در شخص است. دو ستونِ بعدی یعنی smoke و alco نشان‌دهنده‌ی این است که آیا شخص سیگار/قلیان مصرف می‌کند یا خیر و همچنین آیا شخص الکل مصرف می‌کند یا خیر. ستون بعدی یعنی active هم به این معناست که آیا شخص فعالیت فیزیکی در طول روز دارد یا خیر؟

ستون آخر (cardio) را پزشک تعیین کرده است و نشان‌دهنده‌ی این است که آیا شخص، بیماریِ قلبی عروقی داشته یا خیر؟ یک الگوریتم یادگیری ماشین، با استفاده از این داده‌ها می‌تواند یاد بگیرد که اشخاص با ویژگی‌های مختلف (ستون‌های اول تا یازدهم)، آیا بیماری قلبی خواهد داشت یا نه. در واقع الگوریتم یادگیری ماشین می‌تواند با مشاهده‌ی این مجموعه، که به آن مجموعه‌ی آموزشی می‌گویند، علمِ پزشک را یاد بگیرد و اگر الگوریتم به دقت مناسبی برسد، دیگر نیازی به پزشک نیست و خود الگوریتم با دیدن نتایج آزمایشات (ستون‌های اول یا یازدهم) می‌تواند تشخیص دهد که آیا یک شخص بیماری قلبی عروقی دارد یا خیر. در واقع الگوریتم با دیدن یازده ستون اول، می‌توانید ستون آخر (cardio) را پیش‌بینی کند و این کار با استفاده از مجموعه‌ی داده‌ی بالا انجام می‌شود.

اگر مدلِ CRISP را در داده‌کاوی دیده باشید، می‌دانید که یکی از اولین اقدامات برای انجام عملیات داده‌کاوی، درک و اکتشاف در داده‌هاست. پس ما برای فعالیت‌های بعدی، بایستی ابتدا داده‌ها را کشف و شناسایی کنیم. در مثال بالا ما تعدادی ستون داریم که هر کدام حاوی اطلاعاتی از اشخاص است. برای اینکه بتوانیم کل این داده‌ها را کشف کنیم، بایستی ابتدا تک تک ستون‌ها (ویژگی‌ها) را شناسایی کنیم. اما چگونه؟ برای مثال آیا می‌شود تمام داده‌ها در ستون age را در حافظه‌ی ذهن خودمان بسپاریم؟ قطعا خیر.

برای همین بایستی اطلاعات آماری هر کدام از ستون‌ها را به دست بیاوریم. با استفاده از اطلاعات آماری هر ستون (ویژگی) می‌توانیم آن ستون را خلاصه کرده و تحلیل کنیم. برای مثال، فرض کنید با استفاده از دروس قبلیِ همین دوره، ستونِ age (سن) را از داده‌های مجموعه‌ی داده‌ی بالا به صورت زیر خلاصه‌سازی کرده‌ایم:

مشاهده می‌کنید که از بین تمامی اشخاصی که در جدول اول قسمتی از آن‌ها را نشان دادیم، میانگین سن برابر ۱۸۲۳۰ شده است. انحراف استاندارد برای age برابر ۲۱۰۰ شده و داده‌ها چولگی (skewness) به سمت راست (مثبت) داشته‌اند. مشاهده می‌کنید که به این ترتیب با همین چند عدد ساده، متوجه می‌شویم که افرادِ حاضر در این مجموعه‌ی داده حدوداً ۵۰ ساله هستند (۱۸۲۳۰) و بیشتر به سمت سن‌های بالا پراکنده شده‌اند (چولگی مثبت). پس این مجموعه‌ی داده و مدلِ یادگیریِ ماشینی که روی آن ساخته می‌شود، احتمالاً نتواند برای افراد جوان کاربرد داشته باشد.

مشاهده می‌کنید که با همین چند آمار ساده، توانستیم یکی از ستون‌ها (ویژگی‌ها) که همان age بود را کمی بیشتر درک کنیم. در واقع اکتشاف در داده‌ها انجام دادیم. اگر همین‌کار را برای ستون‌های دیگر هم انجام دهیم، خواهیم توانست این مجموعه‌ی داده را برای خود خلاصه‌سازی کرده و بعد از آن تحلیل‌های مناسب را بر روی داده‌ها انجام دهیم. قطعاً با استفاده از معیارهای آماریِ پیچیده‌تر می‌توانیم هر کدام از ستون‌ها را بیشتر کشف کرده و تحلیل‌های پیچیده‌تری ارائه نماییم.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:
منابع این بحث و اطلاعات بیشتر

» مجموعه‌ی داده از وب‌سایت kaggle

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

3 دیدگاه دربارهٔ «چگونه با EDA در داده‌ها اکتشاف کنیم؟»

  1. سلم مهندس در درس EDA قسمت اخر يعني درس اخر از همين بخش خلاصه سازي جطوري صورت گرفته ميشه توضيح بدين خيلي مختصر گفتين من متوجه نشدم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *