[Haskell-cafe] Mushrooms (edible/poisonous) and Haskell
Hans van Thiel
hthiel.char at zonnet.nl
Fri Dec 4 08:45:39 EST 2009
About six months ago I uploaded version 0.6 to Hackage of Emping, a
prototype tool using a new algorithm for data mining/machine learning.
It won't build with the newer versions of GTk2Hs because the Gtk2Hs API
changed since 0.9.13, and I used older versions of GHC and Gtk2Hs. For
several reasons I don't have easy access to the newer versions, so I
havn't fixed it yet. It should (that famous word) take no more than 15
minutes to change a Maybe Int into an Int in the main module. Apart from
that it compiles warning free and (in my own opinion) the code is pretty
clean now. See the user guide for some bugs I found and haven't fixed
The reason for this post is that I've been testing it, and have now
built an iteractive demonstration of the result of a case study. This is
a well known example of a table of 8124 rows and 23 columns, and the
goal is to distinguish between poisonous and edible mushrooms. Emping
found 3635 rules with antecedent length of 1 to 6, and the claim is that
these rules fully describe all possibilities. So, I hope people will
examine this case and, hopefully, will find no examples refuting this
claim. As far as I know no one has ever analized this table in such
detail, but that's another thing to be found out.
With regard to Haskell, imo Haskell is very suitable and practical as a
language for such a tool, because it is so modular. Changing something
in one place is usually pretty safe. From a practical pov, amongst all
the advantages and disadvantages, maintainability is surely a strength!
Anyway, for anyone who's interested in the application, see
and related links. Yes, unfortunately the demo is not in Haskell...
Hans van Thiel
More information about the Haskell-Cafe