Finally, if you do extra problems that you do not want included in your grade but would like feedback on your answers you can also do that. However, such problems should be clearly marked as not to be included as part of the recorded grade.
Remember that the version space holds all hypothesis consistent with ALL the training data which includes the positive and negative examples.
Try running the decision tree learner on a randomly chosen subset of half of the examples for training, and using half for testing. What are the training and test accuracies? What conclusion(s) can you draw from this?
Determine if each of the following are true or false assuming that the target concept is that described by the decision tree in Figure 3.1, that all examples you add must be consistent with the target concept, and without using any post pruning. Explain how you reached your answers and convince us of them.
Implement the Find-S algorithm. First verify that it successfully produces the trace in Section 2.4 for the EnjoySport example. Now use this program to study the number of random training examples needed to exactly learn the target concept. Implement a training example generator that generates randome instances, then classifies them according to the target concept:
(Sky == Sunny) AND (Temp == warm)Consider training your FIND-S program on randomly generated examples and measuring the number of examples required before the program's hypothesis is identical to the target concept. Can you predict the average number of examples required? Run the experiment at least 20 times and report the mean number of examples required. How do you expect this number to vary with the number of "?"s (the irrelevant attributes which are not in the target formula) in the target concept? How would it vary with the number of attributes available.
Note: To respond to the last two questions think about both analytically determining the answer (if you can) and run experiments and report on your findings.
/pkg/gnu/bin/makeYou can ignore the warnings you get. Then you should be all set to run the program.
Here is something you can do that would be approproate for one of the options to try for the last part. Once the learner is playing pretty well make the following two changes. First, stop using the sequence (b'_0, b'_1, .... b'_m') which are the boards just before the opponent moves for training. Instead only use the sequence of board states just before the learner moves. Second, keep two set of weights (initialized with the current weight values), one that is used for playing and is updated when the learner goes first and the second that is used for playing and is updated whent he learner goes second. This should help improve performance in terms of the percentage of games won and also should help stabilize the weights. Study how the weights change and from this can you say anything about how the strategy changes when the learner or opponent goes first. If you have enough cycles, you could try starting from the beginning when the learner always goes first and only the board states as viewed by the learner are used for training. How do the final weights and the performance of this learner compare to one which was trained as described in the lab and then switched (as described) above. Also, how does the total training time (i.e. number of games played) compare?
C E E E E E E C E X * * * * X E C = corners E * o o o o * E E = non-corner edge E * o o o o * E X = diagonally one from corner E * o o o o * E * = adjacent to an edge space E * o o o o * E E X * * * * X E C E E E E E E CThe spaces marked by an "o" would only be considered when counting the number of black and whites. For all of the other features you count the number of white discs in the designated type of space for one feature and count the number of black discs in the designated type of space for another feature. The number of empty spaces of the designated type do not get counted for any of the features.
If the opponents move takes you to a final board you can either go ahead and use the true board value or just use V_hat. The first option is certainly prefered in terms of playing the best game but either is fine for the purpose of this lab.