gpt4 book ai didi

python - 缩放数据时,为什么训练数据集使用 'fit' 和 'transform' ,而测试数据集只使用 'transform' ?

转载 作者:太空狗 更新时间:2023-10-29 17:03:42 24 4
gpt4 key购买 nike

在缩放数据时,为什么训练数据集使用'fit'和'transform',而测试数据集只使用'transform'?

SAMPLE_COUNT = 5000
TEST_COUNT = 20000
seed(0)
sample = list()
test_sample = list()
for index, line in enumerate(open('covtype.data','rb')):
if index < SAMPLE_COUNT:
sample.append(line)
else:
r = randint(0,index)
if r < SAMPLE_COUNT:
sample[r] = line
else:
k = randint(0,index)
if k < TEST_COUNT:
if len(test_sample) < TEST_COUNT:
test_sample.append(line)
else:
test_sample[k] = line
from sklearn.preprocessing import StandardScaler
for n, line in enumerate(sample):
sample[n] = map(float, line.strip().split(','))
y = np.array(sample)[:,-1]
scaling = StandardScaler()

X = scaling.fit_transform(np.array(sample)[:,:-1]) ##here use fit and transform

for n,line in enumerate(test_sample):
test_sample[n] = map(float,line.strip().split(','))
yt = np.array(test_sample)[:,-1]

Xt = scaling.transform(np.array(test_sample)[:,:-1])##why here only use transform

如注解所说,为什么Xt只用transform而不用fit?

最佳答案

我们在训练数据上使用fit_transform(),这样我们就可以学习训练数据缩放的参数,同时我们缩放训练数据。我们只对测试数据使用 transform(),因为我们使用在训练数据上学习的缩放参数来缩放测试数据。

这是扩展的标准程序。你总是在火车上学习你的缩放参数,然后在测试中使用它们。这是一篇很好地解释它的文章:https://sebastianraschka.com/faq/docs/scale-training-test.html

关于python - 缩放数据时,为什么训练数据集使用 'fit' 和 'transform' ,而测试数据集只使用 'transform' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43675665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com