Your submission should include a Python file named LastName_perceptron.py (replace LastName with your last name). This file should be executable, meaning it can be run from the command like this: ./LastName_perceptron.py [arguments] You can use whichever Python version you want, as long as it runs on the department machines. Put a single line at the top of your file that looks like this: #!/usr/bin/python If you want to use Python 3, use 'python3' instead of 'python' above. IMPORTANT: Your submission should NOT include a copy of the data. The data is in /u/cs246/data/adult; you should look in that path within your program. A large portion of your grade will be determined based on whether the core algorithm is correctly implemented. This will be determined by an automated test. To facilitate this, your program must support the following command line argumen ts: --iterations [int] (example: --iterations 10) Your program should stop after this many iterations through the training data. Your program should use 1 as the learning rate. --noDev When this is provided, your program should NOT make any use of development data. You may assume that this argument will only be provided when both --iterations are also provided. Your program should stop after the given number o f iterations and report test accuracy calculated with the weights vector that results from the last iteration. IMPORTANT: all weights and the bias should start at 0; do NOT use random initialization (at least when --nodev is provided). Note that when the above arguments are not provided, you are free to implement whatever behavior you deem best. You should incorporate the development data. Experiment with performance as a function of iterations. Also, to facilitate autograding, it is important that your script output the following information (you are allowed to produce other output, but the following are required, and should each appear on separate lines with nothing else prese nt on that line; items in square brackets are variables): Test accuracy: [accuracy] Feature weights (bias last): [whitespace-delimited feature weights, with bias weight last] Note that there are 123 features in this assignment, so the second requirement above needs a total of 124 weights. Below are two input/output examples, which your program should match (you will be tested on a different iteration number): $ ./perceptron_example.py --nodev --iterations 1 Test accuracy: 0.785604538471 Feature weights (bias last): 0.0 -7.0 -2.0 4.0 2.0 0.0 3.0 -1.0 3.0 7.0 3.0 -1.0 -1.0 0.0 -7.0 3.0 1.0 -2.0 2.0 -5.0 1.0 -2.0 -1.0 2.0 -1.0 3.0 -1.0 -5.0 4.0 1.0 1.0 1.0 5.0 -2.0 -4.0 -8.0 -1.0 1.0 2.0 3.0 6.0 -1.0 -5.0 -2.0 -1.0 -3.0 3. 0 3.0 0.0 0.0 2.0 10.0 -2.0 -1.0 0.0 0.0 -6.0 0.0 0.0 7.0 0.0 6.0 0.0 -1.0 -4.0 -3.0 -1.0 1.0 3.0 -3.0 -2.0 -2.0 -4.0 1.0 -7.0 4.0 -5.0 2.0 -5.0 1.0 -1.0 -1.0 3.0 6.0 1.0 1.0 -4.0 3.0 0.0 0.0 -7.0 3.0 -1.0 -2.0 -1.0 4.0 -1.0 0.0 4.0 1.0 1.0 -1.0 -2.0 0.0 -1.0 1.0 0.0 -2.0 0.0 2.0 1.0 0.0 -4.0 -1.0 1.0 1.0 2.0 -1.0 2.0 1.0 -1.0 -1.0 -1.0 -3.0 Don't worry about the fact that a portion of the grading is automated; any failed tests will be looked at by a human before any points are deducted.