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

📄 mil_data_load.m

📁 Multiple INstance Learning Library
💻 M
字号:
function [bags, num_data, num_feature] = MIL_data_load(filename)

global preprocess;

matrix_file = [filename '.matrix'];
label_file  = [filename '.label'];
insts = [];
if preprocess.InputFormat == 1
    %sparse input format
    strcmd = sprintf('!ReadSparseInput.exe %s', filename);
    eval(strcmd);
    D = load(matrix_file);
    insts = spconvert(D);
else
    strcmd = sprintf('!ReadNormalInput.exe %s', filename);
    eval(strcmd);    
    insts = load(matrix_file);
end
        
fid = fopen(label_file, 'r');
if fid == -1, error('The label file is not generated, quitting...'); end;

nbag = 0;
prev_bag_name = '';
ninst = 0;
idx = 0;
while feof(fid) == 0

    line = strtrim(fgets(fid));
    elems = strsplit(',',line);    %instance_name, bag_name, label

    bag_name = cell2mat(elems(2));
    if strcmp(bag_name, prev_bag_name) == 0     %change of bag
        if (nbag >= 1)
            bags(nbag).instance = insts(idx + 1:idx + ninst, :);
            bags(nbag).label = any(bags(nbag).inst_label);
            idx = idx + ninst;
        end;
        nbag = nbag + 1;
        bags(nbag).name = bag_name;
        prev_bag_name = bag_name;
        ninst = 0;
    end

    ninst = ninst + 1;
    bags(nbag).inst_name(ninst) = elems(1);
    label = cell2mat(elems(3));
    bags(nbag).inst_label(ninst) = strcmp(label,'1');   %the positive label must be set to 1
end;

if (nbag >= 1)
    bags(nbag).instance = insts(idx + 1:idx + ninst,:);
    bags(nbag).label = any(bags(nbag).inst_label);
end;
fclose(fid);

num_data = length(bags);
num_feature = size(bags(1).instance, 2);

% normalize the data set
if (preprocess.Normalization == 1) 
    bags = MIL_scale(bags);
end;

% randomize the data
rand('state',sum(100*clock));
if (preprocess.Shuffled == 1) %Shuffle the datasets
    Vec_rand = rand(num_data, 1);
    [B, Index] = sort(Vec_rand);
    bags = bags(Index);
end;

⌨️ 快捷键说明

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