依据占比将样本数据划分为训练数据与测试数据(Matlab)

做机器学习算法建模时,常常需要将样本数据按照指定比率划分为训练数据与测试数据。本文基于Matlab实现一种常见的算法,其详细代码如下:

function [trainData,testData] = SegmentData(data,ratio)
% SEGMENTDATA 根据测试数据占比将样本数据划分为训练数据与测试数据
% 输入参数:
%   data:样本数据(样本数Q×特征数R)
%   ratio:测试数据所占比率
% 输出参数:
%   trainData:训练数据
%   testData:测试数据
% 调用说明:
%   [trainData,testData] = SegmentData(data,ratio)

sampleNumber=max(size(data));
testNumber=floor(sampleNumber*ratio);
randIndex=rand(1,sampleNumber);
[~,index]=sort(randIndex);
testData=data(index(1:testNumber),:)';%R'*Q
trainData=data(index(testNumber+1:end),:)';%R''*Q
end

版权声明:本文为C_xxy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。