اینکه قبل از train_test_split دیتا رو scale کردیم کامل باعث نشت دیتا نمیشه؟ یعنی لازم نبود اول تقسیم بندی شه و بعد فقط روی دیتاست train خود fit_transform انجام میشد؟
سلام وقت شما هم بخیر
سوال خیلی خوبی پرسیدی چون یکی از خطاهای رایج در پیشپردازش داده همین موضوع Data Leakage (نشت داده) هست. بله، اگر قبل از train_test_split کل دیتا رو scale کنید، باعث نشت داده میشه، چون مقیاسساز از اطلاعات تست هم میانگین/واریانس میگیره.
روش درست:
اول تقسیم (train_test_split)
روی train → fit_transform
روی test → transform فقط با همون پارامترهای train
اینجوری دیگه نشت اتفاق نمیفته
سجاد علی بخشی۱۲ شهریور ۱۴۰۴، ۱۹:۳۴
بله کاملا درسته. ولی در ویدئوی شبکهی عصبی غلیظ (Dense) با تنسورفلو (Tensorflow) (مثال پیشبینی بیماری قلبی) - قسمت اول٬ کدی که توضیح داده میشه قبل از تقسیم بندی داده عملیات scaling انجام میشه که اشتباهه و بهتره بهش اشاره بشه.