⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampling.m

📁 最详尽的神经网络源码
💻 M
📖 第 1 页 / 共 2 页
字号:

        temptrain                   = [];

        temptest                    = [];

        tempvalid                   = [];

        for ii = 1 : L

            temptest                = [temptest , ind{ii}(1+(j-1)*Ntestc(ii):j*Ntestc(ii))];

            temp                    = [1+j*Ntestc(ii): select(ii) , 1:(j-1)*Ntestc(ii) ];

            if(options.valid)

                tempvalid               = [tempvalid , ind{ii}(temp(1:Nvalidc(ii)))];

                temptrain               = [temptrain , ind{ii}(temp(Nvalidc(ii)+1:end))];

            else

                temptrain               = [temptrain , ind{ii}(temp)];

            end

        end

        Itest(j , :)                   = temptest;

        Itrain(j , :)                  = temptrain;

        if(options.valid)

            Ivalid(j , :)                   = tempvalid;

        end

    end

end

if(options.method == 6) % Balanced Stratified Cross Validation


    K                              = options.cv.K;

    label                          = unique(y);

    select                         = histc(y , label);

    [d , N]                        = size(X);


    L                               = size(label , 2);

    ind                             = cell(1 , L);

    list                            = cell(1 , L);

    ind_list                        = cell(1 , L);

    Ni                              = zeros(1 , L);

    Ntestc                          = floor((1/K).*select);


    if(options.valid)

        Nvalidc                       = Ntestc;

        Ntrainc                       = select  - 2*Ntestc;

        Ntrain                        = sum(Ntrainc);

        Ntest                         = sum(Ntestc);

        Nvalid                        = sum(Nvalidc);

        Ivalid                        = zeros(K , Nvalid);


    else

        Ntrainc                         = select  - Ntestc;

        Ntrain                          = sum(Ntrainc);

        Ntest                           = sum(Ntestc);

    end

    Itrain                          = zeros(K , Ntrain);

    Itest                           = zeros(K , Ntest);


    for i = 1 : L

        ind{i}                      = find(y == label(i));

        Ni(i)                       = length(ind{i});

        list{i}                     = zeros(d , Ni(i) + 1);

        ind_list{i}                 = zeros(1 , Ni(i));

    end

    temp                            = 0;


    for i = 1 : L

        temp                             = temp + 1;

        a                                = X(: , ind{i});

        list{i}(: , 1)                   = min(a , [] , 2);

        for j=1:Ni(i)

            b                            = list{i}(: , j);

            tmp                          = b(: , ones(1 , size(a , 2))) - a;

            dist                         = sqrt(sum(tmp.*tmp));

            [minval , s]                 = min(dist);

            list{i}(: , j + 1)           = a(: , s);

            ind_list{i}(j)               = ind{i}(s);

            a(: , s)                     = [];

            ind{i}(s)                    = [];
        end

    end


    T_ind                                = cell(1 , K);

    Listremain                           = [];



    for i=1:temp

        b_ind                        = ind_list{i} ;

        if ~isempty(b_ind)
            while (size(b_ind,2) >= K)

                for j=1:K

                    T_ind{j}         = [T_ind{j} ; b_ind(1)];

                    b_ind(1)         = [];

                end
            end
            Listremain               = [Listremain , b_ind];

            b_ind                    = [];
        end

    end


    %     while ~isempty(Listremain)
    %         for i=1:K
    %             if ~isempty(Listremain)
    %
    %                 T_ind{i}              = [T_ind{i} ; Listremain(1)];
    %
    %                 Listremain(1)        = [];
    %             end
    %         end
    %     end

    %     Ntest                           = length(T_ind{1});
    %
    %     Ntrain                          = (K - 1)*Ntest + length(Listremain);

    Iindice                          = options.valid.*[[zeros(K-1,1) ; 1] , eye(K,K-1) ] + eye(K);

    for i=1:K


        tmp                          = Iindice(i , :)==1;

        indtest                      = find(tmp);

        indtrain                     = find(~tmp);

        Itrain_temp                  = [];


        for j=1:length(indtrain)

            Itrain_temp              = [Itrain_temp ; T_ind{indtrain(j)}];

        end

        [ignore,p]                   = sort(rand(1 , Ntrain));

        temp                         = [Itrain_temp' , Listremain];

        Itrain(i , :)                = temp(p);

        Itest(i , :)                 = T_ind{indtest(1)}';

        if(options.valid)

            Ivalid(i , :)             = T_ind{indtest(2)}';

        end

    end

end

if(options.method == 7) % Stratified Hold out

    rho              = options.holding.rho;

    K                = options.holding.K;

    if options.valid

        if(prod(size(rho)) == 1)

            rho     = [rho , (1-rho)/2 , (1-rho)/2];

        end

    end



    label            = unique(y);

    select           = histc(y , label);

    L                = size(label , 2);

    ind              = cell(1 , L);

    for i = 1 : L

        ind{i}  = find(y == label(i));

    end



    Ntrainc          = round(rho(1)*select);

    Ntrain           = sum(Ntrainc);

    if(options.valid)

        Ntestc       = round(rho(2)*select);

        Ntest        = sum(Ntestc);


        Nvalidc      = select - Ntrainc - Ntestc;

        Nvalid       = sum(Nvalidc);

        Ivalid       = zeros(K , Nvalid);

    else
        Ntestc           = select - Ntrainc;

        Ntest            = sum(Ntestc);

    end

    Itrain           = zeros(K , Ntrain);

    Itest            = zeros(K , Ntest);


    for j = 1 : K

        temptrain        = [];

        temptest         = [];

        tempvalid        = [];

        for i = 1 : L

            [ignore , pi] = sort(rand(1 , select(i)));

            temptrain     = [temptrain , ind{i}(pi(1:Ntrainc(i)))];

            if(options.valid)

                temptest       = [temptest , ind{i}(pi(Ntrainc(i)+1:Ntrainc(i) + Ntestc(i)))];

                tempvalid      = [tempvalid , ind{i}(pi(Ntrainc(i) + Ntestc(i)+1:select(i)))];


            else

                temptest      = [temptest , ind{i}(pi(Ntrainc(i)+1:select(i)))];

            end


        end

        Itrain(j , :)    = temptrain;

        Itest(j , :)     = temptest;

        if(options.valid)

            Ivalid(j , :) = tempvalid;

        end

    end

end


if(options.method == 8) % Stratified Boot Strap

    rho              = options.bootstraping.rho;

    K                = options.bootstraping.K;

    if options.valid

        if(prod(size(rho)) == 1)

            rho     = [rho , (1-rho)/2 , (1-rho)/2];

        end

    end


    label            = unique(y);

    select           = histc(y , label);

    L                = size(label , 2);

    ind              = cell(1 , L);

    for i = 1 : L

        ind{i}  = find(y == label(i));

    end


    Ntrainc          = round(rho(1)*select);

    Ntrain           = sum(Ntrainc);

    if(options.valid)

        Ntestc       = round(rho(2)*select);

        Ntest        = sum(Ntestc);


        Nvalidc      = select - Ntrainc - Ntestc;

        Nvalid       = sum(Nvalidc);

        Ivalid       = zeros(K , Nvalid);

    else
        Ntestc           = select - Ntrainc;

        Ntest            = sum(Ntestc);

    end

    Itrain           = zeros(K , Ntrain);

    Itest            = zeros(K , Ntest);

    for j = 1 : K

        temptrain   = [];

        temptest    = [];

        tempvalid   = [];


        for i = 1 : L

            pi            = ceil(select(i)*rand(1 , select(i)));

            temptrain     = [temptrain , ind{i}(pi(1:Ntrainc(i)))];

            if(options.valid)

                temptest       = [temptest , ind{i}(pi(Ntrainc(i)+1:Ntrainc(i) + Ntestc(i)))];

                tempvalid      = [tempvalid , ind{i}(pi(Ntrainc(i) + Ntestc(i)+1:select(i)))];

            else

                temptest      = [temptest , ind{i}(pi(Ntrainc(i)+1:select(i)))];

            end


        end

        Itrain(j , :)    = temptrain;

        Itest(j , :)     = temptest;

        if(options.valid)

            Ivalid(j , :) = tempvalid;

        end
    end

end




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -