مقدمه ای بر تبدیل داده ها

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

دلایل تغییر داده ها

ما ویژگی ها را عمدتاً به دلایل زیر تغییر می دهیم:

  1. تغییرات اجباری برای سازگاری داده ها مثالها عبارتند از:

    • تبدیل ویژگی های غیر عددی به عددی. شما نمی توانید ضرب ماتریس را روی یک رشته انجام دهید، بنابراین باید رشته را به مقداری نمایش عددی تبدیل کنیم.
    • تغییر اندازه ورودی ها به اندازه ثابت مدل‌های خطی و شبکه‌های عصبی پیش‌خور تعداد گره‌های ورودی ثابتی دارند، بنابراین داده‌های ورودی شما باید همیشه اندازه یکسانی داشته باشند. به عنوان مثال، مدل‌های تصویر باید تصاویر موجود در مجموعه داده خود را به اندازه ثابت تغییر شکل دهند.
  2. تغییرات کیفیت اختیاری که ممکن است به عملکرد بهتر مدل کمک کند. مثالها عبارتند از:

    • نشانه گذاری یا حروف کوچک ویژگی های متن.
    • ویژگی‌های عددی عادی شده (بیشتر مدل‌ها بعد از آن بهتر عمل می‌کنند).
    • اجازه دادن به مدل‌های خطی برای معرفی غیرخطی‌ها به فضای ویژگی.

به طور دقیق، تغییر کیفیت ضروری نیست - مدل شما همچنان می تواند بدون آنها اجرا شود. اما استفاده از این تکنیک ها ممکن است مدل را قادر به ارائه نتایج بهتر کند.

کجا تبدیل کنیم؟

شما می توانید تبدیل ها را در حین تولید داده ها روی دیسک یا در داخل مدل اعمال کنید.

تغییر شکل قبل از آموزش

در این رویکرد، قبل از آموزش، تبدیل را انجام می دهیم.این کد جدا از مدل یادگیری ماشین شما زندگی می کند.

طرفداران

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

منفی

  • دگرگونی ها باید در زمان پیش بینی بازتولید شوند. مراقب کج بودن باشید!
  • هر تغییر تبدیلی نیاز به اجرای مجدد تولید داده دارد که منجر به تکرار کندتر می شود.

Skew برای مواردی که شامل سرویس آنلاین است خطرناک تر است. در سرویس آفلاین، ممکن است بتوانید از کدی که داده‌های آموزشی شما را تولید می‌کند، دوباره استفاده کنید. در سرویس آنلاین، کدی که مجموعه داده شما را ایجاد می کند و کدی که برای مدیریت ترافیک زنده استفاده می شود، تقریباً لزوماً متفاوت هستند، که باعث می شود به راحتی معرفی کنید.

دگرگونی درون مدل

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

طرفداران

  • تکرار آسان اگر تبدیل ها را تغییر دهید، همچنان می توانید از همان فایل های داده استفاده کنید.
  • شما در زمان تمرین و پیش‌بینی تغییرات مشابهی را تضمین می‌کنید.

منفی

  • تبدیل های گران قیمت می توانند تاخیر مدل را افزایش دهند.
  • دگرگونی ها در هر دسته است.

ملاحظات زیادی برای تبدیل در هر دسته وجود دارد. فرض کنید می خواهید یک ویژگی را با مقدار متوسط ​​آن نرمال کنید - یعنی می خواهید مقادیر ویژگی را به میانگین 0 و انحراف استاندارد 1 تغییر دهید. هنگام تبدیل در داخل مدل، این نرمال سازی تنها به یک دسته از داده ها دسترسی خواهد داشت، نه به مجموعه داده کامل. شما می توانید با مقدار متوسط ​​در یک دسته نرمال سازی کنید (در صورتی که دسته ها بسیار متنوع باشند خطرناک است)، یا میانگین را از قبل محاسبه کرده و آن را به عنوان یک ثابت در مدل ثابت کنید. نرمال سازی را در بخش بعدی بررسی خواهیم کرد.

داده های خود را کاوش، پاکسازی و تجسم کنید

قبل از انجام هر گونه تغییر روی داده های خود، کاوش و پاکسازی کنید. ممکن است هنگام جمع آوری و ساخت مجموعه داده خود، برخی از وظایف زیر را انجام داده باشید:

  • چندین ردیف داده را بررسی کنید.
  • آمار اولیه را بررسی کنید
  • تصحیح ورودی های عددی از دست رفته

داده های خود را به طور مکرر تجسم کنید. نمودارها می توانند به یافتن ناهنجاری ها یا الگوهایی که از آمار عددی مشخص نیستند کمک کنند. بنابراین، قبل از اینکه خیلی وارد تحلیل شوید، به داده های خود به صورت گرافیکی، چه از طریق نمودارهای پراکنده یا هیستوگرام، نگاه کنید. نمودارها را نه تنها در ابتدای خط لوله، بلکه در سراسر تبدیل مشاهده کنید. تجسم به شما کمک می کند تا به طور مداوم فرضیات خود را بررسی کنید و تأثیرات هر تغییر عمده را ببینید.