Machine Learning is now a mainstream software tool, thanks to the availability of ever increasing amounts of data and an abundance of cheap computing power (via Cloud Computing). The greatest difficulties are organisational rather than technical. Managers and analysts are unsure of the different ML options available. Software Engineers typically have no ML expertise whilst Data Scientists frequently have no development experience.

This course is designed to enable software teams to begin their journey toward evaluating Machine Learning and integrating it into their solutions. It starts from first principles but relates all the theory to real world case studies of ML in action. The delivery is tailored to show examples from whatever tools are of most relevance to the delegates.

Depending on the amount of detail and practical work the course can be delivered over either one or two days. In order to complete the practical work the delegates must be experienced in the relevant languages. However non-coders can still gain a lot of benefit from the single day delivery.


Introducing Machine Learning (ML)

  • The first wave of interest in ML in the 1990s
  • Why Machine Learning re-emerged in the 2010s
  • The link between ML, Big Data and NoSQL
  • How ‘Data Scientist’ emerged as a profession

Current Applications of Machine Learning

  • Training Chatbots to handle customer queries
  • Detecting suspicious activity on networks
  • Advising clinicians in clinics and hospitals
  • Adding context to translation, subtitling etc…
  • Recognising emotions in pictures and video
  • Identifying, classifying and generating images
  • Finding the best route through unmapped terrain

Types of Machine Learning

  • Different kinds of goals achievable in ML
  • Supervised learning based on instances and labels
  • Reinforced learning based on rewards and penalties
  • How both forms of learning lead to unexpected results
  • Options for applying the results from an ML model
  • Pros and cons of models continuing to learn online

Preparing to Train a Model

  • Effective input data is the key to a good model
  • Identifying useful features / attributes in the data
  • Splitting the data into the training and test sets
  • Removing duplicated and erroneous test instances
  • Normalising scales used within the input data
  • Ensuring the data contains sufficient variation
  • Guarding against over-fitting or under-fitting
  • Setting hyperparameters to control the algorithm

Working with Decision Trees

  • Comparing Decision Trees to Flowcharts
  • The CART algorithm for generating trees
  • Switching attributes at different levels
  • Using Gini Impurity to measure progress
  • Using Information Gain to measure success
  • Adjusting hyperparameters to find a better fit

Working with Deep Learning Models

  • Deep Learning as Machine Learning with Neural Nets
  • Understanding neurones, weightings and bias values
  • Input, output and hidden layers within a DL model
  • How neural nets learn over time via backpropagation
  • Gradient Descent as the usual form of backpropagation
  • Re-running the data to avoid ending in a local minima

Applying Deep Learning in Practice

  • Commonly used toolkits for ML in Java and Python
  • Specialist hardware now available for training models
  • The Google platform, TPUs and working with TensorFlow
  • Options for Machine Learning with AWS and Azure
  • Integrating ML into your DevOps pipeline


Delegates must be experienced in the language used within the selected ML tools. NB the single day delivery can be conducted using demonstrations only.