All pastes #259905 Raw Edit

Stuff

public text v1 · immutable
#259905 ·published 2006-11-27 21:16 UTC
rendered paste body
function [cbr,totalconfusion, totalprecision, totalrecall] = casebased(s)

[x,y] = loaddata(s);

% Initialisation
totale = 0;
totalconfusion = {};
totalrecall = {};
totalprecision = {};

% Loop for cross-fold validation
for j = 0:9

    % Data Split
    [testdata,traindata] = splitData(x,j);
    [testlabel,trainlabel] = splitData(y,j);

    % Initialise Training Set
    cbr = CBRinit(traindata,trainlabel);
    
    % Initialise Confusion matrix
    for i = 1:6
        for k = 1:6
            confusion(i,k) = 0;
        end;
    end;

    % Loop for each new test case
    for i = 1:size(testdata)
        
        % Initialise case
        newcase.problem = testdata(i,:);
        newcase.solution = 0;
        
        % retrieve, reuse, retain
        foundcase = retrieve(cbr,newcase);
        solvedcase = reuse(foundcase,newcase);
        cbr = retain(cbr,solvedcase);
        
        % Calcultaes total error
        if testlabel(i) ~= solvedcase.solution
            totale = totale+1;
        end;
        
        % Confusion matrix
        confusion(testlabel(i,1),solvedcase.solution) = confusion(testlabel(i,1),solvedcase.solution) + 1;
    end;

    % Recall and Precision rates calculations
    for i = 1:6
        if sum(confusion(i,:)) == 0 
            recall(i) = 100;
        else
            recall(i) = confusion(i,i) / sum(confusion(i,:)) *  100;
        end;
        if sum(confusion(:,i)) == 0
            precision(i) = 100;
        else
            precision(i) = confusion(i,i) / sum(confusion(:,i)) * 100;
        end;
            
    end;

    totalconfusion{j+1} = confusion;
    totalrecall{j+1} = recall;
    totalprecision{j+1} = precision;

end;

totale



function [ cbr ] = CBRinit( x,y )
% Initialises cases

%cbr = []

for i = 1:size(x,1)

%     found = 0;       
%     if size(cbr,2) ~= 0
%         for j = 1:size(cbr,2)
%             if (cbr(1,j).problem == x(i,:) )
%                 if (cbr(1,j).solution == y(i))
%                     found = 1;
%                 end;
%             end;
%         end;
%     end;
    
%    if found == 0
        cbr(i).problem = x(i,:);
        cbr(i).solution = y(i);
        cbr(i).typicality = 0;
 %   end;
end;