۲ دانشجوی سون‌لرن
انجام scale بعد از train test split
جامعه هوش مصنوعی ایجاد شده در ۰۶ شهریور ۱۴۰۴

سلام وقت بخیر

اینکه قبل از train_test_split دیتا رو scale کردیم کامل باعث نشت دیتا نمیشه؟ یعنی لازم نبود اول تقسیم بندی شه و بعد فقط روی دیتاست train خود fit_transform انجام میشد؟ 

سلام  وقت شما هم بخیر

سوال خیلی خوبی پرسیدی  چون یکی از خطاهای رایج در پیش‌پردازش داده همین موضوع Data Leakage (نشت داده) هست.
بله، اگر قبل از train_test_split کل دیتا رو scale کنید، باعث نشت داده میشه، چون مقیاس‌ساز از اطلاعات تست هم میانگین/واریانس می‌گیره.

روش درست:

  1. اول تقسیم (train_test_split)
  2. روی train → fit_transform
  3. روی test → transform فقط با همون پارامترهای train

اینجوری دیگه نشت اتفاق نمیفته

سجاد علی بخشی ۱۲ شهریور ۱۴۰۴، ۱۹:۳۴

بله کاملا درسته. ولی در ویدئوی شبکه‌ی عصبی غلیظ (Dense) با تنسورفلو (Tensorflow) (مثال پیش‌بینی بیماری قلبی) - قسمت اول٬ کدی که توضیح داده میشه قبل از تقسیم بندی داده عملیات scaling انجام میشه که اشتباهه و بهتره بهش اشاره بشه.

nasim ND ۱۳ شهریور ۱۴۰۴، ۱۷:۲۱