/civicu-machine-learning

Civic U Machine Learning Course

Primary LanguageJupyter NotebookMIT LicenseMIT

Civic U Machine Learning

Civic U Machine Learning course material, example python code, civicu python package, and jupyter notebooks.

DESCRIPTION

In this class you'll

  • Learn to see the world from the perspective of a machine
  • Recognize machine learning in your daily life in Portland
  • Find ways to apply machine learning to Hack Oregon projects
  • Appreciate the kinds of algorithms that work for different problems and kinds of data ("model selection")
  • Assemble the pieces of a machine learning pipeline using python packages ("feature engineering")
  • Assess the "quality" of a machine learning model or pipeline ("cross validation")
  • Recognize the "scaling" challenges of machine learning ("scaling")
  • How to build a production machine learning pipeline ("online learning")
  • Recognize when human intuition leads you astray, and how a machine can do better ("logical fallacies")

WHO SHOULD TAKE THIS COURSE

If you like discovering patterns and trends in data or the way the world works, you enjoy this class. And you'll be excited to know that it's possible to teach machines to recognize and react to those patterns while you sit back and just feed them data. You'll learn how in this class.

HOW DO I KNOW I’M READY?

Do you know how to write a python function? Can you instantiate and manipulate a python object (like a dict or array)? Can you plot a table of data in Spreadsheet or in python? Do you know what "linear regression" is? If so, you're well-prepared to get the most out of this class.

Outline

  1. Getting Started
    • Overview of the Class
      • Competencies
      • Objectives
      • Student Prerequisites
        • Software development experience (Java, Javascript, C++, or Python)
        • Algebra
    • What is Machine Learning
      • Compared to Linear Regression (curve fitting)
      • Compared to Data Science
      • Compared to Artificial Intelligence
    • Kinds of Machine Learning
      • Supervised/Unsupervised
      • Online/Offline
      • Predictive/Descriptive
    • Applications
      • Civic Applications
    • Code
  2. Tools
    • Git
    • Software Development (becoming a coding Data scientist)
    • Best Practices
    • Tools
  3. Time Series
  4. NLP
    • Chatbots
    • Entropy
      • Thermodynamics
      • Information
    • Black Holes and an Expanding Universe
    • Code
  5. Supervised Classification
    • Application/Motivation
    • Logistic Regression
      • Derived from Linear Regression
    • Decision Tree
      • Random Forest
    • Neural Nets
    • SVM
    • Genetic Algorithms useful when
      • fit-test is fast
      • thoughtful design is hard
    • Code
  6. Unsupervised Classification
    • Applications/Motivation
    • Clustering
    • KMeans
    • KNN
    • Neural Nets
      • Word2Vec
    • Code
  7. Ensemble Methods
  8. Meta-parameter search (tuning your learner)
    • Grid Search
    • Random Search
    • Graph search with heuristic
  9. Supervised v Unsupervised
    • Labels
    • Imbalanced Data Sets
  10. Bayesian Inference
    • Naive Bayes
    • Non-naive bayes (Markov Models)
  11. More Neural Nets
    • Convolutional
    • Recurrent
    • Recursive
    • Deep
    • Examples: image processing
  12. Language Models
  13. Statistical Models
    • “Big Data” vs “Big Model”
    • Big Data: web search
    • Big Model: Detecting habitable planets

Toolkits & Guidebooks

  • Machine Learning
  • Windows Environment Setup
  • Mac Environment Setup
  • Git
  • Time Series
  • Processing Text (NLP)
  • Databases
  • Python
  • HTML and JSON
  • Chatbots