美文网首页
随机划分数据集(matlab)

随机划分数据集(matlab)

作者: huim | 来源:发表于2018-10-28 20:59 被阅读0次

    将训练数据按一定比例划分成训练数据和测试数据。

    function [trainX,trainY,testX,testY] = split_train_test(X,Y,p)
    % 训练数据的标签
    c = unique(Y);
    % 类别数
    cn = length(c);
    % 每类样本的数量
    ecn = length(Y)/cn;
    
    % 生成随机数
    k = rand(1,ecn);
    [m n] = sort(k);
    
    trainX = [];
    trainY = [];
    testX = [];
    testY = [];
    
    a = ecn*p;
    b = a+1;
    for i = 1:cn
        num = n+ecn*(i-1);
        trainX = [trainX;X(num(1:a),:)];
        trainY = [trainY;Y(num(1:a),:)];
        testX = [testX;X(num(b:ecn),:)];
        testY = [testY;Y(num(b:ecn),:)];
    end
    

    相关文章

      网友评论

          本文标题:随机划分数据集(matlab)

          本文链接:https://www.haomeiwen.com/subject/kommtqtx.html