Skip to content
 
 

Repository files navigation

SF DAT 28 Course Repository

Course materials for General Assembly's Data Science course in San Francisco, CA (10/4/16 - 12/13/16).

Instructors: Sinan Ozdemir

Teaching Assistants: George McIntire Cari Levay

Course Times

Tuesday/Thursday: 6:30pm - 9:30pm

Office hours:

Tue/Thurs: 5:30pm - 6:30pm (right before class)

Wed: 6pm - 8pm

Sat: 10am - 12pm

All courses / office hours will be held at GA, 225 Bush Street

Course Project Information

Course Project Examples

Tuesday Thursday Project Milestone HW
10/4: Introduction / Expectations / Intro to Data Science 10/6: Pandas
10/11: APIs / Web Scraping 101 10/13: Intro to Machine Learning / KNN HW 1 Assigned (Th)
10/18: Model Evaluation / Linear Regression Part 1 10/20: Linear Regression Part 2 / Logistic Regression Three Potential Project Ideas (Th)
10/25: Natural Language Processing 10/27: Naive Bayes Classification HW 1 Due (Th)
11/1: Advanced Sklearn (Pipeline and Feaure Unions) 11/3: Review
11/8: Decision Trees 11/10: Ensembling Techniques HW 2 Assigned (Th)
11/15: Dimension Reduction 11/17: Clustering / Topic Modelling First Draft Due (Th)
11/22: Stochastic Gradient Descent 11/23: No Class Peer Review Due (T)
11/29: Neural Networks / Deep Learning 12/1: Recommendation Engines HW 2 Due (Th)
12/6: Web Development with Flask 12/8: Projects
12/13: Projects

Installation and Setup

Resources

##Introduction / Expectations / Intro to Data Science

Agenda

  • Introduction to General Assembly slides
  • Course overview: our philosophy and expectations (slides)
  • Ice Breaker

Break -- Command Line Tutorial

  • Figure out office hours
  • Intro to Data Science: slides

Homework

  • Setup a conda virtual environment
  • Install Git and create a GitHub account.
    • Read my intro to Git and be sure to come back on thursday with your very own repository called "sfdat28-lastname"
  • Once you receive an email invitation from Slack, join our "SFDAT28 team" and add your photo!
  • Introduction on how to read and write iPython notebooks tutorial

Class 2: Introduction to Pandas

####Goals

  • Feel comfortable importing, manipulating, and graphing data using Python's Pandas
  • Be able to find missing values and begin to have a sense of how to deal with them

####Agenda

  • Don't forget to git pull in the sfdat26 repo in your command line
  • Intro to Pandas walkthrough here

####Homework

  • Go through the python class/lab work and finish any exercise you weren't able to in class
  • Make sure you have all of the repos cloned and ready to go
    • You should have both "sfdat28" and "sfdat28-lastname"
  • Read Greg Reda's Intro to Pandas
  • Take a look at Kaggle's Titanic competition
  • I will be using a module called tweepy next time.
    • To install please type into your console pip install tweepy

Resources:

  • Another Git tutorial here
  • In depth Git/Github tutorial series made by a GA_DC Data Science Instructor here
  • Another Intro to Pandas (Written by Wes McKinney and is adapted from his book)
    • Here is a video of Wes McKinney going through his ipython notebook!
  • Examples of joins in Pandas
  • For more on Pandas plotting, read the visualization page from the official Pandas documentation.

Next Time on SFDAT28...

  • Maria finds out that Sancho has been cheating on her with her.. mother!

  • We will use python to programatically obtain data via open sources on the internet

    • We will be scraping the National UFO reporting center
    • We will be collecting tweets regarding Donald Trump and Hilary Clinton
    • We will be examining What people are really looking for in a data scientist..
  • We will continue to use pandas to investigate missing values in data and have a sense of how to deal with them

Class 3: APIs / Web Scraping 101

####Agenda

  • To install tweepy please type into your console pip install tweepy
  • Slides on Getting Data here
  • Intro to Regular Expressions here
  • Getting Data from the open web here
  • Getting Data from an API here
  • LAB on getting data here

####Homework

  • The first homework will be assigned by Friday morning (in a homework folder) and it is due in two Thursdays
    • It is a combo of pandas question with a bit of API/scraping
    • Please push your completed work to your sfdat28_work repo for grading
  • Your first project milestone is due next Thursday. It is the first three ideas you have for your project. Think about potential interesting sources of data you would like to work with. This can come from work, hobby, or elsewhere!

####Resources:

Class 4: Intro to Machine Learning / KNN

####Agenda

  • Iris pre-work code

    • Using numpy to investigate the iris dataset further
    • Understanding how humans learn so that we can teach the machine!
    • If needed, read intro to numpy code
      • Numerical Python, code adapted from tutorial here
      • Special attention to the idea of the np.array
  • Intro to Machine Learning and KNN slides

    • Supervised vs Unsupervised Learning
    • Regression vs. Classification
  • Lab to use KNN models to investigate accelerometer data

####Homework

  • The one page project milestone as well as the pandas homework! See requirements here
  • Read this excellent article, Understanding the Bias-Variance Tradeoff, and be prepared to discuss it in class on Tuesday. (You can ignore sections 4.2 and 4.3.) Here are some questions to think about while you read:
    • In the Party Registration example, what are the features? What is the response? Is this a regression or classification problem?
    • In the interactive visualization, try using different values for K across different sets of training data. What value of K do you think is "best"? How do you define "best"?
    • In the visualization, what do the lighter colors versus the darker colors mean? How is the darkness calculated?
    • How does the choice of K affect model bias? How about variance?
    • As you experiment with K and generate new training data, how can you "see" high versus low variance? How can you "see" high versus low bias?
    • Why should we care about variance at all? Shouldn't we just minimize bias and ignore variance?
    • Does a high value for K cause over-fitting or under-fitting?
  • For our talk on linear regression, read:

Resources:

  • For a more in-depth look at machine learning, read section 2.1 (14 pages) of Hastie and Tibshirani's excellent book, An Introduction to Statistical Learning. (It's a free PDF download!)
  • Stackoverflow article on the difference between generative and discriminative models here

Class 5: Model Evaluation Procedures / Linear Regression

Agenda

  • Model evaluation procedures (slides, code)
  • Linear regression (notebook)
    • To run this, I use a module called "seaborn"
    • To install to anywhere in your terminal (git bash) and type in sudo pip install seaborn
    • In depth slides here
  • LAB -- Yelp dataset here with the Yelp reviews data. It is not required but your next homework will involve this dataset so it would be helpful to take a look now!
  • Discuss the article on the bias-variance tradeoff
  • Look as some code on the bias variace tradeoff

Homework:

Resources:

Class 6: Linear Regression con't / Logistic Regression

####Agenda

  • Discusss with people at your table about your three potential ideas.
    • Try to figure out which kinds of machine learning would be appropiate
      • supervised
      • unsupervised
  • Linear regression (Continued) notebook
  • Logistic regression notebook and slides
  • LAB -- Exercise with Titanic data instructions

Homework:

Resources:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages