XBUS-505 Data Analysis II: Machine Learning
Machine learning can classically be summarized with two methodologies: supervised and unsupervised learning. In supervised learning, the “correct answers” are annotated ahead of time and the algorithm tries to fit a decision space based on those answers. In unsupervised learning, algorithms try to group like examples together, inferring similarities via distance or similarity metrics. These learning types allow us to explore data and categorize them in a meaningful way, predicting where new data will fit into our models. Scikit-Learn is a powerful machine learning library implemented in Python with numeric and scientific computing powerhouses Numpy, Scipy, and matplotlib for extremely fast analysis of small to medium sized data sets. It is open source, commercially usable and contains many modern machine learning algorithms for classification, regression, clustering, feature extraction, and optimization. For this reason Scikit-Learn is often the first tool in a Data Scientist’s toolkit for machine learning of incoming data sets. The purpose of this course is to serve as an introduction to Machine Learning with Scikit-Learn. We will explore several clustering, classification, and regression algorithms for a variety of machine learning tasks and learn how to implement these tasks with our data using Scikit-Learn and Python. In particular, we will structure our machine learning models as though we were producing a data product, an actionable model that can be used in larger programs or algorithms; rather than as simply a research or investigation methodology. For more on Scikit-Learn see: Six Reasons why I recommend Scikit-Learn (O’Reilly Radar).
After this course you should understand the basics of machine learning and how to implement machine learning algorithms on your data sets using Python and Scikit-Learn. In particularly you should understand basic regressions, classifiers, and clustering algorithms and how to fit a model and use it to predict future outcomes.
After completion of this course students should:
- Understand the basic mechanics of machine learning, and how machine learning differs from data mining, pattern recognition, or statistical hypothesis testing.
- Understand the differences and data requirements for regressions, classification, and clustering machine learning methodologies.
- Understand how to prepare and load datasets into Scikit-Learn, including normalization, standardization, and imputation techniques as well as pre-investigations of data with feature-extraction, dimension analysis, and distance metrics
- Have reviewed the many different types of models available in Scikit-Learn and the basic API for building models and saving models to disks.
- Be able to evaluate models using cross-validation, mean squared error, accuracy, precision, recall, and F1 scores as well as understand confusion matrices.
- Be able to deploy models into applications or data products to receive feedback from them, retraining and reinforcing existing models.