Well this is my first blog post and it’s a bit of an odd experience but I’m sure I’ll get used to it in time.
My dissertation project is on artificial immune system algorithms. For those who are not from a computer science background, an algorithm is a set of instructions for a computer to produce a desired outcome. Artificial immune systems represent the human immune system within a digital system, the main applications of this are in computer security, hardware fault detection, anomaly detection and pattern recognition.
My dissertation is focused on Negative Selection, a perceived process in the immune system whereby immature immune cells are presented self anti-gens, those that bind with self are killed in a controlled manner called apoptosis and the remaining immune cells are self tolerant and released into the body.
I’ve managed to build my application with a negative selection algorithm (NSA), that can use R-contiguous or hamming distance for matching.
I wrote the app using C# which turns out to be not the best move for this type of research program as I represent each data feature as a binary string. However C# does not allow boolean values to be converted to 1 and 0 and vice versa. This became a significant issue as I needed the bits to be converted to numerical values (int, double) to do calculations.
Also using the 1999 KDD dataset proved more difficult than initially thought as it uses a range of value types, strings for symbolic attributes, ints and doubles. The KDD is meant to represent network traffic but is overall is a higher level abstraction than I needed. So I had to strip out redundant attributes and convert the remaining attributes to int 1 or 0 representing a binary string using the median value for the attributes as the factor for deciding if its true or false.
Anyway that’s more than enough for a late night first time blog post, I’ll continue to update this blog on my progress with the dissertation. I’ll also continue to post updates after the dissertation is completed relating to my personal projects and any open source projects I become involved in.