Machine Learning and Mathematics: Collaborators or Competitors?

So just where does machine learning fit in to the scientific world? And are we eventually going to have to resort to such methods to make progress in modelling if mathematical models cannot keep up? I'd like to argue that machine learning and mathematical models can coexist nicely in both research and industrial applications, and that the most interesting models appear when we utilise the power of both paradigms. To illustrate this point we take a trip to a civilisation who are in the contradictory position of having invented machine learning (implemented in PyTorch, strangely...) but their mathematics is not up to scratch. In particular they are not familiar with modern calculus. This example should hopefully replicate and illuminate the situation we find ourselves in now - where mathematics is difficult but data collection is easy.

View comments.

more ...

Mapping the Top Cycling Climbs in the UK with Folium

I've always been a fan of maps, especially old maps, and the sense of exploration and history that comes with hovering over them and zooming in on the fine details. Despite this I've never really tried to make any maps of my own. I recently discovered the nifty Python package, Folium, which can make visually stunning interactive maps within a matter of minutes. Since my PhD research is concerned more with the digital world than the real world I decided to look to my love of cycling and plot some of the top cycling climbs in the UK.

View comments.

more ...

Finding a Scientific Working Environment In Python

Over the course of my studies I've worked on multiple different machines, with different operating systems, different hardware, and different security privileges. It can be a nightmare to ensure a smooth and consistent experience, but when done right, makes working with code and data a pleasure and makes academic reproducibility that much easier. In this article we will look at how the right choice of Python distribution, environment, and IDE can go along way to avoiding technological headaches.

View comments.

more ...

Easy Parallel Computing with IPython

After speaking to a number of academics involved with Monte Carlo simulations, I realised many of them resort to creating bash scripts to run a number of python instances of simulation before writing another script to piece the data back together. It turns out this is incredibly simple to do in IPython, and in particular in an IPython Notebook. We take a look at how to run computations in parallel as well as giving a use-case in the creation of Julia fractals.

View comments.

more ...

Network Dynamics with Python and the Gillespie Algorithm: An Epidemic Example

The Stochastic Simulation Algorithm (SSA), or Gillespie algorithm, provides a means to sample directly from the state distribution of a system governed by the master equation. Whilst this methodology has been used for the simulation of chemical reactions for decades, its applicability and utility in the simulation of dynamical processes on networks is not well known. We will look at an implementation the Gillespie Algorithm for an epidemic process on an random network, and consider the implementation issues when using the well known Python package, Numpy.

View comments.

more ...

Interactive Networks with Networkx and D3

Visualisation is undoubtably a tricky business. There are many questions to ask before even starting: What do I want to convey? What tools do I have? Do I have the right data? This is even before considering whether your visualisation might have introduced a bias in some way. We will look at using Networkx and D3 to produce interactive network diagrams to display multiple layers of data. In this brief introduction we will render a simple graph, add some labels and colours and add some basic interaction.

View comments.

more ...