Overview of this book

There are many algorithms for data analysis and it’s not always possible to quickly choose the best one for each case. Implementation of the algorithms takes a lot of time. With the help of Mathematica, you can quickly get a result from the use of a particular method, because this system contains almost all the known algorithms for data analysis. If you are not a programmer but you need to analyze data, this book will show you the capabilities of Mathematica when just few strings of intelligible code help to solve huge tasks from statistical issues to pattern recognition. If you're a programmer, with the help of this book, you will learn how to use the library of algorithms implemented in Mathematica in your programs, as well as how to write algorithm testing procedure. With each chapter, you'll be more immersed in the special world of Mathematica. Along with intuitive queries for data processing, we will highlight the nuances and features of this system, allowing you to build effective analysis systems. With the help of this book, you will learn how to optimize the computations by combining your libraries with the Mathematica kernel.
Table of Contents (15 chapters)
Mathematica Data Analysis
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Free Chapter
First Steps in Data Analysis
Broad Capabilities for Data Import
Creating an Interface for an External Program
Analyzing Data with the Help of Mathematica
Discovering the Advanced Capabilities of Time Series
Statistical Hypothesis Testing in Two Clicks
Predicting the Dataset Behavior
Rock-Paper-Scissors – Intelligent Processing of Datasets
Index

Markov chains

In our example, we did not use any strategy to maximize wins by the computer. However, let's imagine that a human does not just randomly choose his move, but his choice depends on his last move. Thus, we obtain a classical Markov chain with a finite state and discrete time. At every step, we can compute a new transition matrix based on the history of previous moves. Then, we choose the move that has the maximum probability, and we suppose that this will be a human's move. Based on this, the computer chooses a move to win against a human.

Let's consider step by step all the components of this approach. For a start, let's look at how the Markov chains are represented in Mathematica.

The `DiscreteMarkovProcess` function describes a time series whose elements constitute a discrete Markov chain. The first parameter of this function is the initial state of the chain, and the second parameter is the matrix of transition probabilities:

Using the `MarkovProcessProperties` function, we can...