1
我有一个很大的数据集,我想根据一些预定义的概率在开始时将其划分为训练,验证和测试集(例如,有0.8个概率,一个元组用于训练,0.1验证和0.1进行测试。)Postgresql - 添加2个随机列
我虽然在添加2个布尔列,培训和验证。两者都依赖于一个随机数。如果现在这个随机数字低于0.8,则该元组用于训练,如果它大于0.9则用于测试。否则,这两列都是错误的,因此它用于验证。
以下查询存在问题,即所有元组都使用相同的随机ID,这意味着根据train/validate/test,所有元组都具有相同的值。
update data set
test = (sub.rand >= 0.9),
train = (sub.rand <= 0.8) from (select random() rand) sub;
我想尽量做到在一个查询,因为数据集可能非常大,我认为,一个查询会分裂它的时候成多个的速度比。 (但是,赞赏这个问题的任何解决方案)。
感谢您的帮助。