From 17ff044b6df61b38782b54a5050b8b0627379c77 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Mon, 3 Jan 2022 19:41:24 -0500 Subject: [PATCH] Solve project 5 question 5. --- p5_classification/perceptron_pacman.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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] +