## COMPSCI 589: Machine Learning, Fall 2018Course Number: COMPSCI 589
Instructor: Brendan O'Connor
Teaching Assistants: Russell Lee (Head TA),
Chetan Manjesh,
Albert Williams
Location: Engineering Lab II Room 119 (Note ELab II is the silver building)
Time: MW 2:30-3:45
Instructor office hours: MW 3:45-4:45, either in classroom or CS 348
Link to Piazza: contains schedule, assignments, etc.
- The Elements of Statistical Learning by Hastie, Tibshirani and Friedman
- An Introduction to Statistical Learning by James, Witten, Hastie and Tibshirani
Graduate students can check the descriptions for these courses to verify that they have sufficient mathematical background for 589. The course will also use Python as a programming language including the numpy, scipy, and scikit-learn. Some familiarity with Python will be helpful, but senior CS students should be able to learn Python during the course if needed. Graduate students from outside computer science with sufficient background are also welcome to take the course. The following references can provide a useful review: More specific topics to be comfortable with, for this course: - Linear algebra: vectors and matrices, types of matrices (square, diagonal, identity), linear operations (scalar products, matrix multiplication, etc.), other transforms and computations (transpose, inverse, eigenvalues)
- Probability: laws of probability, Bayes Rule, CDFs, PDF vs PMF, etc.
- Calculus: derivatives, integrals, analytic minimization, etc.
- 50% Homeworks (5 total). These include both written and math questions, as well as programming and Kaggle submission problems.
- 20% In-class quizzes (~5 total, ~10 minutes each). First quiz is Monday, 9/10, on background topics.
- 30% Final exam
There will be 3 late days (24 hour periods after the due date).
- Regression models
- Classification models
- (Running themes: generalization, parametric vs. non-parametric, etc.)
- Kernel methods
- Bayesian methods
- Unsuprvised learning
## Collaboration policy**All of the content you submit, both code and text, needs to be produced independently.**Your work must be in your own words and based on your understanding of the solution. ("Independently" applies to homework; for group projects, work must be produced only by members of the group.)- Do not share code or written materials. Do not look at others' code. You may discuss problems and the project with others, and we encourage it, to help understand the material.
- On your homework, list the names of everyone you collaborated or had discussions with.
- If you find, use, or build off of published material, for example on the web or from a textbook, you must cite the source. Always explain the answer in your own words.
Some examples of the policy: - Acceptable: Alice and Bob discuss alternatives for storing large, sparse vectors of feature counts, as required by a problem set.
- Unacceptable: Alice and Bob sit down together and write code for storing feature counts.
- Acceptable: Bob is confused about how to implement the Viterbi algorithm, and asks Alice for a conceptual description of her strategy.
- Unacceptable: Alice and Bob divide the assignment into parts, and each write the code for their part, and then share their solutions with each other to complete the assignment.
- Acceptable: Alice asks Bob if he encountered a failure condition at a "sanity check" in a coding assignment, and Bob explains at a conceptual level how he overcame that failure condition.
- Unacceptable: Alice or Bob obtain a solution to a previous year's assignment or to a related assignment in another class, and use it as the starting point for their own solution.
We follow the university’s Academic Honesty Policy and Procedures. If you have questions about a particular situation, please ask. |