If you have struggled to understand the way that different Machine Learning (ML) algorithms actually work and what effect their various parameters have on the outcome you will really want to know about MLDemos.
This is a collection of ML algorithms put together in a single package complete with a user interface that lets you create data with different properties simply by "drawing" or "painting" it in 2D. Rather than forcing you to draw each data point the data palette has different subgroupings of data points. So, for example, you can plot a short line of data or a clump or a ring of data. This works really well.
Once you have the sort of data you are interested in you can apply any of the algorithms and see the overall result as a graphical display of the regions of classification.
The important thing to stress is how easy the program is to use and how it can help you gain an intuitive understanding of some complex algorithms. The range of algorithms you can explore is impressive and goes from the classical linear discriminate function, through neural networks and kernel methods. You can adjust many of the parameters to see how the classifiers for example divide up the space with different levels of smoothness. As well as classification there are clustering, regression and optimisation models. There is a full list of methods at the web site.
You can see it in action in the video:
The program is open source and you can download a ready to run Windows, Mac or Linux version. The zip file is complete and you simply unzip it to a convenient location and run mldemos.exe. It uses Qt for the user interface but all of the libraries required are included. You can also download the source code.
A great way to learn about ML algorithms but remember that this is a 2D experience - and you can't get visualizations like this when you move to use the techniques in the n-dimensional real world!
PHP is the topic of this week's round up of blog posts. We have a cheat sheat for upgrading from 5.x to PHP 7, a couple of reports of the improved performance you can expect from doing so and multiple [ ... ]
Members of the IProgrammer team each have their own favorite languages and we try to keep up with all the latest developments. These are the most recent three and as we have nothing to add they are pr [ ... ]