Homeworks
Each homework will be due ~1 week after it is released. It is meant to immediately test recent knowledge acquired in class, using mostly code exercises but also some written questions building math and conceptual reasoning skills.
- HW0: Basic Numeric Operations in Numpy
-
- Can you divide datasets into train/test?
-
- Can you perform nearest-neighbors search?
-
- Head-to-head comparison of k-NN regression and linear regression
-
- Using a validation set to tune model complexity
-
- Understanding evaluation metrics and correspondence with training metrics
-
- L1 vs L2 penalties, using Ridge and Lasso from sklearn
-
- Exploration of basis functions
-
- Selecting hyperparameters by cross-validation
-
- Using logistic regression and decision tree classifiers from sklearn
-
- Creating and comparing confusion matrices and ROC curves
-
- Backpropagation
-
- Choosing activation functions
-
- Choosing optimization algorithms
Projects
Projects are meant to be open-ended, simulate case studies found in "the real world", and encourage creativity.
Each project will usually be due 2-3 weeks after being handed out. Projects will generally be centered around a particular methodology and task and involve significant programming (with some combination of developing core methods from scratch or using existing libraries). You will need to consider some conceptual issues, write a program to solve the task, and evaluate your program through experiments to compare the performance of different algorithms and methods.
Your main deliverable will be a short report. You’ll be assessed on effort, the sophistication of your technical approach, the clarity of your explanations, the evidence that you present to support your evaluative claims, and the performance of your implementation. A high-performing approach with little explanation will receive little credit, while a careful set of experiments that illuminate why a particular direction turned out to be a dead end may receive close to full credit.