روش های آماده سازی مجموعه دادگان

آماده‌سازی مجموعه دادگان (Data Preparation) مهم‌ترین گام در هر پروژه یادگیری ماشین است – اغلب بیش از ۸۰٪ زمان یک دیتا ساینتیست صرف این مرحله می‌شود. روش‌های گوناگونی برای آماده‌سازی داده وجود دارد که بسته به نوع داده (عددی، متنی، تصویری) و الگوریتم انتخابی متفاوت است. مهم‌ترین این روش‌ها عبارتند از:

  • پاکسازی داده (Data Cleaning): حذف یا جایگزینی مقادیر گمشده (با میانگین، میانه، یا روش‌های پیشرفته‌تر مانند KNN Imputer)، شناسایی و حذف داده‌های پرت (Outliers) با روش Z-Score یا IQR.
  • تبدیل داده (Data Transformation): نرمال‌سازی (Min-Max Scaling) برای بازه [0,1]، استانداردسازی (Standardization) با میانگین صفر و واریانس یک (مناسب برای الگوریتم‌هایی مثل SVM و PCA).
  • رمزگذاری متغیرهای دسته‌ای (Encoding): One-Hot Encoding، Label Encoding، Target Encoding.
  • مهندسی ویژگی (Feature Engineering): ساخت ویژگی‌های جدید از ویژگی‌های موجود (مثلاً نسبت، حاصلضرب، تاریخ‌ها).
  • کاهش ابعاد (Dimensionality Reduction): PCA، t-SNE، انتخاب ویژگی (Feature Selection).

در این دوره، هر کدام از این روش‌ها را با کدنویسی عملی در پایتون و با استفاده از کتابخانه‌های pandas، numpy و scikit-learn آموزش می‌بینید تا داده‌های خام را به تمیزترین و آماده‌ترین شکل ممکن برای مدل‌سازی تبدیل کنید.

معرفی چالش‌های موجود در آماده‌سازی مجموعه دادگان

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

  • داده‌های گمشده (Missing Values): بسیاری از دیتاست‌ها دارای سلول‌های خالی هستند. حذف ساده سطرها ممکن است اطلاعات ارزشمندی را از دست بدهد. روش‌های جایگزینی (Imputation) باید با دقت انتخاب شوند.
  • داده‌های پرت (Outliers): مقادیر بسیار دور از میانگین می‌توانند مدل‌های خطی را به شدت منحرف کنند. نیاز به شناسایی و تصمیم‌گیری (حذف، تبدیل، یا نگهداری) دارید.
  • داده‌های نامتوازن (Imbalanced Data): در مسائل طبقه‌بندی، گاهی یک کلاس بسیار کم‌تکرار است (مثل تشخیص تقلب – ۱٪ تقلب، ۹۹٪ عادی). این موضوع باعث می‌شود مدل همه چیز را کلاس اکثریت پیش‌بینی کند با دقت ظاهری بالا اما عملاً بی‌استفاده. راهکارهایی مثل Oversampling (SMOTE) و Undersampling وجود دارد.
  • نویز (Noise): خطاهای اندازه‌گیری، ورودی اشتباه انسانی، یا داده‌های مخدوش.
  • مقیاس‌های متفاوت (Different Scales): اگر یک ویژگی در بازه ۰-۱ و دیگری در بازه ۰-۱۰۰۰۰ باشد، الگوریتم‌های مبتنی بر فاصله (KNN، SVM) تحت تأثیر ویژگی با دامنه بزرگتر قرار می‌گیرند.
  • ویژگی‌های بی‌ربط (Irrelevant Features): وجود ویژگی‌هایی که هیچ ارتباطی با هدف ندارند، باعث افزایش ابعاد و کاهش عملکرد مدل می‌شود.

در این بخش، شما با هر چالش و راهکارهای عملی مقابله با آن آشنا می‌شوید. مثال‌های واقعی از دیتاست‌های کثیف کارخانه‌ها، فروشگاه‌ها و بیمارستان‌ها را تمیز خواهیم کرد.

معرفی روش K-Fold به همراه جداسازی بخش‌های مختلف مجموعه داده جهت آموزش و ارزیابی مدل هوشمند

روش K-Fold Cross Validation (اعتبارسنجی متقابل K لايه‌ای) یکی از مهم‌ترین تکنیک‌ها برای جداسازی مجموعه داده به بخش‌های آموزش و ارزیابی است تا مدل هوشمند شما دچار بیش‌برازش (Overfitting) نشود و عملکرد واقعی خود را نشان دهد. در این روش، کل داده به K بخش (لایه) تقریباً مساوی تقسیم می‌شود. سپس، K-1 بخش برای آموزش مدل و ۱ بخش باقیمانده برای تست استفاده می‌شود. این کار K بار تکرار می‌شود (هر بار یک لایه متفاوت به عنوان تست انتخاب می‌شود). در نهایت، میانگین دقت یا خطا در K مرحله به عنوان معیار نهایی گزارش می‌شود.
مراحل ساده K-Fold:

  1. داده را تصادفی به هم بزنید.
  2. به K تکه تقسیم کنید (معمولاً K=5 یا K=10).
  3. برای i از ۱ تا K: تکه iام را به عنوان تست و بقیه را به عنوان آموزش استفاده کنید.
  4. دقت را در این مرحله ذخیره کنید.۵) میانگین دقت‌های K مرحله را محاسبه کنید.

جداسازی ساده (Train/Test Split) در مقابل K-Fold:

در روش ساده (مثلاً ۸۰٪ آموزش، ۲۰٪ تست)، ممکن است خوش‌شانسی یا بدشانسی در چینش داده‌ها تأثیر زیادی روی نتیجه بگذارد. K-Fold با استفاده از تمام داده به عنوان تست (در ادوار مختلف) تخمین بسیار مطمئن‌تری از عملکرد مدل ارائه می‌دهد.

اشتراک گذاشتن این مطلب با دیگران