بعضی وقتا وقتی دیتا ست به دست ما میرسه مشکلات زیادی داره که یکی از شایع ترین اونها داده های مجهول است که خوشبختانه به راحتی میتونیم این مشکل را برطرف کنیم .

میخواهیم در این مطلب این روش ها را باهم مرور کنیم و کد هایش را در پایتون و آر ببینیم که امید وارم مفید باشد.  

1.اولین روشی که دوست دارم بهش بپردازم استفاره از میانگین ستون است لطفا به دیتا ست کوچک زیر توجه کنید

جدولی که در مقابل میبینیم دیتایی از دانشجویان یک کلاس است که به ما گزارش کرده اند اما یکی از دانش آموزان این گزارش را اعلام نکرده است , حال باید با این دیتا چه کنیم ؟

یکی از رایج ترین راه ها , استفاده از میانگین ستون موجود است که در این حالت حدوداً 24 است ؛ اما وقتی چنین موضوعی بیان میشه عموماً ایرادی گرفته میشود که وجود چنین عددی تفاوت زیادی با حذف آن ندارد که البته درست است اما فقط در این دیتاست کوچک که صفت دیگری برای موجودیت نام وجود ندارد اگر صفت دیگری مثلاً معدل وجود داشت حذف صفت احمد به خاطر عدم وجود سن باعث ازبین رفتن دیتای معدل این موجودیت میشد که اتفاق خوبی نیست .

اما موضوع مهم دیگری  وجود دارد که بیان آن در اینجا لازم  است و آن وجود داده ی پرت است , فکر کنید داده ی دیگری به این دیتا ست اضافه کنیم , محمد سنی برابر 75 را به این مجموعه اضافه می کنیم حال در این حالت میانگین حدوداً برابر 37 میشود که قاعدتاً عددی قابل اعتماد نیست در این حالت چه بکنیم ؟ خوب جواب عمومی به این سوال جواب خوبی است حذف این داده وسپس میانگین گرفتن که البته روش های مختلف میانگین گرفتن را در پست های بعدی صحبت خواهیم کرد.

2.استفاده از میانه که روشی است که در حالات خاصی خروجی هایی عالی به ما میدهد به این صورت که عدد مجهول را با مقدار میانه جایگزین میکنیم .

3.استفاده از مد است که  بازهم در حالات خیلی خاص و کیس های کمی استفاده میشود به این صورت که عدد مجهول را با عدد مقدار میانه جایگزین میکنیم .

4.روشی دیگری که این قسمت میخواهم بررسی کنم انتقال مرحله ی پیش پردازش به فرایند یادگیری ماشین است که خروجی های خوبی به ما میدهد . در این روش ما یادگیری را روی داده هایی که هیچ مقدار مجهولی ندارند انجام میدهیم و سپس مقدار مجهول را پیش بینی میکنیم .

حال میخواهیم نمونه کد هایی را برای روش اول در پایتون و آر ببینیم :

ابتدا با پایتون شروع میکنیم ابتدا باید کتابخانه مورد نظر را به این روش وارد کنیم

from sklearn.preprocessing import Imputer

سپس آبجکتی را ایجاد میکنیم و در این آبجکت ویژگی های عملیات را بیان میکنیم مثلاً روشی که میخواهیم انتخاب میکنیم

imputer= Imputer(missing_value=NaN , strategy='mean')

imputer =imputer.fit('data_name')

imputer=imputer.transform('data_name')

حال این فرایند را در آر انجام میدهیم:

data_name = ifelse(is.na(dara_name), ave(data_name, FUN = function(x) mean(x , rm.na=TRUE)), data_name)

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