PRTools contents |
MAPPINGS
This is not a command, just an information file.
Mappings in PRTools are in the MATLAB language defined as objects of the class MAPPING. In the text below, the words 'object' and 'class' are used in the pattern recognition sense.
In the Pattern Recognition Toolbox PRTools, there are many commands to define, train and use mappings between spaces of different (or equal) dimensionalities. Mappings operate mainly on datasets, i.e. variables of the type DATASET (see also DATASETS) and generate datasets and/or other mappings. For example
if A is a M x K dataset (M objects in a K-dimensional space)
and W is a K x N mapping (a map from K to N dimensions)
then A*W is a M x N dataset (M objects in a N-dimensional space)
This is enabled by overloading the *-operator for the MAPPING variables. A*W is executed by MAP(A,W) and may also be called as such.
Mappings can be linear (e.g. a rotation) as well as nonlinear (e.g. a neural network). Typically they are used to represent classifiers. In that case, a K x C mapping maps a K-feature data vector on the output space of a C-class classifier (an exception: some 2-class classifiers, like the discriminant functions may be implemented by a mapping onto a 1-dimensional space determined by the distance to the discriminant).
Mappings are of the data-type MAPPING (CLASS(W) is a MAPPING), have a size of K x C if they map from K to C dimensions. Four types of mapping are defined
untrained, | V = A*W.
Trains the untrained mapping W, resulting in the trained mapping V. W has to be defined by W = MAPPING(MAPPING_FILE,{PAR1, PAR2}), in which MAPPING_FILE is the name of the routine that executes the training and PAR1, and PAR2 are two parameters that have to be included into the call to MAPPING_FILE. Consequently, A*W is executed by PRTools as MAPPING_FILE(A,PAR1,PAR2). Example: train the 3-NN classifier on the generated data. W = knnc([],3); % untrained classifier
|
trained, | D = B*V
Maps the dataset B on the trained mapping or classifier V, e.g. as trained above. The resulting dataset D has as many objects (rows) as A, but its feature size is now C if V is a K x C mapping. Typically, C is the number of classes in the training set A or a reduced number of features determined by the the training of V. V is defined by V = MAPPING(MAPPING_FILE,'trained',DATA,LABELS,SIZE_IN,SIZE_OUT), in which the MAPPING_FILE is the name of the routine that executes the mapping, DATA is a field in which the parameters are stored (e.g. weights) for the mapping execution, LABELS are the feature labels to be assigned to the resulting dataset D = B*V (e.g. the class names) and SIZE_IN and SIZE_OUT are the dimensionalities of the input and output spaces. They are used for error checking only. D = B*V is executed by PRTools as MAPPING_FILE(B,W). Example: A = gendatd([50 50],10); % generate random 10D datasets
|
fixed, | D = A*W
Maps the dataset A by the fixed mapping W, resulting into a transformed dataset D. Examples are scaling and normalization, e.g. W = MAPPING('SIGM','fixed',S) defines a fixed mapping by the sigmoid function SIGM a scaling parameter S. A*W is executed by PRTools as SIGM(A,S). Example: normalize the distances of all objects in A such that their city block distances to the origin are one. A = gendatb([50 50]);
|
combiner, | U = V*W
Combines two mappings. The mapping W is able to combine itself with V and produces a single mapping U. A combiner is defined by W = MAPPING(MAPPING_FILE,'combiner',{PAR1,PAR2}) in which MAPPING_FILE is the name of the routine that executes the combining and PAR1, and PAR2 are the parameters that have to be included into the call to the MAPPING_FILE. Consequently, V*W is executed by PRTools as MAPPING_FILE(V,PAR1,PAR2). In a call as D = A*V*W, first B = A*V is resolved and may result in a dataset B. Consequently, W should be able to handle datasets, and MAPPING_FILE is now called by MAPPING_FILE(B,PAR1,PAR2) Remark: the combiner construction is not necessary, since PRTools stores U = V*W as a SEQUENTIAL mapping (see below) if W is not a combiner. The construction of combiners, however, may increase the transparency for the user and efficiency in computations. Example: A = gendatd([50 50],10); % generate random 10D datasets
|
A*W |
|
A*(V*W) |
|
A*(V*W) |
|
A*(V*W) |
|
STRUCT(W)
which may display
MAPPING_FILE: 'normal_map'
MAPPING_TYPE: 'trained'
DATA: [1x1 struct]
LABELS: [2x1 double]
SIZE_IN: 2
SIZE_OUT: 2
SCALE: 1
COST: []
OUT_CONV: 0
NAME: []
USER: []
VERSION: {1x2 cell }
These fields have the following meaning
MAPPING_FILE: Name of the m-file that executes the mapping. MAPPING_TYPE: Type of mapping: 'untrained','trained','fixed' or 'combiner'.
DATA: | Parameters or data for handling or executing the mapping. |
LABELS: | Label list used as FEATLAB for labeling the features of the output DATASET. |
SIZE_IN: | Expected input dimensionality of the data to be mapped. If not set, it is neglected, otherwise it is used for the error checking and display of the mapping size on the command line. |
SIZE_OUT: | Dimensionality of the output space. It should correspond to the size of LABLIST. SIZE_OUT may be size vector, e.g. describing the size of an image. See also the FEATSIZE field of DATASET. |
SCALE: | Output multiplication factor. If SCALE is a scalar all multiplied by it. SCALE may also be a vector with size as defined by SIZE_OUT to set separate scalings for each output. |
COST: | Classification costs in case the mapping defines a classifier. |
OUT_CONV: | Defines for trained and fixed mappings the output conversion:
|
NAME: | Name of the mapping, used for informing the user on the command line, as well as for annotating plots. |
USER: | User field, not used by PRTools. |
VERSION: | Some information related to the version of PRTools used for the mapping definition. |
The fields can be set by commands like SETMAPPING_FILE, SETDATA, SETLABELS, SETSIZE, and may be retrieved by commands like GETMAPPING_FILE, GETDATA, GETLABELS and SETSIZE. Information stored in a mapping can be found as follows
Some standard MATLAB operations have been overloaded for variables of the type MAPPING. They are defined as follows
W' | Defined for affine mappings only. It returns a transposed mapping. |
[W,V] | Builds a combined classifier (see STACKED) operating in the same feature space. aA * [W V] = [A*W A*V]. |
[W;V] | Builds a combined classifier (see PARALLEL) operating in different feature spaces: [A B] * [W;V] = [A*W B*V]. W and V should be mappings that correspond to the feature sizes of A and B. |
A*W | Maps a DATASET A by the MAPPING W. This is executed by MAP(A,W). |
V*W | Combines the mappings V and W sequentially. This is executed by SEQUENTIAL(V,W). |
W+CON | Adding a constant is defined for affine mappings only. |
W(:,K) | Output selection. If W is a trained mapping, just the features listed in K are returned. |
mapping, classc, cnormc, labeld,
Classifiers
nmc, knnc, udc, ldc, qdc, mogc, quadrc, fisherc, parzenc, parzendc, treec, loglc, naivebc, svc, rbsvc, nusvc, libsvc, treec, perlc, bpxnc, rbnc, lmnc, weakc, stumpc, subsc, adaboostc, baggingc, fdsc, vpc, drbmc,
Classifier Combiners
stacked, parallel, sequential, meanc, averagec, prodc, medianc, minc, maxc, votec, wvotec, modselc, dcsc, rsscc, mlrc, naivebcc, traincc,
Density Estimation
gaussm, parzenm, knnm,
Dimension Reduction
featsel, featselb, featself, featseli, featsellr, featselm, featselo, featselp, featselv, bhatm, fisherm, chernoffm, klm, klms, nlfisherm, pca, reducm,
Scaling
scalem, cmapm, sigm, invsigm, normm,
Set commands
setbatch, setcost, setdata, setlabels, setmapping_file, setmapping_type, setname, setout_conv, setpostproc, setscale, setsize, setsize_in, setsize_out, setuser,
Get commands
getbatch, getcost, getdata, getlabels, getmapping_file, getmapping_type, getname, getout_conv, getscale, getsize, getsize_in, getsize_out, getuser,
Tests
isaffine, isclassifier, isempty, isparallel, isstacked, issequential, istrained, isuntrained, isfixed, iscombiner,
PRTools contents |