پیش پردازش داده ها در داده کاوی — به زبان ساده
شروع هر نوع کار و عملیاتی در مرحله اول، دارای یک سری مقدمات و پیشنیازها است. «دادهکاوی» (Data Mining) نیز از این قانون مستثنی نبوده و نیازمند آمادهسازی و پردازشهای مقدماتی است. در علم دادهکاوی، تمامی دادههایی که برای هدف مورد نظر استفاده خواهند شد، باید پیش از شروع پردازش با استفاده از روشهایی، آماده و تنظیم و یا به اصطلاح «پیشپردازش» (Preprocess) شوند. مرحله آمادهسازی دادهها قبل از پردازش را، پیشپردازش (Preprocessing) میگویند. پیشپردازش نقشی اساسی در روند پردازش دادهها و نتایج حاصل از آنها ایفا میکند. برای پیش پردازش داده ها مراحل و ابزارهای مختلفی وجود دارند. برخی از مهمترین مواردی که طی فرایند پیشپردازش دادهها باید به آنها پرداخته شود، در ادامه بیان شدهاند.
پیش پردازش داده ها: داده های ناموجود
در برخی موارد، ممکن است بعضی از ویژگیهای مربوط به یک یا چند نمونه، فاقد مقادیر معتبر باشند. این امر میتواند دلایل مختلفی داشته باشد، از جمله نویزی (Noise) بودن دادههای ثبت شده، عدم ثبت و یا نامعتبر بودن مقدار آن. این دادهها را دادههای ناموجود (Missing Data | Null Data | دادههای گمشده)، مینامند.
برای پردازش مجموعه دادههایی که دچار چالش داده ناموجود هستند، باید راهکاری برای تعیین مقادیر دادههای ناموجود یافت. روشهای گوناگونی برای مدیریت دادههای ناموجود وجود دارند که در ادامه به چند نمونه از آنها اشاره شده است.
حذف نمونه: در این روش، تمام نمونههایی (Sample) که دارای مقدار ویژگی ناموجود هستند، به کلی از مجموعه داده حذف شده و در روند پردازش مورد استفاده قرار نمیگیرند. این روش بیشتر در مواردی به کار میرود که تعداد نمونههای موجود، بسیار زیاد است و یا ویژگی جا افتاده، مربوط به برچسب دسته است. اما در حالت کلی، این روش به دلیل حذف دادههای موجود، روش مناسبی نبوده و زیاد مورد استفاده قرار نمیگیرد.
پر کردن دستی: در این روش، مقادیری که هنگام آمادهسازی مجموعه داده، جا افتاده و یا نادرست ثبت شدهاند به صورت دستی پر میشوند. این روش زمانی امکانپذیر است که منبع جمعآوری دادهها در دسترس باشد؛ در عین حال، به دلیل زمانگیر بودن این راهکار، در مواقعی که سایز مجموعه داده بزرگ است و یا تعداد دادههای مفقود زیاد هستند، مقرون به صرفه نبوده و عملا استفاده از این روش غیر ممکن است.
استفاده از یک مقدار ثابت: در این روش تمام مقادیر ناموجود در مجموعه داده، با یک مقدار ثابت و از پیش تعیین شده پر میشوند. این روش از دقت بالایی برخوردار نیست؛ به ویژه اگر تعداد دادههای ناموجود زیاد باشد، ممکن است این مقدار ثابت جاگذاری شده، اطلاعات معنادار اشتباهی را به دادهها اضافه کند که در روند پردازش تاثیرگذار باشد. مثلا اگر تعداد زیادی از دادههای مربوط به یک ویژگی (Feature)، در مجموعه داده ناموجود باشند، ثبت یک مقدار ثابت برای تمامی نمونههایی که مقدارشان موجود نیست، میتواند در روند یک پردازش، دستهبند را دچار اشتباه کند.
استفاده از مقدار میانگین ویژگی: در این روش برای هر ویژگی، مقدار میانگین، با استفاده از نمونههایی که مقادیرشان معلوم است محاسبه شده و برای جاگذاری مقادیر مربوط به آن ویژگی مورد استفاده قرار میگیرد.
استفاده از مقدار میانگین ویژگی به تفکیک دسته: این روش مشابه روش قبلی است، با این تفاوت که مقدار میانگین، برای نمونههای هر دسته، به صورت جداگانه محاسبه میشود. میانگینهای به دست آمده برای هر دسته، جهت پرکردن دادههای ناموجود نمونههای متعلق به همان دسته مورد استفاده قرار میگیرند. این روش در مقایسه با روش قبلی کارایی بیشتری دارد.
استفاده از محتملترین مقدار: اساس این روش فراوانی مقادیر موجود در هر ویژگی است. در این روش، فراوانی مقادیر ظاهر شده در هر ویژگی به دست میآیند و مقداری که بالاترین فراوانی را در بین مقادیر دارد به عنوان مقدار جایگزین انتخاب میشود. این مقدار منتخب، جایگزین دادههای مفقود در آن ویژگی میشود.
طراحی پیشبینی کننده: بهترین و دقیقترین روش برای پرکردن دادههای ناموجود در یک مجموعه داده، طراحی یک پیشبینی کننده است. در این روش یک پیشبینی کننده، متناسب با ماهیت دادهها انتخاب و طراحی میشود، تا مقادیر دادههای گمشده مربوط به یک ویژگی را بر اساس سایر ویژگیها تخمین بزند.
پیش پردازش داده ها: تحلیل دادههای پرت
در برخی موارد، ممکن است به دلایلی، مقادیری در مجموعه داده ظاهر شوند که تفاوت زیاد و غیر معمولی با سایر مقادیر موجود در مجموعه داشته باشند، این دادهها را دادههای پرت میگویند. در واقع منظور از دادههای پرت، دادهها یا نمونههایی هستند که با رفتار کلی، یا مدل مجموعه کل دادهها شباهت نداشته و از آن تبعیت نمیکنند.
به عنوان مثال، در مجموعه داده مربوط به قد افراد مونث، که بازه قدی آنها بین 150 تا 1۷5 سانتیمتر است، قد ۲۰۵ سانتیمتر، یک داده پرت محسوب میشود. آنالیز و مدیریت دادههای پرت یکی از مهمترین مراحل پیشپردازش دادهها محسوب میشود، زیرا این دادهها میتوانند عملکرد الگوریتمها و «دستهبندهای» (Classifier) مورد استفاده را دچار مشکل کنند. بنابراین بایستی تا حد ممکن، تاثیر دادههای پرت را کاهش داد. روشهای مختلفی برای شناسایی و مدیریت این دادهها وجود دارد که در ادامه به چند روش ساده اشاره شده است.
حذف: سادهترین روش مدیریت دادههای پرت، حذف آنها است. برای این منظور ابتدا لازم است دادههای پرت شناسایی شوند. روش متداولی که مورد استفاده قرار میگیرد، به این صورت است که ابتدا بازهای را که دادهها در آن قرار دارند مشخص میکنند، سپس تعداد معینی از دادههای بالا و پایین این بازه را به عنوان داده پرت در نظر گرفته و آنها را از مجموعه داده حذف میکنند.
جایگذاری با میانگین: یک روش دیگر که در مقایسه با روش قبلی دقت مناسبتری دارد، استفاده از مقدار میانگین دادهها است. در این روش، عمل مشخص کردن دادههای پرت به روشی که در بالا ذکر شد، بر اساس بازه دادهها مشخص میشود. اما تفاوتی که با روش قبلی دارد این است که به جای حذف دادههای پرت، مقدار میانگین مربوط به دادههای غیر پرت را به دست آورده و آن را جایگزین دادههای پرت میکند. با این کار تمامی دادهها در یک بازه مشخص و معقول قرار میگیرند. البته این روش، مشکل «سوگیری» (Bias) در دادهها را به دنبال دارد.
نرمالسازی دادهها
نرمالسازی دادهها از جمله مهمترین مراحل پیشپردازش در علم دادهکاوی است. در توضیح اهمیت نرمالسازی، تصور کنید بازه مربوط به مقادیر دو ویژگی، تفاوت عمدهای نسبت به یکدیگر داشته باشند؛ به عنوان مثال فرض کنید بازه مربوط به یکی از ویژگیها بازه [1 , 0] و بازه مربوط به ویژگی دیگری از همین مجموعه داده، [500 , 1] باشد، در چنین شرایطی واضح است که هنگام استفاده از معیارهایی که مبتنی بر فاصله هستند، ویژگی با بازه کوچکتر عملا تاثیر محسوسی در محاسبات نخواهد داشت.
با توجه به این توضیحات، برای دستیابی به نتایج دقیقتر، لازم است که بازه مربوط به ویژگیهای مختلف، به نحوی با یکدیگر یکسان و یا نزدیک شوند. برای این منظور از روشهای نرمالسازی استفاده میشود. روشهای مختلفی برای نرمالسازی وجود دارد که در مقالات و تحقیقات مورد استفاده قرار میگیرد. در ادامه به چند نمونه از متداولترین روشهای نرمالسازی اشاره شده است.
نرمالسازی مین-ماکس (Min-Max)
در این روش ساده، هر مجموعهای از دادهها به بازهای دلخواه، که کمترین و بیشترین مقدار آن از قبل مشخص است نگاشت میشود. در این روش میتوان هر بازه دلخواه را تنها با یک تبدیل ساده، به بازهای جدید نگاشت کرد. فرض کنید قرار است ویژگی A، از مجموعه داده که در بازه بین min_A تا max_A قرار دارد، به بازه جدید new_Min تا new_Max نگاشت شود. برای این منظور، هر مقدار اولیه مانند v در بازه اولیه، طبق رابطه زیر به مقدار جدید ’v در بازه جدید تبدیل خواهد شد:
نرمالسازی نمره زد (Z-Score)
یکی دیگر از پرکاربردترین و مهمترین روشهای نرمالسازی روش نمره زد (Z-Score) است. پایه این روش بر خلاف روش مین-ماکس، بر اساس میانگین و انحراف معیار دادهها است. ویژگی A را در نظر بگیرید، فرض کنید m، میانگین دادهها و σ نشانگر انحراف معیار آنها است. با این مفروضات، مقادیر جدید برای این مجموعه داده، بر اساس مقدار میانگین و انحراف معیار، با استفاده از رابطه زیر محاسبه میشوند:
شایان توجه است که فارغ از بازه اولیه مجموعه داده مورد بررسی، مقدار میانگین دادههای حاصل از نرمالسازی به روش Z-Score، همواره برابر با صفر و انحراف معیار آنها عدد یک خواهد بود.
مقیاس گذاری اعشاری (Decimal Scaling)
مقیاس گذاری اعشاری نوع دیگری از روشهای نرمالسازی است که در واقع منطق آن تغییر نقطه اعشار مقادیر موجود در مجموعه داده است. در این روش، نرمالسازی با استفاده از رابطه زیر انجام میشود:
که در آن، j برابر با کوچکترین مقداری است که شرط زیر را فراهم کند:
با اندکی دقت در روابط بالا، مشخص میشود که مقدار j، کاملا بستگی به کرانهای مربوط به بازه مجموعه داده اولیه دارد. به عنوان مثال، اگر بازه مربوط به مقادیر یک ویژگی از مجموعهدادهها، [97 , 986-] باشد، با توجه به این که بزرگترین مقدار قدرمطلق این بازه، 986 است، کوچکتری مقدار j که این عدد را به اعشار کمتر از یک ببرد، 3 است. بنابراین بر اساس رابطهای که در بالا ارائه شد، با تقسیم تمام مقادیر اولیه به 103، بازه دادههای جدید، [0/097 , 986/0-] خواهد بود.
روشهای ارائه شده در بالا، از مهمترین مراحل پیشپردازش دادهها هستند، که علاوه بر اینکه به عنوان مرحلهای مهم از مراحل دادهکاوی و به منظور افزایش دقت نتایج، مورد استفاده قرار میگیرند، هر یک به تنهایی به عنوان مبحثی مهم، مورد توجه پژوهشگران هستند.
این مطلب توسط نویسنده مهمان «مینا خوشرنگباف» نوشته شده است.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- مجموعه آموزشهای دادهکاوی یا Data Mining در متلب
- مجموعه آموزشهای آمار و احتمالات
- دادهکاوی (Data Mining) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- دادهکاوی (Data Mining) و مفاهیم کلیدی آن — راهنمای جامع و ساده
^^
سلام، ممنون از آموزش خوبتون
سلام وقت بخیر
آموزش بسیار عالی بود
تشکر از شما