BAYESOL(1)BAYESOL(1)NAMEbayesol - a Bayes solution calculator for use with dbacl.
SYNOPSISbayesol [-DVNniv] -c riskspec [FILE]...
bayesol-V
DESCRIPTIONbayesol is a Bayes solution calculator designed to combine the output
of dbacl(1) with a prior distribution and a risk specification, and
calculate the optimal Bayesian decision (which minimizes the posterior
risk).
The risk specification is read from the text file riskspec and must be
written in a simple format described below. The dbacl(1) output can
either be read from FILE or from STDIN.
EXIT STATUS
On success, bayesol returns a positive integer corresponding to the
category with the lowest risk. In case of a problem, bayesol returns
zero.
OPTIONS-c Classify using riskspec. See the section RISK SPECIFICATION.
-i Fully internationalized mode. Forces the use of wide characters
internally, which is necessary in some locales. This incurs a
noticeable performance penalty.
-n Print risk scores for each category. Each score is (approxi‐
mately) the logarithm of the expected risk under that category.
The lowest score (ie closest to -infinity) is best, etc.
-N Print recursive risk scores for each category. Each score is
(approximately) the logarithm of the best score based on the
remaining categories, after the previously best scoring cate‐
gories have been removed, and a normalizing factor was added. A
full description is given in the technical report listed at the
end of this manpange. The largest score (ie closest to +infin‐
ity) is best, etc.
-v Verbose mode. Prints to STDOUT the category with minimum poste‐
rior risk. In case several categories are possible, prints the
first category in the order in which they appear in the cate‐
gories section of riskpspec.
-D Print debug output. Do not use.
-V Print the program version number and exit.
RISK SPECIFICATIONbayesol needs to read a text file riskspec containing a risk specifica‐
tion. The format of this text file is as follows
categories { cat1, cat2,..., catN}
prior { p1, p2,..., pN}
loss_matrix {
"regex1" c1 [ formula11, formula12,..., formula1N]
"regex2" c2 [ formula21, formula22,..., formula2N]
.
.
"regexM" cM [ formulaM1, formulaM2,..., formulaMN]
}
In the above, cat1, cat2,..., catN, are category names, p1, p2,..., pN,
are non-negative numbers, regex1, regex2,..., regexM, are (possibly
empty) regular expression strings, c1, c2,..., cM, are instances of the
category names cat1, cat2,..., catN, and the formulas are numbers or
mathematical expressions.
Every category which appears in the categories section must appear at
least once in the loss_matrix section, with an empty "" regular expres‐
sion. To construct the actual loss matrix used in the decision calcu‐
lations, bayesol selects, for each category appearing in the categories
section, the first row whose regular expression is matched within FILE
or STDIN, or the first row with empty regular expression if there are
no matches.
Each formula can be either a single number, or an algebraic combination
of the operators exp(), log(), +, -, *, /, ^ and parentheses (). The
string "inf" is parsed as the value infinity. Also, the string "com‐
plexity" is recognized, and converted to the complexity for that cate‐
gory as reported by dbacl(1). Finally, if the corresponding regular
expression contains submatches delimited by parentheses, their numeri‐
cal values can be used inside the formulas as the special variables $1,
..., $9. Note that submatches which aren't numerical are converted to
the value zero.
Case is important. Spaces and newlines can be liberally inserted. Com‐
ments must start with a # and extend to the end of the line.
USAGE
Typically, bayesol is used together with dbacl(1). An invocation looks
like this:
% dbacl -c one -c two -c three sample.txt -vna | bayesol-c toy.risk -v
See /usr/local/share/dbacl/doc/costs.ps for a description of the algo‐
rithm used. See also /usr/local/share/dbacl/doc/tutorial.html for a
more detailed overview.
SOURCE
The source code for the latest version of this program is available at
the following locations:
http://www.lbreyer.com/gpl.html
http://dbacl.sourceforge.net
AUTHOR
Laird A. Breyer <laird@lbreyer.com>
SEE ALSOdbacl(1), mailcross(1), mailfoot(1), mailinspect(1), mailtoe(1),
regex(7)Version 1.14.1 Bayesian Classification Tools BAYESOL(1)