我在预处理数据时遇到了一个特殊的情况。
假设我有一个 dataset A
。我将数据集拆分为A_train
和A_test
。我fit
使用A_train
任何给定的缩放器(sci-kit learn)并transform
A_test
使用scaler
. 现在训练神经网络A_train
并验证A_test
效果很好。没有过拟合,性能很好。
假设我有B
与 in 具有相同特征的数据集A
,但特征值的范围不同。波士顿和巴黎住房数据集A
的一个简单示例。B
为了测试上述训练模型在 上的性能B
,我们transform
B
根据 的缩放属性A_train
然后进行验证。这通常会降低性能,因为该模型从未显示来自B
.
奇怪的是,如果我B
直接拟合和变换而不是使用 的缩放属性A_train
,性能会好很多。通常,如果我在A_test
. 在这种情况下,它似乎有效,尽管它不正确。
由于我主要研究气候数据集,因此对每个数据集进行培训是不可行的。因此,我想知道使用相同特征扩展此类不同数据集以获得更好性能的最佳方法。
请有任何想法。
PS:我知道用更多数据训练我的模型可以提高性能,但我对正确的缩放方式更感兴趣。我尝试从数据集中删除异常值并应用QuantileTransformer
它,它提高了性能但可能会更好。