IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
clssr_tree Class Reference

Detailed Description

Binary Decision Tree Classifier.

See also
uip_clssr_tree.m, demo_clssr_tree.m

Definition at line 4 of file clssr_tree.m.

+ Inheritance diagram for clssr_tree:
+ Collaboration diagram for clssr_tree:

Public Member Functions

function clssr_tree (in o)
 
function prune (in o)
 
function get_treedescription (in o)
 
function get no_outputs (in o)
 
function boot (in o)
 Resets classlabels and calls clssr::boot() More...
 
function get_classes (in o, in data)
 
function draw_domain (in o, in parameters)
 
function get_grades (in o, in params)
 Abstract. Method to get the per-feature grades. BMTool stuff. More...
 
function get_gradeslegend (in o, in params)
 Abstract. Method to get block title based on passed parameters. BMTool stuff. More...
 
function use (in o, in data)
 Applies block to data. More...
 
function train (in o, in data, in varargin)
 Trains block. More...
 
function get_description (in o, in flag_short)
 
function setbatch (in o, in params)
 Sets several properties of an object at once. More...
 
function get_methodname (in o, in flag_short)
 
function get_report (in o)
 Object reports are plain text. HTML would be cool but c'mon, we don't need that sophistication. More...
 
function get_html (in o, in flag_stylesheet)
 
function get_params (in o, in data)
 Calls Parameters GUI. More...
 
function extract_log (in o)
 
function get_ancestry (in o, in flag_title)
 

Public Attributes

Property fsgt
 =fsgt_infgain(). FSGT object to obtain the feature to be used at each node. More...
 
Property pruningtype
 =1 . Pruning type: 0 - no pruning; 1 - maximum number of levels; 2 - backward pruning; 3 - Quinan's chi-squared test More...
 
Property no_levels_max
 =10 . Maximum number of levels. The number of nodes is 2^(numberOfLevels)-1 More...
 
Property chi2threshold
 Chi-squared test threshold for pruningtype = 3. 0 - no pruning; 10 - heavy pruning. More...
 
Property flag_datay
 
Property title
 
Property color
 

Protected Member Functions

function get_treedescription_ (in o, in ptr, in nind)
 
function make_tree (in o, in X, in classes, in nc, in idxptr, in no_leaves, in level)
 
function quinlantest (in o, in Xj, in classes, in threshold)
 
function do_train (in o, in data)
 
function do_use (in o, in data)
 Number of occurences per class are registered at each node. More...
 
function do_get_report (in o)
 
function do_draw_domain (in o, in params)
 
function draw_lines (in o, in nodeidx, in x_range, in y_range)
 
function get_no_outputs (in o)
 
function do_boot (in o)
 Boots the block. More...
 
function do_get_html (in o)
 Abstract. HTML inner body. More...
 

Protected Attributes

Property nodes
 
Property classlabels
 
Property no_outputs
 
Property inputclass
 
Property flag_bootable
 =0. (High-Level setting and internal function) Whether or not the block is bootable. More...
 
Property flag_trainable
 =0. (High-Level + internal function). Whether or not the block can be trained, or completely non-data-based. More...
 
Property flag_incrtrain
 
Property flag_fixednf
 =1. (internal function) If true, dataset number of features will be checked upon training and using. Ignored if o.flag_trainable is 0. More...
 
Property flag_fixedno
 =0. (internal function) If true, dataset number of observations will be checked upon training and using. Ignored if o.flag_trainable is 0. More...
 
Property flag_multiin
 =0. (High-Level setting (gencode)) Whether block allows/expects multiple objects as input. More...
 
Property flag_out
 =1. (High-Level setting (gencode)) Whether the block generates any output at all (counterexample: vis blocks) More...
 
Property flag_train_inliers_only
 
Property flag_train_require_inliers
 
Property nf
 =-1. Number of features. Cleared at boot(), assigned or reinforced at train(). More...
 
Property no
 =-1. Number of observations. More...
 
Property flag_trained
 =0. Set to 1 by train() if training is successful; set back to 0 after booting. More...
 
Property flag_booted
 =0. Set to 1 by boot() after booting the block More...
 
Property time_train
 Trainings time. More...
 
Property time_use
 Use time. More...
 
Property classtitle
 Class Title. Should have a descriptive name, as short as possible. More...
 
Property short
 Short for the method name. More...
 
Property flag_params
 
Property flag_ui
 (GUI setting) Whether to "publish" in blockmenu and datatool. Note that a class can be "published" without a GUI (set flag_params=0 in this case, at the class constructor). More...
 
Property moreactions
 (GUI setting) String cell containing names of methods that may be called from the GUIs More...
 

Constructor & Destructor Documentation

