UNCW Students, Genetic Algorithms, and Sea Ice
I have started messing around again with Genetic Algorithms (GA) for predicting time series data. Way back when, I had a wonderful undergrad student, Chelsea Hopkins, do a departmental honors project about using a GA to predict beach erosion in New Zealand. In those days, the GA had to be coded up in Matlab, as the GA approach was relatively new and the Matlab sharing environment was less than friendly. Chelsea succeeded wonderfully (coding up such a complicated model in Matlab as a first modeling experience was not trivial). For interested readers, using a GA to make time series predictions, was first reported here. I had another wonderful undergrad, Kurt Baker, who advanced the code that Chelsea made, to account for spatial interactions so that predictions could be made in space-time systems. This led to a paper (link) with another wonderful undergrad, Derek Grimes, along with an outstanding MS student of mine, Nick Cortale, where we collected our own beach data and made predictions of shoreline change in space-time. The primary lesson here - we have epic students at UNCW! The secondary lesson, the GA work is fun.
Well now, of course, Python has a super fast and (kinda) friendly tool for making genetic algorithms. This new tool is called DEAP. I was messing around with DEAP, looking for a cool time series to make predictions with, when in walked our new Assistant Professor, Dr. Till Wagner, an expert in high latitude ice/climate dynamics. He mentioned a provocative data set that tracks the minimum extent of sea ice in the Arctic each year and how every summer (N. Hem), folks submit predictions as to what that year’s coming minimum sea ice coverage will be. Sounds like a job for the GA so I’ve decided to use Till’s knowledge and the DEAP package to see if we can make a useful prediction of sea ice extent for the summer of 2018, and see what can be learned about sea ice dynamics.
I’m not going to go into details here about the GA procedure, the linked paper above lays out the goods. My first stab at making a prediction required getting my hands on the sea ice minimum data, which Till supplied. Then I used the GA to find a map function that predicts the sea ice extent one year ahead as X(t+1) = f(C,X(t),X(t-1),X(t-2),X(t-3)) - so the GA searches the space of possibilities for the ‘f’ (and C can be any constant between 0 and 1). Doing this blindly, what typically happens, as you’ll see below, is that the GA will zero in on the longer time scale trend, with some associated noisy short time scale stuff. The plot below shows the data in black and the GA prediciton in red. Next post, I’ll take another step and either add more stuff that can go into the ‘f’ (like forcings) or use the GA on the residual left from the first prediction. Stay tuned…