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/costs.ps 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 locations: http://www.lbreyer.com/gpl.html http://dbacl.sourceforge.net
Laird A. Breyer <[email protected]>
dbacl(1), mailcross(1), mailfoot(1), mailinspect(1), mailtoe(1), regex(7)
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.