function clssr_tree::clssr_tree ( in  o)

Member Function Documentation

function clssr::boot ( in  o)
inherited

Resets classlabels and calls clssr::boot()

function block::do_boot ( in  o)
protectedinherited

Boots the block.

Abstract. Booting accounts for clearing any recordings; model structure; stored data etc from the object so that it can be re-used anew.

function clssr_tree::do_draw_domain ( in  o,
in  params 
)
protected
function irobj::do_get_html ( in  o)
protectedinherited

Abstract. HTML inner body.

function clssr_tree::do_get_report ( in  o)
protected
function clssr_tree::do_train ( in  o,
in  data 
)
protected
function clssr_tree::do_use ( in  o,
in  data 
)
protected

Number of occurences per class are registered at each node.

function clssr::draw_domain ( in  o,
in  parameters 
)
inherited
function clssr_tree::draw_lines ( in  o,
in  nodeidx,
in  x_range,
in  y_range 
)
protected
function irobj::extract_log ( in  o)
inherited
Parameters
o
Returns
[o, log]
function irobj::get_ancestry ( in  o,
in  flag_title 
)
inherited
Parameters
o
flag_title=1
function clssr::get_classes ( in  o,
in  data 
)
inherited
function irobj::get_description ( in  o,
in  flag_short 
)
inherited

Returns description string

Precedence according with flag_short:

  • 0: title > short > classtitle
  • 1: short > title > classtitle
Parameters
flag_short=0I am sealing this to make sure that no class will try to improvise on this function.
function block::get_grades ( in  o,
in  params 
)
inherited

Abstract. Method to get the per-feature grades. BMTool stuff.

function block::get_gradeslegend ( in  o,
in  params 
)
inherited

Abstract. Method to get block title based on passed parameters. BMTool stuff.

function irobj::get_html ( in  o,
in  flag_stylesheet 
)
inherited
Parameters
flag_stylesheet=1Whether to include the stylesheet in the HTML
function irobj::get_methodname ( in  o,
in  flag_short 
)
inherited

This is used only to compose sequence string e.g. xxx->yyy->zzz

Parameters
flag_short=0
function clssr::get_no_outputs ( in  o)
protectedinherited
function irobj::get_params ( in  o,
in  data 
)
inherited

Calls Parameters GUI.

If flag_params, tries uip_<class>.m. If fails, tries uip_<ancestor>.m and so on

function irobj::get_report ( in  o)
inherited

Object reports are plain text. HTML would be cool but c'mon, we don't need that sophistication.

function clssr_tree::get_treedescription ( in  o)
function clssr_tree::get_treedescription_ ( in  o,
in  ptr,
in  nind 
)
protected
function clssr_tree::make_tree ( in  o,
in  X,
in  classes,
in  nc,
in  idxptr,
in  no_leaves,
in  level 
)
protected
function get clssr::no_outputs ( in  o)
inherited
function clssr_tree::prune ( in  o)
function clssr_tree::quinlantest ( in  o,
in  Xj,
in  classes,
in  threshold 
)
protected

Quinlan's Chi-square test for early stopping

Computes the Chi-square test described by Quinlan [1].

[1] J.R. Quinlan, Simplifying Decision Trees, Int. J. Man - Machine Studies, vol. 27, 1987, pp. 221-234.

Credits:

Guido te Brake, TWI/SSOR, TU Delft. Copyright: R.P.W. Duin, duin@.nosp@m.ph.t.nosp@m.n.tud.nosp@m.elft.nosp@m..nl Faculty of Applied Physics, Delft University of Technology P.O. Box 5046, 2600 GA Delft, The Netherlands

function irobj::setbatch ( in  o,
in  params 
)
inherited

Sets several properties of an object at once.

Parameters
o
paramsCell followint the pattern
{'property1', value1, 'property2', value2, ...} 
function block::train ( in  o,
in  data,
in  varargin 
)
inherited

Trains block.

function block::use ( in  o,
in  data 
)
inherited

Applies block to data.

Member Data Documentation

Property clssr_tree::chi2threshold

Chi-squared test threshold for pruningtype = 3. 0 - no pruning; 10 - heavy pruning.

Definition at line 19 of file clssr_tree.m.

Property clssr::classlabels
protectedinherited

Definition at line 11 of file clssr.m.

Property irobj::classtitle
protectedinherited

Class Title. Should have a descriptive name, as short as possible.

Definition at line 50 of file irobj.m.

Property irobj::color
inherited

=[0, .8, 0]. multipurpose feature, routines may use it for different things. Major use is to change the background of objtool and blockmenu. See also classes_html.m

Definition at line 42 of file irobj.m.

Property block::flag_bootable
protectedinherited

