`robocode-svm` is a script to demonstrate Support Vector Machine (SVM) classification on outcomes of the battles of Robocode.
`robocode-svm` is a script to demonstrate Support Vector Machine (SVM) classification on outcomes of the battles of Robocode. You can check the original assignment tht led to this work [here](https://github.com/delmadord/robocode_svm/blob/master/extras/assignment.pdf).
# Installation
The script runs under Linux and requires `robocode`, `svm-scale`, `svm-train` and `svm-predict` executables located in the `PATH`. On Arch Linux (or it's derivative, like i.e. Manjaro), this can be achieved by installing [libsvm](https://aur.archlinux.org/packages/libsvm/) and [robocode](https://aur.archlinux.org/packages/robocode/) from AUR (if enabled) by following command (or equivalent)
@ -23,6 +23,13 @@ USAGE: robocode-svm --battle x y [alpha]
* [2D visualisation](https://github.com/delmadord/robocode_svm/blob/master/extras/visualize2D.png) **sample** - the *alpha* parameter (initial gun orientation) was omitted.
# Details
The robots on test are **sample.Corners**(starting in center) and **sample.TrackFire**(roaming). The *gun cooling rate* is set to **0.07**. These were obtained by experimenting and provide great outcomes on the battlefied, that can be classified easily.
## SVM kernel parameters
The SVM type used is **C-SVC** (multi-class classification), with the **radial babsis** kernel. The *cost* parameter C is **10** and the *sigma* parameter is **2**. You can find more details about these at [libsvm home](https://github.com/cjlin1/libsvm).
## 2D visualisation
When the third parameter (initial gun orientation) of the roaming robot is omitted, we can generate *sample* visualisation of the result of this classification. Our experiments were indicating, that this parameter has low (about 2%) significance on the output of the battle.