Known bugs and problems in PRTools

Dataset conflict with Stats toolbox
MSE clashes between DIP Image and Neural Nets
Sizes do not match
Some classes have no test objects

Dataset conflict with Stats toolbox

The PRTools dataset class conflicts with the dataset class in the Matlab toolbox stats. A typical error message is:

??? Error using ==> dataset.dataset>dataset.dataset at 238
The parameter name is unrecognized or not legal in this context.

This happens when a PRTools dataset command is catched by the stats toolbox. Possible solutions:

  1. Change the order of the search path (File ->Set Path ...) such that PRTools is at the top. Save it and give "clear functions" and "clear classes" at the Matlab prompt.
  2. If this doesn't help, change the path as in 1, quit Matlab and restart. Give a PRTools command as the first, e.g. "a = gendatb".
  3. If this is still not sufficient, remove the Matlab stats toolbox from the path.

MSE clashes between DIP Image and Neural Nets

The Matlab Neural Net toolbox nnet as well as the DIP Image Matlab interface diptools contain a routine mse. Both packages may be called by PRTools. An error is generated when the wrong mse routine is called. The corresponding package should be moved to the bottom of the search path to solve the problem.

Sizes do not match

In many ways sizes of datasets and mappings may not match in some of the PRTools routines. Usually this is an error caused by the user, but sometimes difficult to find. Possible causes are:

  1. A dataset C is applied to a mapping that has been trained by another dataset B with a different feature size. This may be caused by first mapping a training set A to a subspace V, e.g. found by PCA and then classifying the dataset C with the same dimensionality as A by a classifier W in the subspace V. Examples of a wrong and a correct construct:

    wrong
    V = pca(A,0.9);
    B = A*V;
    W = fisherc(B);
    testc(C,W)

    correct
    V = pca(A,0.9);
    B = A*V;
    W = fisherc(B);
    testc(C*V,W)

    The correct version may also be written as:

    C*(A*(pca([],0.95)*fisherc))*testc

  2. In the conversion of a datafile to a dataset (which may be performed automatically by PRTools during operations on datafiles) it is needed that every object of a datafile is represented by the same features. Especially in case the objects in the datafile are images and a pixel representation is used, it may happen that images have different sizes. The user shoul take care that by commands like im_resize objects of equal size are produced.

Some classes have no test objects

In performance estimation by testc an error is generated in case the test set has for some classes no objects:

??? Error using ==> testc
Some classes have no test objects

If it is not the user's intention to estimate the performance of the classifier, but just to estimate the fraction of incorrectly classified test objects, testd may be used instead of testc.

 

 

 

 

 

 

This Web Page Created with PageBreeze Free HTML Editor