做机器学习算法建模时,常常需要将样本数据按照指定比率划分为训练数据与测试数据。本文基于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