دادهی کثیف: خالی، تکراری، پرت
جواب کوتاه
دادهی واقعی تقریبا همیشه کثیفه، مثل فهرست خریدی که یه قلمش مقدار نداره، نونش دو بار نوشته شده و جلوی گوجه نوشته «۲۰۰ کیلو». آدم میفهمه، مدل نه. پیش از آموزش، چهار جور کثیفی رو پاک میکنیم: خونهی خالی رو یا با ردیفش کنار میذاریم یا پر میکنیم، مثلا با میانگین؛ ردیف تکراری رو پاک میکنیم؛ عدد عجیب رو میسنجیم که اشتباهه یا واقعی؛ و چیزی که چند جور نوشته شده رو یکی میکنیم. هر کاری روی دادهی آموزش کردیم، عین همونو روی دادهی تازه هم میکنیم.
فهرست خرید
فهرست خریدی که روی یخچال چسبوندهن رو ببینید. سه تا ایراد داره؛ شما زود پیداشون میکنید.
جلوی شیر چیزی ننوشتن. نون دو بار نوشته شده. و جلوی گوجه نوشته «۲۰۰ کیلو». شما میفهمید منظور دو کیلو بوده و یه صفر اضافه اومده. ولی مدل یادگیری ماشین نمیفهمه؛ هر چی بنویسید رو باور میکنه.
به پیدا کردن و درست کردن این ایرادها میگن پاکسازی داده. کار جذابی نیست، ولی خیلی از وقت یه پروژهی واقعی همینجا میره؛ چون مدل خوب با دادهی کثیف ساخته نمیشه.
خونهی خالی
خیلی وقتها یه خونه از جدول خالیه. مثلا سن یکی از خونهها رو ننوشتن. دو تا راه داریم:
- کنار گذاشتن. کل اون ردیف رو حذف میکنیم. سادهست، ولی یه خطر داره: اگه خونههای خالی بیشتر مال یه جور خاص باشن، مثلا خونههای قدیمی که سنشون معلوم نیست، با حذفشون داده یهطرفه میشه.
- پر کردن. یه عدد جانشین میذاریم؛ مثلا میانگین همون ستون. توی مثال، میانگین ۵ و ۲ میشه ۳٫۵. اینجوری ردیف از دست نمیره، ولی عددش حدسیه.
کدوم بهتره؟ بستگی داره چند تا خالیه و چرا خالیه. گاهی خود «خالی بودن» هم یه نشونهست و ارزش داره یه ستون جدا براش بذاریم: «سنش معلوم بود یا نه».
ردیف تکراری
نون دو بار نوشته شده؛ ممکنه دو برابر بخرید. توی داده هم یه ردیف تکراری دو تا اشکال داره:
- مدل خیال میکنه اون نمونه دو برابر رایجتره و بیشتر بهش وزن میده.
- اگه یکیش بره توی آموزش و یکیش توی آزمون، مدل سوال آزمون رو از قبل دیده؛ همون لو رفتن سوال کنکور. درس آموزش و آزمون.
پس تکراریها رو پیش از جدا کردن داده پیدا و پاک میکنیم. حواستون باشه گاهی دو ردیف شبیه، واقعا دو تا چیز جدان؛ مثلا دو نفر با یه اسم.
عدد عجیب
به عددی که خیلی با بقیه فرق داره، میگن دادهی پرت:
دادهی پرت دو جور میتونه باشه: یا اشتباهه، مثل یه صفر اضافه؛ یا واقعیه، مثلا یه رستوران واقعا ۲۰۰ کیلو گوجه خریده. اگه اشتباهه، درستش میکنیم یا کنارش میذاریم. اگه واقعیه، نگهش میداریم؛ چون یه چیز تازه دربارهی دنیا میگه.
پس پرتها رو کورکورانه پاک نکنید؛ اول بپرسید از کجا اومده. گاهی هم کار اصلی مدل همینه: پیدا کردن چیزهای عجیب، مثل خرید مشکوک با کارت. تشخیص ناهنجاری.
یه چیز، چند جور
یه نفر نوشته «تهران»، یکی «تهرون»، یکی هم با حروف انگلیسی:
برای ما هر سه یکیان؛ برای مدل سه تا شهر جدا. این ناجوریها معمولا از اشتباه تایپ، یا از اینکه هر جا یه جور مینویسه، میان. همینطور واحدها: یه جا متر، یه جا فوت؛ یه جا تومن، یه جا ریال. پیش از آموزش همه رو یه شکل میکنیم.
کِی و چطور
- اول نگاه کنید. پیش از هر کاری، چند ده تا ردیف رو با چشم ببینید و بشمرید هر ستون چند تا خالی داره.
- هر کاری کردید، بنویسید. «خالیهای سن رو با میانگین پر کردم».
- عین همون کار رو روی دادهی تازه هم بکنید. اگه موقع آموزش خالیها رو با میانگین پر کردید، موقع استفاده هم باید با همون میانگین پر بشه؛ وگرنه مدل چیزی میبینه که بهش عادت نداره.
داده تمیز شد. یه کار دیگه هم مونده: بعضی ستونها عددهای خیلی بزرگ دارن، بعضیها خیلی کوچیک. درس بعد: نرمالسازی و هممقیاس کردن.
جمعبندی. آنچه از این درس با خودتان میبرید.
- خونهی خالی: کنار بذار یا پر کن.
- ردیف تکراری: پاک کن.
- عدد عجیب: بسنج، بعد تصمیم بگیر.
- چند جور نوشتن: یکی کن.
- همون پاکسازی برای دادهی تازه.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.