由于四舍五入,序列测试分割产生意外的样本大小

2024-10-03 15:22:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用sklearn构建一个基于逻辑回归的机器学习问题。我基本上是在模拟每天运行模型,以便为第二天做出决策

为了让train_test_split获得“测试”日可用的选项集,我只需将拆分设置为:

splt = 1/observ_days

观测集的大小是观测天数*可用选项,根据可用性略有变化,但在问题情况下为45。因此,总观测值=45*observ_天,测试集应为45

挑战在于train_test_split总是四舍五入,因此当您遇到常见的浮点数问题时,可能会产生意外的拆分。特别是在我的情况下,观察天数为744天。1/744 = 0.0013440860215053765. 此时的总数据量为33480。在普通数学中,33480*分割=45,就像它应该的那样。但是Python提供了45.00000000000001,所以train_test_split给了我46个测试观察值

这是一个问题,因为在我的例子中,第46次观察实际上是从另一天开始的。有没有办法迫使train_test_split四舍五入?或手动估算列车/测试集的准确尺寸


Tags: 模型test机器选项情况train逻辑sklearn
1条回答
网友
1楼 · 发布于 2024-10-03 15:22:01

如果选中scikit-learn documentation for train_test_split,您会注意到您可以将训练大小测试大小指定为浮动(作为要使用的整个数据集的比例)和int(作为要包括的特定数据点数)

在您的例子中,您可以指定test_size = 45始终为测试集获取45个数据点

相关问题 更多 >