1

我在这个小功能中工作,为随机森林火车准备索引。使用此函数,我可以获得一组示例的索引和示例特征子集的索引。我发现代码有点慢,有没有更好更快的方法来做到这一点?

这是我的代码

    function [idx_linhas, idx_features ] = prepararsementes(X,features,nseeds,treesize)
    %Esta função prepara os index para a "semeadura" de uma random forest
    idx_linhas = nan(nseeds,treesize);
    idx_features= nan(nseeds,features);

    for idx=1:nseeds
    [~,idx_linhas(idx,:)] = datasample(X,treesize,'Replace',true);
    end


    for idx=1:nseeds
    [~,idx_features(idx,:)] = datasample(X,features,2);
    end

    idx_linhas = idx_linhas.';

    end

提前致谢!

4

1 回答 1

3

尝试这个:

function [idx_linhas, idx_features] = prepararsementes(X, features, nseeds, treesize)

    % instead of loop, call datasample() only once, and reshape
    % note that ('replace', true) is the default, so I omitted that

    [~,idx]      = datasample(X, nseeds*treesize);
    idx_linhas   = reshape(idx, nseeds, treesize).';  

    [~,idx]      = datasample(X, nseeds*features, 2);
    idx_features = reshape(idx, nseeds, features);

end

从统计学上讲,我认为结果应该是相同的,因为您没有特定的权重,并且在两种情况下都使用替代品进行抽签。

于 2013-08-30T09:11:49.500 回答