gpt4 book ai didi

python - 用测试集中的中位数填充 Nan 值

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:17 26 4
gpt4 key购买 nike

我正在准备数据,以便让我的数据适合机器学习算法。目前,我正在处理/处理缺失值。在下面显示的这段代码中,我没有遇到错误,而是感到困惑。在这两个代码块中,我应用了相同的东西,但用于两个不同的数据集:train_x_e => train settest_x => test set。在第一个代码块中,我填充了 train_x_e 中的 nan 值,这完全没问题。但是,在 test_x 中,我不确定是否应该使用 train_x_etest_x 填充 nan 值,如第二个代码所示。如果有人能向我解释这一点,我将不胜感激!

检查键的值是否大于 0,以便我们可以将其存储在 nan_columns 中

火车集

 nan_columns = []
for keys, values in null_vals.items():
if values > 0:
nan_columns.append(keys)
train_x_b = train_x_e.fillna(train_x_e.median())
print(nan_columns)

测试集的相同过程

测试集

  nan_columns = []
for keys, values in null_vals.items():
if values > 0:
nan_columns.append(keys)
test_x_b = test_x.fillna(test_x.median())
print(nan_columns)

最佳答案

你这样做的方式是正确的。您应该始终将训练数据和测试数据分开。您在传入数据上测试您的模型,因此只能使用从中得出的信息。

在测试时使用训练数据的中值并不像在训练中使用测试数据那么糟糕,但请注意,这两个数据集准备数据的过程是不同的。在第一个中,使用相同数据集的中值,在第二个中使用与测试数据集无关的值。

此外,在使用训练集中位数时,您必须将其与模型一起保存在某个地方。如果你有 1000 个特征怎么办?您必须保存 1000 个值。如果您想要一个迭代模型,您是否也更新这些值呢?

用另一个数据集弄脏一个数据集的现象称为 data leakage .

关于python - 用测试集中的中位数填充 Nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378908/

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