source: prextra/randomforestc2.m @ 142

Last change on this file since 142 was 115, checked in by vcheplygina, 8 years ago
File size: 1.8 KB
Line 
1function [B, ll] = randomforestc2(A, W)
2%RANDOMFORESTC Random forest Classifier
3%
4%   W = RANDOMFORESTC2(A, L)
5%
6% INPUT
7%   A   Dataset
8%   L   Number of trees
9%
10% OUTPUT
11%   B   Random forest classifier
12%
13% DESCRIPTION 
14%
15%
16
17    name = 'randomforestc2';
18    if ~exist('classRF_train', 'file')
19        error('Please download code from http://code.google.com/p/randomforest-matlab/');
20    end
21   
22    % Handle untrained calls like W = randomforestc2([]);
23    if nargin == 0 || isempty(A)
24        if nargin < 2
25            W = 100;
26        end
27        name=['randomforestc2_' num2str(W)];
28     
29        B = prmapping(mfilename);
30        B = setname(B, name);
31        return;
32       
33    % Handle training on dataset A (use A * loglc2, A * loglc2([]), and loglc2(A))
34    elseif (nargin == 1 && isa(A, 'prdataset')) || (isa(A, 'prdataset') && isa(W, 'double'))
35        if nargin < 2
36            W = 100;
37        end
38        name=['randomforestc2_' num2str(W)];
39     
40        islabtype(A, 'crisp');
41        isvaldfile(A, 1, 2);
42        A = testdatasize(A, 'features');
43        A = setprior(A, getprior(A));
44        [~, k, c] = getsize(A);
45       
46        % Train the logistic regressor
47        rf = classRF_train(+A, getnlab(A), W);
48               
49        B = prmapping(mfilename, 'trained', rf, getlablist(A), k, c);
50        B = setname(B, name);
51       
52    % Handle evaluation of a trained RANDOMFORESTC2 W for a dataset A
53    elseif (isa(A, 'prdataset') && isa(W, 'prmapping')) || (isa(A, 'double') && isa(W, 'prmapping'))
54       
55        % Evaluate
56        [~, votes] = classRF_predict(+A, W.data);
57           
58        A = prdataset(A);
59        B = setdata(A, votes, getlabels(W));
60        ll = [];
61   
62    % This should not happen
63    else
64        error('Illegal call');
65    end
66end
Note: See TracBrowser for help on using the repository browser.