Provided by: dbacl_1.12-3_amd64 bug


       bayesol - a Bayes solution calculator for use with dbacl.


       bayesol [-DVNniv] -c riskspec [FILE]...

       bayesol -V


       bayesol  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.


       On success, bayesol returns a positive integer corresponding  to  the  category  with  the
       lowest risk.  In case of a problem, bayesol returns zero.


       -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 (approximately)  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 categories 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 +infinity) is best, etc.

       -v     Verbose mode. Prints to STDOUT the category with minimum posterior risk.   In  case
              several  categories  are  possible, prints the first category in the order in which
              they appear in the categories section of riskpspec.

       -D     Print debug output. Do not use.

       -V     Print the program version number and exit.


       bayesol needs to read a text file riskspec containing a risk specification. 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 expression.  To construct the actual loss
       matrix used in the decision calculations, 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 "complexity" is recognized, and converted to the complexity for
       that  category  as reported by dbacl(1).  Finally, if the corresponding regular expression
       contains submatches delimited by parentheses, their numerical 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. Comments must start with
       a # and extend to the end of the line.


       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/share/doc/dbacl/  for  a  description  of  the algorithm used.  See also
       /usr/share/doc/dbacl/tutorial.html for a more detailed overview.


       The source code for the latest version of this  program  is  available  at  the  following


       Laird A. Breyer <>


       dbacl(1), mailcross(1), mailfoot(1), mailinspect(1), mailtoe(1), regex(7)