bba*_*ran 3 python machine-learning scikit-learn
有文章说,在只有训练集和测试集的情况下,首先需要使用fit_transform()对训练集进行缩放,然后对测试集只使用transform(),以防止数据泄露。
就我而言,我也有验证集。
我认为下面这些代码之一可以使用,但我不能完全依赖它们。任何形式的帮助将不胜感激,谢谢!
1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size = 2/7)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_val = scaler.transform(X_val)
X_test = scaler.transform(X_test)
Run Code Online (Sandbox Code Playgroud)
2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size = 2/7)
X_test = scaler.transform(X_test)
Run Code Online (Sandbox Code Playgroud)
小智 5
通常,您会希望使用选项 1 代码。使用拟合然后使用训练数据进行转换的原因是 a) 拟合将计算训练集的均值、变量等,然后尝试将模型拟合到数据 b) 后哪个变换将根据拟合模型转换数据。
如果您再次将 fit 与测试集一起使用,这将为您的模型增加偏差。
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |