将配置单元表拆分为测试集和训练集?

r3i60tvu  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(330)

将配置单元表拆分为测试集和训练集(将使用它进行机器学习)最有效的方法是什么?我想随机抽取x%来组成测试集,用另一个(100-x%)来训练。我已经研究过如何使用分区,以及如何使用行散列并从中获得一个随机数(我可以用它来决定放在哪个集合中),但我不确定最好的、最惯用的方法是什么。

qkf9rpyu

qkf9rpyu1#

这里可能不止一种剥猫皮的方法,但我想到的是多表插入并使用rand()进行拆分:

from (
 select *, (rand() * 100 <= x) as is_test_set from my_table
) t
insert overwrite directory '/test_set' select * where is_test_set = true
insert overwrite directory '/training_set' select * where is_test_set = false;

使用行哈希也可以。不过,我会厌倦在任何实际数据列上使用哈希或分区;它可能会使你的抽样有偏差。

相关问题