gpt4 book ai didi

python - 何时使用 scikit 学习的 train_test_split

转载 作者:太空狗 更新时间:2023-10-30 01:21:37 24 4
gpt4 key购买 nike

我有一个包含 19 个特征的数据集。现在我需要进行缺失值插补,然后使用 scikit 的 OneHOtEncoder 对分类变量进行编码,然后运行机器学习算法。

我的问题是,我应该在使用 scikit 的 train_test_split 方法执行上述所有操作之前拆分此数据集,还是应该先拆分为训练和测试,然后对每组数据进行缺失值和编码。

我担心的是,如果我先拆分然后对结果两组进行缺失值和其他编码,那么在对测试集中的变量进行编码时,测试集不应该缺少该变量的某些值,这可能会导致更少 否.假人。就像原始数据有 3 个分类水平,我知道我们正在进行随机抽样,但测试集是否有可能没有为该变量提供所有三个水平,从而导致只有两个虚拟人而不是三个虚拟人?

什么是正确的方法。先拆分然后在训练和测试上执行上述所有操作,还是先对整个数据集执行缺失值和编码然后拆分?

最佳答案

我会先将数据分成训练集和测试集。您的缺失值归因策略应适用于训练数据,并应用于训练和测试数据。

例如,如果您打算用出现频率最高的值或中位数替换缺失值。必须在没有看到测试集的情况下获得这些知识(中位数,最频繁的值)。否则,您的缺失值插补将有偏差。如果在训练数据中看不到某些特征值,那么您可以例如增加样本总数或采用对异常值具有鲁棒性的缺失值插补策略。

Here是一个如何使用 scikit-learn 管道和 imputer 执行缺失值插补的示例:

关于python - 何时使用 scikit 学习的 train_test_split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041684/

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