Skip to content
 
 

Latest commit

 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DAT5 Course Repository

Course materials for General Assembly's Data Science course in Washington, DC (3/18/15 - 6/3/15).

Instructors: Kevin Markham and Brandon Burroughs

Monday Wednesday
3/18: Introduction and Python
3/23: Git and Command Line 3/25: Exploratory Data Analysis
3/30: Visualization and APIs 4/1: Machine Learning and KNN
4/6: Bias-Variance and Model Evaluation 4/8: Kaggle Titanic
4/13: Web Scraping, Tidy Data, Reproducibility 4/15: Linear Regression
4/20: Logistic Regression and Confusion Matrices 4/22: ROC and Cross-Validation
4/27: Project Presentation #1 4/29: Naive Bayes
5/4: Natural Language Processing 5/6: Kaggle Stack Overflow
5/11: Decision Trees 5/13: Ensembles
5/18: Clustering and Regularization 5/20: Advanced scikit-learn
5/25: No Class 5/27: Databases and SQL
6/1: Course Review 6/3: Project Presentation #2

Key Project Dates

  • 3/30: Deadline for discussing your project idea(s) with an instructor
  • 4/6: Project question and dataset (write-up)
  • 4/27: Project presentation #1 (slides, code, visualizations)
  • 5/18: First draft due (draft of project paper, code, visualizations)
  • 5/25: Peer review due
  • 6/3: Project presentation #2 (project paper, slides, code, visualizations, data, data dictionary)

Key Project Links

Logistics

  • Office hours will take place every Saturday and Sunday.
  • Homework will be assigned every Wednesday and due on Monday, and you'll receive feedback by Wednesday.
  • Our primary tool for out-of-class communication will be a private chat room through Slack.

Submission Forms

Before the Course Begins

Python Resources


Class 1: Introduction and Python

  • Introduction to General Assembly
  • Course overview (slides)
  • Brief tour of Slack
  • Checking the setup of your laptop
  • Python lesson with airline safety data (code)

Homework:

Optional:

  • If we discovered any setup issues with your laptop, please resolve them before Monday.
  • If you're not feeling comfortable in Python, keep practicing using the resources above!

Class 2: Git and Command Line

  • Any questions about the course project?
  • Command line (slides)
  • Git and GitHub (slides)

Homework:

Optional:

Resources:


Class 3: Pandas

Homework:

Optional:


Class 4: Visualization and APIs

Homework:

Optional:

  • Watch Look at Your Data (18 minutes) for an excellent example of why visualization is useful for understanding your data.

Resources:


Class 5: Data Science Workflow, Machine Learning, KNN

Homework:

Optional:

Resources:


Class 6: Bias-Variance Tradeoff and Model Evaluation

  • Brief introduction to the IPython Notebook
  • Exploring the bias-variance tradeoff (notebook)
  • Discussion of the assigned reading on the bias-variance tradeoff
  • Model evaluation procedures (notebook)

Resources:

  • If you would like to learn the IPython Notebook, the official Notebook tutorials are useful.
  • To get started with Seaborn for visualization, the official website has a series of tutorials and an example gallery.
  • Hastie and Tibshirani have an excellent video (12 minutes, starting at 2:34) that covers training error versus testing error, the bias-variance tradeoff, and train/test split (which they call the "validation set approach").
  • Caltech's Learning From Data course includes a fantastic video (15 minutes) that may help you to visualize bias and variance.

Class 7: Kaggle Titanic

  • Guest instructor: Josiah Davis
  • Participate in Kaggle's Titanic competition
    • Work in pairs, but the goal is for every person to make at least one submission by the end of the class period!

Homework:

  • Option 1 is to do the Glass identification homework. This is a good option if you are still getting comfortable with what we have learned so far, and prefer a very structured assignment. (solution)
  • Option 2 is to keep working on the Titanic competition, and see if you can make some additional progress! This is a good assignment if you are feeling comfortable with the material and want to learn a bit more on your own.
  • In either case, please submit your code as usual, and include lots of code comments!

Class 8: Web Scraping, Tidy Data, Reproducibility

Resources:


Class 9: Linear Regression

  • Linear regression (notebook)
    • Simple linear regression
    • Estimating and interpreting model coefficients
    • Confidence intervals
    • Hypothesis testing and p-values
    • R-squared
    • Multiple linear regression
    • Feature selection
    • Model evaluation metrics for regression
    • Handling categorical predictors

Homework:

  • If you're behind on homework, use this time to catch up.
  • Keep working on your project... your first presentation is in less than two weeks!!

Resources:


Class 10: Logistic Regression and Confusion Matrices

  • Logistic regression (slides and code)
  • Confusion matrices (same links as above)

Homework:

Resources:


Class 11: ROC Curves and Cross-Validation

Homework:

  • Your first project presentation is on Monday! Please submit a link to your project repository (with slides, code, and visualizations) before class using the homework submission form.

Optional:

Resources:


Class 12: Project Presentation #1

  • Project presentations!

Homework:


Class 13: Naive Bayes

Homework:

  • Please download/install the following for the NLP class on Monday
    • In Spyder, import nltk and run nltk.download('all'). This downloads all of the necessary resources for the Natural Language Tool Kit.
    • We'll be using two new packages/modules for this class: textblob and lda. Please install them. Hint: In the Terminal (Mac) or Git Bash (Windows), run pip install textblob and pip install lda.

Resources:

  • For other intuitive introductions to Bayes' theorem, here are two good blog posts that use ducks and legos.
  • For more on conditional probability, these slides may be useful.
  • For more details on Naive Bayes classification, Wikipedia has two excellent articles (Naive Bayes classifier and Naive Bayes spam filtering), and Cross Validated has a good Q&A.
  • If you enjoyed Paul Graham's article, you can read his follow-up article on how he improved his spam filter and this related paper about state-of-the-art spam filtering in 2004.
  • If you're planning on using text features in your project, it's worth exploring the different types of Naive Bayes and the many options for CountVectorizer.

Class 14: Natural Language Processing

  • Natural Language Processing (notebook)
  • NLTK: tokenization, stemming, lemmatization, part of speech tagging, stopwords, Named Entity Recognition, LDA
  • Alternative: TextBlob

Resources:


Class 15: Kaggle Stack Overflow

Optional:

  • Keep working on this competition! You can make up to 5 submissions per day, and the competition doesn't close until 6:30pm ET on Wednesday, May 27 (class 20).

Resources:


Class 16: Decision Trees

Resources:

Installing Graphviz (optional):

  • Mac:
  • Windows:
    • Download and install MSI file
    • Add it to your Path: Go to Control Panel, System, Advanced System Settings, Environment Variables. Under system variables, edit "Path" to include the path to the "bin" folder, such as: C:\Program Files (x86)\Graphviz2.38\bin

Class 17: Ensembles

  • Ensembles and random forests (notebook)

Homework:

  • Make at least one new submission to our Kaggle competition! We suggest trying Random Forests or building your own ensemble of models. For assistance, you could use this framework code, or refer to the complete code from class 15. You can optionally submit your code to us if you want feedback.

Resources:

About

General Assembly's Data Science course in Washington, DC

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages