Course Overview

CS445, Spring 2019

Chuck Anderson, Colorado State University

Course web site:

Objectives of Machine Learning

Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that's creativity. --Charles Mingus

Given some data, as samples of measurements, variable values, attributes, or features,

  • find: outliers, anomolies, redundant variables
  • predict: some variables from others
  • classify: samples into categories
  • control: by selecting actions in sequence that optimizes performance
  • explain: relationships, dependencies

Types of Machine Learning Algorithms

  • Supervised Learning: Given known data samples as pairs of inputs and correct outputs, find function that approximates the desired output for each input and that makes "good" guesses at the correct output for novel inputs.
  • Unsupervised Learning: Given known data input samples, find regularities, such as clusters and outliers. There is no "supervisor" who knows correct outputs.
  • Reinforcement Learning: Data samples become available as learning agent interacts with an environment by applying actions. Learning objective is to optimize an objective that depends on the sequence of actions and their effects on the environment, such as in game playing, robotic control, and planning.

Your Objectives in Class

  • Learn concepts and algorithms in machine learning research.
  • Learn to program in python using packages numpy and matplotlib.
  • Implement many common machine learning algorithms in python using matrix operations instead of for loops.
  • Write python code to apply algorithms to various data sets.
  • Use python to analyze and visualize results.
  • Learn to write scientific reports with executable code using jupyter notebooks.
  • Learn to do machine learning research by asking and answering questions about your data and results.

  • Develop intuition for finding patterns in data.


Skills You Will Learn or Steps You Will Do For Each Assignment

  • Python
  • Obtain interesting data sets and understand previous approaches.
  • Read data into python and visualize it.
  • Implement machine learning methods and apply to data.
  • Fairly and honestly compare results.
  • Write descriptions of data, methods, results, discussion, and conclusion in a jupyter notebook


  • Average of about 7 assignments. Same ones for on and off-campus students.
  • Implement a machine learning algorithm in python, apply it to a given data set, write report in a jupyter notebook.
  • You will submit your jupyter notebook via Canvas.
  • The last assignment will be of your own design.

The Power of Statistics and Visualization

Simple analysis and dynamic visualization can lead to tremendous insight with little effort. For example, take the time to watch the video at by Hans Rosling:

Examples of Kinds of Problems We Will Study

  • Classify images of handwritten digits. (supervised learning: classification)
  • Predict miles per gallon for automobiles given inputs like horsepower and engine size (supervised learning: prediction)
  • Learn a strategy for winning a game like Tic-Tac-Toe (reinforcement learning)
  • Given gene expression data find groupings that are common among the different treatments. (unsupervised learning)

Your First Task