Back on 26th August 2016 we drew to a close SAB2016, the 14th international conference of the series on bio-inspiration for robotics and algorithms from more or less any discipline at theory stages, to simulations and empirically applied. For me, nothing can take away my reverberating proud feeling I have for being a part of a diverse, kind and like-minded collection of people with a sheer fascination for nature, paired with the talent and vision to pursue it for the betterment of society and life. I mean, isn’t that the dream!?Continue reading “Bio-Inspired Robotics Conference – SAB2016”
Ever thought what kind of app you would need to survive the Zombie Apocalypse? No, well neither had I until this semester’s session began and we needed a fun project for the final year students to work through in 8 hrs of lab time. This is what I came up with along with the support of the team at Aber Comp Sci.
SETTING SUMMARY – Infection is underway. We’re a few days into the epidemic. The cities are a mix of Continue reading “Building an IoT App for the Zombie Apocalypse”
Box and Whisker Plots or boxplots, are a hugely useful data visualisation tool to clearly compare algorithm configuration performance results (or experiment data with multiple dimensions). However, using Python’s Matplotlib library to implement them suitably for comparisons by groups used to be tough. To make them attractive and clear you had to stitch together documentation and examples and more examples and grids and line colours and axis labels and some very hacky legend use case, etc.. each taken from across the matplotlib site and beyond. So I wrote a couple of scripts to simplify grouped boxplots that can be directly reused..
Here’s the Grouped Boxplot (on left) and Ungrouped Boxplot (on right):
The code to create the plots is below.
Occasionally, you will probably need to combine a set of PDF files into a single PDF file…
LaTeX can do it – But it can be a pain to get the correct appearance and find the correct API parameters for scaling, margins, number of pages per PDF, etc. Below is a quick snippet that should just work.
Occasionally, a PhD research student preparing for their viva will ask “how should I prepare for my PhD viva?”
I recommend as many of the following as you can manage:
The Receptor Density Algorithm (RDA) is an Artificial Immune System (AIS) anomaly detection algorithm modelled upon how T-cell receptors respond to antigen, originally modelled by Owens et al in 2009. A recent small project has been to investigate its applicability as an AIS anomaly classifier for our CARDINAL-Vanilla AIS self-healing architecture.
Github repo | Version 0.1 implementation of RDA in python 2.7.
As my PhD time at Aberystwyth’s Intelligent Robotics research group draws to a close I will be moving my content, code, papers and presentations from http://users.aber.ac.uk/pds7/to this new Wordpress blog and new domain name http://petescully.co.uk.
The last four years have been such a fun time, full of learning, friendships and a developing love-hate relationship with the Welsh countryside and weather! This photo is of our climb up Snowdon, Wales’s tallest mountain at 1000m, with my partner Wikanda Promkhuntong and Tzu Chueng, our kind friend and visiting scholar from Taiwan, back on a beautiful July day in 2013.
It’s also nice to go back over past work, here are some interesting bits of code that I will migrate in the coming weeks:
- The open source — Weka package RSARSubsetEval — feature selection package using rough set theory, for selecting the most informative columns from datasets for supervised learning classifiers.
- The Receptor Density Algorithm — RDA python implementation — for anomaly detection, which is an artificial immune system model algorithm based on a T-cell receptor, originally by Owens et al in 2009 at York.
- The reformatted CSIC 2010 HTTP datasets network security datasets for machine learning algorithms. Specifically for web penetration testing and web application firewalls. We have used them in feature building, distributed system testing and network-based security intrusion detection/ prevention systems (IDS/IPS).
- … and of course details of — CARDINAL-Vanilla — my PhD thesis architecture. It’s an applied proof-of-concept decentralised self-healing architecture for network-based security in industrial control system (ICS) and supervisory control and data acquisition (SCADA) networks. There’s also a Youtube video of an early version of the CARDINAL-E architecture classifying and self-hardening on two workstations reading network traffic packet data.
RSARSubsetEval is an “Attribute Selection Evaluator” algorithm (a term within Weka) that evaluates subsets of features. Evaluators for individual dataset attributes (columns/features) also exist, though naturally most data problems are defined by combinations of multiple factors (attributes), so they tend to be less applicable.
RSARSubsetEval is more widely known as a Feature Selection algorithm, which falls under the Dimensionality Reduction theme of machine learning. Essentially, it tries to reduce the number of dataset attributes (or features) your algorithm is processing. Rough Set Attribute Reduction or the “QuickReduct” algorithm is designed to quickly and measurably find a “core reduct” that leads to a consistent label across all instances. Core Reduct is a term from mathematical Rough Set Theory, a quick summary of how that works can be found in these slides. It selects those attributes that are required (according to the sample dataset instances) to distinguish the instance class labels.
Download Weka Package – RSARSubsetEval for Weka 3.7.x
- Download RSARSubsetEval Plugin – written and maintained by Peter Scully.
- Github Repo for RSARSubsetEval Plugin
- Weka on SourceForge
- Download Weka Software – v3.7.2
- Download Weka User Manual – v3.7.2
- Waikato Uni’s List of Unofficial ML packages for Weka