Journal Articles
Browse in : |
All
> Journals
> CVu
> 302
(12)
|
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: Local ACCU Meetups
Author: Bob Schmidt
Date: 03 May 2018 17:16:21 +01:00 or Thu, 03 May 2018 17:16:21 +01:00
Summary: Frances Buontempo reports from meetups in Bristol and London.
Body:
Bristol
28th February: ‘Simply the best: optimizing with an evolutionary computing framework’
Chris Simons and I gave a practical workshop in using evolutionary algorithms in Java. I travelled there with Steve Love through the snow and back through more snow. The snow meant only a small handful of people made it.
We started with a brief introduction to evolutionary algorithms, including an overview of the many freely available frameworks for optimization with evolutionary computing. Next, we used the open source Java Class Library for Evolutionary Computing (JCLEC) (http://jclec.sourceforge.net). The attendees got a chance to program with the framework to address three optimization challenges:
- ‘OneMax’, a ‘hello world’-type example for evolutionary algorithms,
- ‘How to program you way out of a paper bag’ by firing cannon balls, and
- The ‘travelling salesman problem’ (or TSP), wherein you must visit everywhere in a list of places, returning where you began and trying to find the shortest route. TSP is like a kata for Machine Learning. TSP-type problems tend to crop up quite a lot.
We didn’t have enough time to go through the last two in detail, but this was useful practice for the session we gave at the ACCU conference. Chris, and a colleague Aurora Ramirez, previously wrote about the framework for Overload if you want to try it out. [1]
London
12th February: ‘.Net Code Craft’
Jason Gorman, Managing Director of Codemanship [2] ran this session. We discussed the five factors that make code more difficult and expensive to change, and explored how we can write code that delivers value today, and leave the door open to delivering more value tomorrow.
We looked at:
- Automated tests, and how they help us make changes safely and economically
- Readability (and why comments are a cop-out)
- Complexity and the ways it hurts us
- Duplication (and how removing it can reveal better designs)
- Dependencies and how to minimise the ‘Ripple Effect’
The presentation included demonstrations using Visual Studio, ReSharper & NUnit.
We had a group of something like 20 people, including several new faces. Having meetups on a variety of different topics pulls in a variety of different people, but we don’t always manage to persuade everyone to join us for a drink afterwards, so didn’t get a chance to get to know the new faces. Jason has spoken to us before a long while ago and always presents well.
29 March: ‘The fantastic four coding patterns of Continuous Delivery (CD)’, followed by ‘An introduction to data science’
The first speaker, Luca Minudel, is a Lean-Agile Coach and Trainer, and founder and CEO at SmHarter.com. He contributed to the adoption of lean and agile practices by Ferrari’s F1 racing team. When he joined Scoured Ferrari F1 racing team in 2006, he was asked to increase the speed of software development while at the same time increasing the reliability and reducing the number of bugs. That sounded like a paradoxical puzzle to him. And he wondered why didn’t he know the solution already, given that he was hired as an expert. This challenge, in a high-pressure fast-paced environment, led him to the find four CD coding patterns, two that are known nowadays, and two that are new. He told us the story of this discovery and the learning, and introduced the four patterns that enabled his team to increase the speed of software development without the need to trade speed for quality or safety.
He talked through how to cope with a version control system that doesn’t support branching and showed how to make safe steps, allowing roll-back in case of trouble. This was a practice run through for his ACCU conference talk, and this is now on the ACCU YouTube channel [3]. Several other talks are up there too, so search for ‘[ACCU2018]’.
The second talk was an introduction to data science/machine learning using python. Shagun Khare gave this session. She finished her Masters in Data Science/Machine Learning at City, University of London recently, so I invited her to do this. Having two talks in one evening was ambitious, but it worked out. She used a Jupyter notebook to work through a handful of algorithms.
This introduction to machine learning considered where it sits in Data Science process, and covered supervised and unsupervised learning. Shagun walked through steps in machine learning:
- splitting data into test and training,
- fitting a model,
- hyperparameter optimisation,
- predict from the model,
- evaluating the predictions.
She gave a code demo using a small dataset, using Anaconda, allowing the audience to play along with the notebook. This is on Github if you want to try it out [4]. The talk covered several common terms and some classification algorithms using the iris dataset, which I used in Visualisation of Multidimensional Data CVu, 29(6):3-5, January 2018. It’s a relatively small dataset of three types of iris flowers, which is often used to show case machine learning algorithms.
I’d love to see other people write up what’s happened at their local groups, or start one if you aren’t near one already.
References
[1] Aurora Ramirez and Chris Simons (2017) ‘Evolutionary Computing Frameworks for Optimisation’: Overload 142 December 2017. https://accu.org/index.php/journals/2444
[2] Codemanship: http://www.codemanship.com
[3] Luca Minundel (2018) https://www.youtube.com/watch?v=rw9I39nUkXI
[4] https://github.com/Shagun8ProductMadness/IntroToMachineLearning
Notes:
More fields may be available via dynamicdata ..