diff --git a/p5_classification/perceptron_pacman.py b/p5_classification/perceptron_pacman.py index fca5bc8..a9f66ab 100644 --- a/p5_classification/perceptron_pacman.py +++ b/p5_classification/perceptron_pacman.py @@ -42,12 +42,18 @@ class PerceptronClassifierPacman(PerceptronClassifier): def train( self, trainingData, trainingLabels, validationData, validationLabels ): - self.features = trainingData[0][0]['Stop'].keys() # could be useful later - # DO NOT ZERO OUT YOUR WEIGHTS BEFORE STARTING TRAINING, OR - # THE AUTOGRADER WILL LIKELY DEDUCT POINTS. + self.features = trainingData[0][0]['Stop'].keys() for iteration in range(self.max_iterations): print "Starting iteration ", iteration, "..." for i in range(len(trainingData)): - "*** YOUR CODE HERE ***" - util.raiseNotDefined() + datum, legalMoves = trainingData[i] + expectedLabel = trainingLabels[i] + vectors = util.Counter() + for l in legalMoves: + vectors[l] = self.weights * datum[l] #changed from datum to datum[l] + guessedLabel = vectors.argMax() + if expectedLabel != guessedLabel: + self.weights += datum[expectedLabel] + self.weights -= datum[guessedLabel] +