机器学习001—生成训练集和测试集

将数据分成训练集和测试集:

  • 传统处理方法,利用ranperm生成随机的编号,取前面百分比的数据作为训练集,余下的作为测试集。
    代码如下:
num_points = size(X,2);
split_point = round(num_points*0.7);
seq = randperm(num_points);
X_train = X(:,seq(1:split_point));
Y_train = Y(seq(1:split_point));
X_test = X(:,seq(split_point+1:end));
Y_test = Y(seq(split_point+1:end));
  • 利用Matlab自带函数cvpartition( cross-validation partition)
    优点:
  • 可以按照需求生成分层抽样,还是非分层抽样,这样可以得到更准确的预测。
  • 可以生成单次数据集,还是多次数据集。即k-fold test,这对于算法的准确性评估是非常重要的。
    生成单次测试数据:
c = cvpartition(n,'HoldOut',p) % P:测试集占比

生成k-fold测试集

c = cvpartition(n,'KFold',k) 

关于测试集和训练集的概念,此篇博文讲的很清楚:
https://blog.csdn.net/TOMOCAT/article/details/81589617

猜你喜欢

转载自blog.csdn.net/huangzhywin/article/details/89260419