[comp.ai] Public Domain ID3

lukose@cm.deakin.oz.au (Dickson Lukose) (06/13/91)

Dear Colleague,

There has been only two positive reply to my request on public
domain ID3 software, as listed below:-

====================11111================11111================11111====
From: moskowit@paul.rutgers.edu (Len Moskowitz)
Subject: Re: Public Domain ID3 source code

I'm appending a net post I had filed away.  Hope it helps.

Len Moskowitz

----

>From jdooley@neutrino.urbana.mcd.mot.com (John Dooley) Fri Oct 26 14:00:39 1990
Path: paul.rutgers.edu!aramis.rutgers.edu!rutgers!cs.utexas.edu!asuvax!mcdphx!udc!neutrino.urbana.mcd.mot.com!jdooley
From: jdooley@neutrino.urbana.mcd.mot.com (John Dooley)
Newsgroups: comp.ai
Subject: Re: ID3 and CN2 Source Code
Message-ID: <1421@urbana.mcd.mot.com>
Date: 26 Oct 90 18:00:39 GMT
Sender: netnews@urbana.mcd.mot.com
Reply-To: jdooley@urbana.mcd.mot.com
Organization: Motorola, Inc. Urbana Design Center
Lines: 18

There are Common LISP versions of ID3 and ID5 (an incremental ID3) available
from Dr. Dan StClair at the University of Missouri Graduate Engineering Center
in St. Louis, MO. (c0567@umrvmb.umr.edu).  These LISP versions have been tested
on LISP Machines, Vaxes, Sun-4, Mac II (running Allegro), and TI Explorers and 
work fine on all.  There is also a C language version of ID3.

A versionof CN2 in C was in the works this past summer, but I don't know
if it's available yet.  CN2 is another non-incremental inductive learning
algorithm which produces rules instead of decision trees like ID3 does.


=======22222========22222=========222222===========22222==========22222==

Subject: Re: Public Domain ID3 source code
From: spratt@hawk.cs.ukans.edu

I wrote the following program in Franz Lisp for a course on knowledge
acquisition.  I also have it in XLISP (the code is essentially identical).

;;; ID3 by Lindsey Spratt (spratt@hawk.cs.ukans.edu).
;;; Written circa 1990 at the University of Kansas.
;;;
;;; The main function is id3-invoke, called with no arguments.  This calls
;;; id3 in a loop until the user says she is no longer interested in running 
;;; id3.
;;;
;;; [Because this implementation of ID3 can be very slow, various messages
;;; are printed out during execution to comfort the user that progress is 
;;; being made.  For the second test file, ID3.in2, this program takes over 
;;; 2 hours of real execution time.]

;;; The implementation has two major parts, one for building a tree given a
;;; set of examples and the other for determining the decision given an
;;; example and a tree.
;;;
;;; The main function for building a tree is find-tree.  If the examples all
;;; have the same decision, then its job is trivially done.  Otherwise, the
;;; attribute with the highest information gain (lowest conditional entropy)
;;; with respect to the decision is found and made the root of the tree.
;;; In the process, the examples are classified according to values in the 
;;; chosen attribute.  Each of these classifications is further analyzed to
;;; build the child subtrees for the new root.

################### REMAINING PARTS NOT INCLUDED ###########################


For all those who have requested information from me, I have forwarded
your email address to spratt@hawk.cs.ukans.edu for direct reply.

Once again, thank to all who have responded to my request for information.

regards
lukose@deakin.oz.au