سؤال: سلام آقای دکتر وقتتون بخیر باشه. آقای دکتر در جلسه ی 23 قسمت 3 دقیقه ی 11 ما اومدیم داده ها رو استاندارد کردیم ولی با روشی که تا الان استاندارد می کردیم متفاوته ؟ این روش چه تفاوتی با اون روش StandardScaler داره که بعدش فیت می کردیم و بعد transform. تو این ویدیو از یک روش دیگه استاندارد کردیم x_scaled = preprocessing.scale(x)؟ اینا با هم تفاوتی دارن؟
پاسخ: سلام سارا جان.
scale
یک دیتاست رو برای ما استاندارد میکنه ولی
StandardScaler
ویژگیهای موجود در یک دیتاست رو. میتونی وارد بخش مستندسازی این دو بشی و توضیحات دقیق رو اونجا ببینی
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.scale.html
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html
انتهای لینک اول یک اخطاری داره که خیلی مهمه. بهش خیلی دقت کن. میگه در حالت کلی اگر بلد نیستی تو مدلهات نباید از این تکنیک استفاده کنی چون باعث درز اطلاعات میشه
Warning
Risk of data leak
Do not use scale
unless you know what you are doing. A common mistake is to apply it to the entire data before splitting into training and test sets. This will bias the model evaluation because information would have leaked from the test set to the training set. In general, we recommend using StandardScaler
within a Pipeline in order to prevent most risks of data leaking: pipe = make_pipeline(StandardScaler(), LogisticRegression())
.