def __init__(self, playerNumber): attribute_names = 'PlayerIsJumping OpponentIsJumping PlayerIsPunching OpponentIsPunching OpponentSide OpponentPosition PlayerActions' dataFile = '' if playerNumber == 1: dataFile = 'falcon1' else: dataFile = 'falcon2' self.moveSet = DataSet(name=dataFile, target='PlayerActions', attrnames=attribute_names) self.moveSet_tree = DecisionTreeLearner(self.moveSet)
class Learner: def __init__(self, playerNumber): attribute_names = 'PlayerIsJumping OpponentIsJumping PlayerIsPunching OpponentIsPunching OpponentSide OpponentPosition PlayerActions' dataFile = '' if playerNumber == 1: dataFile = 'falcon1' else: dataFile = 'falcon2' self.moveSet = DataSet(name=dataFile, target='PlayerActions', attrnames=attribute_names) self.moveSet_tree = DecisionTreeLearner(self.moveSet) def display_tree(self): self.moveSet_tree.display() def cross_validation(self): print "\nCross Validation:" print str(cross_validation(DecisionTreeLearner, self.moveSet, k=10, trials=1)) def get_next_move(self, data): return self.get_result(self.moveSet_tree, data) def get_result(self, tree, data): if(isinstance(tree, DecisionLeaf)): #print '-----------------------' return tree.result else: attr_name = tree.attrname x = data[attr_name] #print attr_name + ': ' + x if x in tree.branches.keys(): subtree = tree.branches[x] return self.get_result(subtree, data) else: return "punch|jump|"