Machine learning techniques are a powerful way to understand data. In an era of data collection and analysis, these techniques are rapidly growing in popularity. Although many undergraduate students shy away from such algorithms, many languages offer comprehensive support for some of the most basic machine learning approaches. The algorithm shown here is a simple support vector machine. However, with Beaker's polyglot design, it is incredibly easy for a developer to modify this algorithm into an artificial neural network while still maintaining the basic organization of training and classifying. A simple, interactive IDE makes it incredibly easy for an inexperienced developer to produce a more complicated learning algorithm.

Instead of building a complicated neural network, I decided to make use of Beaker's multi-language support. One of the best ways to increase the precision and accuracy of a neural network is to optimize the weights of the nodes. Often times, programmers leave these weights randomly initialized and focus on the feedback mechanism for improvement. However, it is well known that using an optimization algorithm to assign the weights will give a significant increase in performance measures. I did not use a neural network in my notebook, but the support vector machine has several parameters that can be optimized in exactly the same way. I decided to implement a genetic algorithm to optimize these parameters, using JavaScript. The data set I used here comes from UCI Machine Learning Repository ( and is composed of data from heart images used to classify a healthy heart from an abnormal one.

Built With

Share this project: