In this programming assignment, you will practice some of the learning algorithms that were discussed in class. In particular, you will implement a k-Nearest Neighbor (kNN) classifier, Perceptron algorithm and Linear Regression and evaluate them.You will see how a machine learning pipeline is set up in general and how models are evaluated.
We have written a code execution pipeline for you in the form of jupyter notebook. You will have to complete the Classes and Functions as instructed in the jupyter notebook
This assignment is to be in python3 (>3.4). Make sure you have the correct version installed. You will also need following python packages :
- numpy (1.14.0)
- scipy (0.19.1)
- sklearn (0.19.0)
- matplotlib (2.1.2)
- jupyter (1.0.0)
There are multiple ways you can install python3. Below are some (in no order of preference)
- You can use a virtualbox with all the setup by downloading from http://bytes.usc.edu/files/cs103/VM/StudentVM_Spring2018.ova
- You can use anaconda distribution of python (https://www.anaconda.com/download/)
- You can use
virtualenvto configurepython3environment for this Programming assignment and more to come. - You can use native
python3installation by downloading python3 from https://www.python.org/ for windows. Linux and Mac may already have apython3installation.
To install packages use pip3. The assignment has been tested with package versions as mentioned above. If you face any difficulties with other versions please bring to our notice. We have all listed all packages in requirements.txt. To install all packages using that you can run pip3 install --user -r requirements.txt
To work on the assignment once the setup is done.
- Navigate to the folder and start
jupyter notebookcommand. - Open browser and type
localhost:8000in the url tab. - Open
main.ipynbfrom the listed files. - Read and follow the Instructions there in
- To submit just push the code to your private GitHub repository.
- Do not change the file or folder names.
- You can keep pushing the code to the github repository as much as you want. We will consider most recent commit before the date.
- You can submit the request for using one of the late days in the form posted on Piazza.
- Make sure to submit the executed notebook with results (& plots), do not submit a cleared notebook.
- Problem 1, 2 and 3 can be attempted in any order.
This programming assignment has three problems. All are within main.ipynb and are worth following points
- Linear Regression (10 points)
- k-Nearest Neighbor (10 points)
- Perceptron (5 points)