In recent years there has been a lot of hype around data and Artificial Intelligence. Data visualisation products such as QuickSight, Qlik Sense, Power BI and Tableau have become common and a business requirement. These are useful for the first three forms of analysis as defined by Gartner Descriptive, Diagnostic and Predictive. The consensus is that decisions should be data driven. Data analytics is becoming part of every workflow, the tools easy to use by any user regardless of technical background. However, there is an elusive 4th form Prescriptive analysis, where a programme will not only indicate what has happened, predict what will happen but advise on what should be done. This in broad terms is Artificial intelligence, computers thinking and making decisions. A subset of Artificial Intelligence is Machine Learning, which focuses on pattern recognition to learn and make decisions without human intervention. Example uses of machine learning include predicting customer churn, natural language processing and fraud detection. Deep learning is a subset of machine learning that applies routines based on human neural networks to data analysis. In deep learning, a number of nodes are created in a network that each specialise in an aspect of learning. Prescriptive analysis takes the output of a machine learning or deep learning algorithm to enable proactive decision making based upon more data than a human could ingest. The steps in building and deploying a machine learning programme are:
- Gather Data, sources can be traditional databases, flat files, text documents, NOSQL databases
- ETLT to clean the data
- Select and build the right model for the situation
- Gain insights from the output
- Visualise the results
What are the Types of Machine Learning?
Machine learning can be split into 4 main categories supervised, semi-supervised, unsupervised and reinforcement. Supervised machine learning algorithms require labeled training data, they learn by example. The algorithms will determine the logic and then apply this to a testing data set to make predictions. Examples of supervised techniques are:
- Bayesian Statistics
- Decision Trees
- Neural Networks
- Random Forests
- Support Vector Machines (SVM)
The more training data is available the better a supervised model will perform. Supervised learning models are used to assess risk, predict fraud, personalise interactions and segment customers. Semi-supervised uses unlabeled data to train in addition to labeled training data, this is especially useful in situations where a comprehensive set of examples cannot be created due to volume or variety. The labeled data will provide a pattern which can be extrapolated from and applied to the unlabeled data. Speech recognition, image classification and web page classification are example use cases. Unsupervised learning does not require labeled data, the algorithm determines correlations and relationships within the data. This is more similar to how humans learn, through observation and intuition. Examples of unsupervised learning are:
- Affinity Analysis
- Nearest Neighbour Mapping
- Singular Value Decomposition
Unsupervised techniques are used in customer segmentation, market basket analysis and intrusion detection. The more data the algorithm is exposed to the more refined the outcomes become. Reinforcement learning provides a number or rules, allowed actions and end states. The algorithm will apply these rules, try different actions observing the reactions and learns to exploit the rules to create a desired outcome. The algorithm learns to create circumstances that will lead to an optimal result. Example reinforcement algorithms are:
- Artificial Neural Networks
- Markov Decision Processes
Applications of reinforcement learning are robotics, navigation and financial trading.
How Do Machines Learn?
Machines ‘learn’ by studying data to discover patterns, extrapolate and apply that to new situations. There are many different algorithms available each learn in a different way and are suited to certain outcomes more than others for example:
- Clustering algorithms (K-means, t-Distributed Stochastic Neighbor (t-SNE) and Latent Dirichlet Analysis (LDA)) are suited to grouping data based on a number of similar features
- Classification algorithms (Random Forests, Neural Networks, Logistic Regression and Support Vector Machine (SVM)) predict the class of a given input
- Regression algorithms (linear regression, random forests, polynomial regression and ridge regression) predict a continuous variable
- Dimension reduction (Principal Component Analysis (PCA), Singular Value Decomposition (SVD) or Latent Dirichlet Analysis (LDA)) is used when there are too many variables or to ensure the variables are independent of one another.
As more data is gathered and processed by these algorithms the outcomes become more accurate, utilising big data techniques such as spark has increased the ability to process data has increased dramatically. Machine learning may identify previously unidentified opportunities or problems to be solved but cannot develop new hypothesis or think creatively.
What Problems Can Machine Learning Solve?
Machine learning is particularly suited to problems where: Associations are not easily codified or described by simple logical rules, but can be intuited. Potential outputs or actions are defined but which action to take is dependent on diverse conditions which cannot be predicted or uniquely identified before an event happens. Accuracy is more important than interpretation or interpretability as often the outcome cannot be completely explained or understood. The data is problematic for traditional analytic techniques. Traditional analytic techniques work best with many observations and a small number of variables. Some example use cases are: Natural Language Processing (NLP) has driven the development and adoption of chatbots, which allow communicating with machines in natural language for example asking “What was the turnover in the second quarter of 2017?” or to suggest an outfit at a clothing relater based on a description of a person “I would like an outfit to match a yellow t shirt”. Cognitive computing, which are systems that aim to understand and emulate human behaviour. This will typically involve utalising natural language processing to allow interaction without having to write or understand code. Cognitive computing can be seen in chatbots, personal assistants and Question — Answer systems. The internet of things (IOT) devices are becoming more numerous, devices such as the Amazon echo or Google home are constantly listening to gather data such as when you wake up and go to sleep, which can then be used to train machine learning models to better automate your home. An example is adjusting the temperature and lighting in a room based on the occupants.
We have discussed the main types of machine learning, the types of learning algorithms and when to use each one. Machine learning is a powerful tool and useful in a wide range of situations. In the next post we will discuss common problems (Anti-patterns) in machine learning.