=0. (High-Level setting and internal function) Whether or not the block is bootable.

Definition at line 14 of file block.m.

Property block::flag_booted
protectedinherited

=0. Set to 1 by boot() after booting the block

Definition at line 69 of file block.m.

Property clssr::flag_datay
inherited

Definition at line 23 of file clssr.m.

Property block::flag_fixednf
protectedinherited

=1. (internal function) If true, dataset number of features will be checked upon training and using. Ignored if o.flag_trainable is 0.

Definition at line 28 of file block.m.

Property block::flag_fixedno
protectedinherited

=0. (internal function) If true, dataset number of observations will be checked upon training and using. Ignored if o.flag_trainable is 0.

Definition at line 31 of file block.m.

Property block::flag_incrtrain
protectedinherited

=0. (internal function). Whether or not the block accepts incremental training. The meaning is:

  • If YES, it means that the block can adapt/evolve everytime its train() method is called
  • If NO, the block can be trained only once, and calling its train() method many times can lead to unpredictable results

Definition at line 23 of file block.m.

Property block::flag_multiin
protectedinherited

=0. (High-Level setting (gencode)) Whether block allows/expects multiple objects as input.

Definition at line 35 of file block.m.

Property block::flag_out
protectedinherited

=1. (High-Level setting (gencode)) Whether the block generates any output at all (counterexample: vis blocks)

Definition at line 38 of file block.m.

Property irobj::flag_params
protectedinherited

=1. (GUI setting) Whether to call a GUI when the block is selected in blockmenu.m . If true, a routine called "uip_"<class name> will be called.

Definition at line 57 of file irobj.m.

Property block::flag_train_inliers_only
protectedinherited

If true, train() will pass on to do_train() a dataset with inliers only. If this flag is true, flag_train_require_inliers will be ignored, because flag_train_inliers_only being true is one way to solve the "inliers requirement".

Definition at line 46 of file block.m.

Property block::flag_train_require_inliers
protectedinherited

=1. If true, train() will give an error if the dataset has outliers. This is true by default, because the developer should be aware of outliers being inputted into a training algorithm.

Definition at line 51 of file block.m.

Property block::flag_trainable
protectedinherited

=0. (High-Level + internal function). Whether or not the block can be trained, or completely non-data-based.

Definition at line 17 of file block.m.

Property block::flag_trained
protectedinherited

=0. Set to 1 by train() if training is successful; set back to 0 after booting.

Definition at line 66 of file block.m.

Property irobj::flag_ui
protectedinherited

(GUI setting) Whether to "publish" in blockmenu and datatool. Note that a class can be "published" without a GUI (set flag_params=0 in this case, at the class constructor).

Definition at line 60 of file irobj.m.

Property clssr_tree::fsgt

=fsgt_infgain(). FSGT object to obtain the feature to be used at each node.

Definition at line 10 of file clssr_tree.m.

Property block::inputclass
protectedinherited

='irdata'. (High-Level setting) Class or classes (can be string or cell of strings) that the block can deal with. Allows for objtool and datatool to know (when appropriate) which blocks are applicable to the selected object(s).

Definition at line 11 of file block.m.

Property irobj::moreactions
protectedinherited

(GUI setting) String cell containing names of methods that may be called from the GUIs

Definition at line 63 of file irobj.m.

Property block::nf
protectedinherited

=-1. Number of features. Cleared at boot(), assigned or reinforced at train().

Definition at line 60 of file block.m.

Property block::no
protectedinherited

=-1. Number of observations.

Definition at line 63 of file block.m.

Property clssr_tree::no_levels_max

=10 . Maximum number of levels. The number of nodes is 2^(numberOfLevels)-1

Definition at line 16 of file clssr_tree.m.

Property clssr::no_outputs
protectedinherited

Definition at line 16 of file clssr.m.

Property clssr_tree::nodes
protected

Structure with the following fields:

  • feaidx
  • probs
  • flag_leaf
  • idx_left
  • idx_right
  • occur
  • occur0
  • threshold

Definition at line 33 of file clssr_tree.m.

Property clssr_tree::pruningtype

=1 . Pruning type: 0 - no pruning; 1 - maximum number of levels; 2 - backward pruning; 3 - Quinan's chi-squared test

Definition at line 13 of file clssr_tree.m.

Property irobj::short
protectedinherited

Short for the method name.

Definition at line 53 of file irobj.m.

Property block::time_train
protectedinherited

Trainings time.

Definition at line 73 of file block.m.

Property block::time_use
protectedinherited

Use time.

Definition at line 76 of file block.m.

Property irobj::title
inherited

Definition at line 38 of file irobj.m.


The documentation for this class was generated from the following file: