Data Mining
Instructor : Jeff Phillips (email) | Office hours: 10-11am Wednesdays @ MEB 3442 (and directly after class in WEB L104)
TAs: Michael Matheny (email) | Office hours: MEB 3115 seat 14 @ 1-2pm Mondays + 3:30-4:30pm Tuesdays
      + Pingfan Tang (email) | Office Hours: MEB 4158 @ 9-11am Mondays
Spring 2016 | Mondays, Wednesdays 3:00 pm - 4:20 pm
WEB L104
Catalog number: CS 5140 01 or CS 6140 01

Data mining is the study of efficiently finding structures and patterns in large data sets. We will focus on several aspects of this: (1) converting from a messy and noisy raw data set to a structured and abstract one, (2) applying scalable and probabilistic algorithms to these well-structured abstract data sets, and (3) formally modeling and understanding the error and other consequences of parts (1) and (2), including choice of data representation and trade-offs between accuracy and scalability. These steps are essential for training as a data scientist.
Algorithms, probability, and linear algebra are required mathematical tools for understanding these approaches.
Topics will include: similarity search, clustering, regression/dimensionality reduction, graph analysis, PageRank, and small space summaries. We will also cover several recent developments, and the application of these topics to modern applications, often relating to large internet-based companies.
Upon completion, students should be able to read, understand, and implement many data mining research papers.

MMDS(v1.3): Mining Massive Data Sets by Anand Rajaraman, Jure Leskovec, and Jeff Ullman. The digital version of the book is free, but you may wish to purchase a hard copy.
CSTIA: Computer Science Theory for the Information Age by John Hopcroft and Ravi Kannan. This is currently only collated lecture notes from a theory class that covers some similar topics. This provide some proofs and formalisms not explicitly covered in lecture.
When material is not covered by the books, free reference material will be linked to or produced.

Videos: We plan to videotape all lectures, and make them available online. They will appear on this playlist on our YouTube Channel.
Videos will also livestream here.

Prerequisits: A student who is comfortable with basic probability, basic linear algebra, basic big-O analysis, and basic programming and data structures should be qualified for the class. There is no specific language we will use. However, programming assignments will often (intentionally) not be as specific as in lower-level classes. This will partially simulate real-world settings where one is given a data set and asked to analyze it; in such settings even less direction is provided.
For undergrads, the prerequisits are CS 3500 and CS 3130 and MATH 2270 (or equivalent), and CS 4150 is a corequisite.
In the past, this class has had undergraduates, masters, and PhD students, including many from outside of Computer Science. Most (but not all) have kept up fine, and still most have been challenged. If you are unsure if the class is right for you, contact the instructor.
Schedule: (subject to change - some linked material is from the previous iteration of the class)
Date Topic (+ Notes) Video Link Assignment (latex) Project
Mon 1.11 Class Overview Vid MMDS 1.1
Wed 1.13 Statistics Principles + Chernoff Bounds (N) Vid MMDS 1.2
Mon 1.18 (MLK Day - No Class)
Wed 1.20 Similarity : Jaccard + k-Grams (example, N) Vid MMDS 3.1 + 3.2 | CSTIA 7.3
Mon 1.25 Similarity : Min Hashing (N) Vid MMDS 3.3
Wed 1.27 Similarity : LSH (N) Vid MMDS 3.4 Statistical Principles
Mon 2.01 Similarity : Distances (N) Vid MMDS 3.5 + 7.1 | CSTIA 8.1 Proposal
Wed 2.03 Similarity : SIFT and ANN vs. LSH (N) Vid MMDS 3.7 + 7.1.3
Mon 2.08 Clustering : Hierarchical (N) Vid MMDS 7.2 | CSTIA 8.7
Wed 2.10 Clustering : K-Means (N) Vid MMDS 7.3 | CSTIA 8.3
Mon 2.15 (Presidents Day - No Class)
Wed 2.17 Clustering : Spectral (N|S|S+) Vid MMDS 10.4 | CSTIA 8.4 | Speilman | Gleich Document Hash
Mon 2.22 Streaming : Misra-Greis and Frugal (failed save) Vid MMDS 4.1 | CSTIA 7.1.3 | Min-Count Sketch | Misra-Gries Data Collection Report
Wed 2.24 Streaming : Count-Min + Apriori Algorithm (N) Vid MMDS 6+4.3 | Careful Bloom Filter Analysis
Mon 2.29 Regression : Basics in 2-dimensions (N) Vid ESL 3.2 and 3.4
Wed 3.02 Regression : SVD + PCA (N) Vid Geometry of SVD - Chap 3 | CSTIA 4 Clustering
Wed 3.09 Regression : Matrix Sketching (N) Vid MMDS 9.4 | CSTIA 2.7 + 7.2.2 | arXiv
Mon 3.14 (Spring Break - No Class)
Wed 3.16 (Spring Break - No Class)
Mon 3.21 Regression : Random Projections (N) Vid CSTIA 2.9 Intermediate Report
Wed 3.23 Regression : Compressed Sensing and OMP (N) Vid CSTIA 10.3 | Tropp + Gilbert Frequent
Mon 3.28 Regression : L1 Regression and Lasso (N) Vid Davenport | ESL 3.8 bias-variance example
Wed 3.30 Noise : Noise in Data (N) Vid MMDS 9.1 | Tutorial
Mon 4.04 Noise : Privacy (N) Vid McSherry | Dwork
Wed 4.06 Graph Analysis : Markov Chains (N,S) Vid MMDS 10.1 + 5.1 | CSTIA 5 | Weckesser notes
Mon 4.11 Graph Analysis : PageRank (N) Vid MMDS 5.1 + 5.4 Regression
Wed 4.13 Graph Analysis : MapReduce (N) Vid MMDS 2 | Final Report
Mon 4.18 Graph Analysis : Communities (N) Vid MMDS 10.2 + 5.5 | CSTIA 8.8 + 3.4 Poster Outline
Wed 4.20 Graph Analysis : Graph Sparsification (N) Vid1,2 MMDS 4.1
Wed 4.27 Poster Day !!! (4:00-6:00pm) Poster Presentation
Mon 5.2 Graphs

Latex: I highly highly recommend using LaTex for writing up homeworks. It is something that everyone should know for research and writing scientific documents. This linked directory contains a sample .tex file, as well as what its .pdf compiled outcome looks like. It also has a figure .pdf to show how to include figures.