如何使用一个热编码数据训练测试拆分?
Posted
技术标签:
【中文标题】如何使用一个热编码数据训练测试拆分?【英文标题】:How toTrain_test split with OneHot encoded Data? 【发布时间】:2020-11-12 08:14:32 【问题描述】:我正在处理不平衡的数据,并尝试通过使用分层数据来改进我的模型。问题是我不确定如何做到这一点。到目前为止,我尝试过的一切都没有改变。
应该是这样的:
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size = 0.2, shuffle = True, random_state = 0, stratify = y_train)
但是我是否传递“分层”参数并不重要。我的数据是 OneHot 编码的,y_train 看起来像这样:
[[1. 0.] [1. 0.] [0. 1.] ... [0. 1.] [0. 1.] [1. 0.]]
据我了解,分层需要我的两个班级,但我不确定如何做到这一点。
编辑:我是否设置 stratify = y_train 并不重要,因为 y_train 的尺寸不会改变。
谢谢!
【问题讨论】:
【参考方案1】:stratify
改变的不是维度。这是班级的比例。例如,如果 1 的原始数据比例为 20%,0 的比例为 80%,那么在拆分后的数据中,比例应该相同。
希望对你有帮助。
【讨论】:
谢谢,我知道,但我的问题是我知道我的数据不平衡,但分层没有做任何事情。训练/测试数据保持不变。 澄清我的问题是:如果我设置“stratify = y_train”或将其省略,因为我的数据仍然存在,这并没有什么不同:“训练 191549 个样本,验证 47888 个样本”即使训练样本应该减少。我只是不明白为什么它不起作用。以上是关于如何使用一个热编码数据训练测试拆分?的主要内容,如果未能解决你的问题,请参考以下文章
scikit-learn:如果经过一次热编码后它的特征少于训练/测试集,如何预测新数据