机器学习算法中如何确定哪些数据作为训练样本

最近参加了一个面试,面试官问了一个问题:如果我有上千万条数据,那我怎样确定将这些数据中的哪些数据作为训练样本集?
烦请各位讲一讲,我当时没答上来,就随便说了一个特征最明显的数据。

阅读 5.6k
4 个回答

难道不是随机抽样一部分作为训练数据?比如随机抽样70%做训练,10%做验证,20%做测试。

如果按照某个特征最明显来选择训练数据,岂不是违背了训练数据和测试数据独立同分布的假设?

在训练样本的时候
可以将N个样本随机划分成K层
在MATLAB中可以使用crossvalind来实现N个样本分成K份

%% 样本划分
K = 10;
N = size(samples,1);    % samples为样本
indices = crossvalind('Kfold',N,k);    

在训练样本的时候,可以按照indices来采样

for i = 1:K
     test_example = (indices == i);  
    traing_example = ~test_example;     
    experiment_test = samples(test_example,:);  
    test_label = experiment_test(:,1);  
    exper_test = experiment_test(:,2:end);
    
    %%进行样本训练

end
新手上路,请多包涵

交叉验证,随机分成K份,选一份测试,其他的训练。

随机选2/3

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题