Up Next
Go up to Question 1
Go forward to Solution to Question 1, part 2

Solution to Question 1, part 1

Suppose you change the procedure select_split so that it always selects the first element of the list of attributes. What tree is found when the attributes are in the order [author, thread, length, where_read]? Does this tree represent a different function than that found with the more complicated selection mechanism? Explain.

This can be found by changing the definition of select_split to:

select_split(_, _, [Cond|Rem_Atts], Cond, Rem_Atts).
The tree can be found by asking:
cilog: ask dtlearn(user_action, 
           [e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18], 
           [author,thread,length,where_read], DT).
Answer: dtlearn(user_action, 
         [e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14,
         e15, e16, e17, e18], 
         [author, thread, length, where_read], 
         if(author = known, 
                if(thread = new, if(length = long, skips, reads), 
                                 if(length = long, skips, reads)), 
                if(thread = new, reads, skips))). 
This tree represents a different function than that in Figure 11.3 of the book as it classifies an example with author=unknown, thread=new, length=long as reads whereas the tree of Figure 11.3 classifies the same example as skips.
Up Next