Hauptnavigation

Uschificator

Uschificator

by Stefan Rüping, rueping@ls8.cs.uni-dortmund.de

NEW: Bugfix. Version 1.0 contained a bug in the calculation of the Beta-pdf. Please upgrade to version 1.1!

What is the Uschificator?

The Uschificator is a method for scaling membership values of an argmax-classifier. A classifier is called argmax-classifier, if for ever class c ∈ C it computes a membership value m(x,c) which represents the classifiers certainty of the example x belonging to class c. The final classification rule is given by

cl(x) = arg max m(x,c).

The Uschificator scales the membership values such that they can be interpreted as the class probability

mscaled(x,c) ≈ P(c|x)

Uschificator is a JAVA implementation of the scaling algorithm that was developed by Uschi Garczarek (hence the name) and is described in [Garczarek/2002a].

Download

Download the latest version of Uschificator: Uschificator1.1.zip (Version 1.1, March 23rd, 2004).

Using Uschificator

What Uschificator does

The Uschificator has two modes. In learning mode, it uses the membership values of a argmax-classifier on a training set together with the true class values to construct a scaling function. In scaling mode, this scaling function is applied to membership values of new examples.

Learning of the scaling function is invoked by

Uschificator learn [parameters]input_file model_file.

The scaling function is learned from the data in the file input_file and written to model_file. Scaling is invoked by

Uschificator scale [parameters]input_file model_file output_file,

where input_file contains the unscaled membership values, model_file is the learned model and the scaled values are written to output_file.

Input file

For a d-class classification problem, the input file contains for the predicted membership values of the classifier for each class in one line per example. To learn the scaling function, the true class, which is an interger number from 1 to d, must be given in the last row of the file. The values are space-separated. That is, each line of the input file has the form

m[1] m[2] ... m[d] trueclass

Lines starting with a # are treated as comments and ignored. Input files for scaling may contain a true class label, but don't have to.

A-priori Scaling

The scaling algorithm requires that the membership values are already positive and sum up to 1. If this does not apply to your data, Uschificator contains some simple scaling functions you can use prior to the actual scaling algorithm. These are invoked by the following parameters:

scaling:none(default) Do not perform any prior scaling.
scaling:minmaxScale the values linearly with respect to the minimum and maximum membership values in the training data.
scaling:softmaxScale the values by the softmax rule.

Other parameters:

binary_threshold:valueWith a binary classification problem, you can supply only the membership values of the first class and let the membership values of the second class be computed by value-m[1].
precision:valueMinimum numerical precision (default 1e-3). Decrease, if you suspect erroneous results.
n_max:valueMaximum N for optimization (default 100). Increase, if you suspect erroneous results.

References

[Garczarek/2002a]Garczarek, Ursula, Classification Rules in Standardized Partition Spaces. Ph.D. thesis at the University of Dortmund, Germany [Online].