将配置单元表拆分为测试集和训练集(将使用它进行机器学习)最有效的方法是什么?我想随机抽取x%来组成测试集,用另一个(100-x%)来训练。我已经研究过如何使用分区,以及如何使用行散列并从中获得一个随机数(我可以用它来决定放在哪个集合中),但我不确定最好的、最惯用的方法是什么。
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;
使用行哈希也可以。不过,我会厌倦在任何实际数据列上使用哈希或分区;它可能会使你的抽样有偏差。
1条答案
按热度按时间qkf9rpyu1#
这里可能不止一种剥猫皮的方法,但我想到的是多表插入并使用rand()进行拆分:
使用行哈希也可以。不过,我会厌倦在任何实际数据列上使用哈希或分区;它可能会使你的抽样有偏差。