Programming is a part of machine learning, but machine learning is much larger than just programming.
In this post you will learn that you do not have to be a programmer to get started in machine learning or find solutions to complex problems.
Programming Machine Learning
Machine learning algorithms are implemented in code. Programmers like implementing algorithms themselves to really understand how an algorithm works. This can also be required to get the most from an algorithm as is tailored for a given problem.
Solving problem is more than an algorithm. For example, there is more work in defining the problem clearly, preparing the data and presenting the results. Even the algorithms can be taken off-the-shelf and applied and tuned for a problem.
Graphical Machine Learning Environments
You can get a long way without touching a line of code. This is due to the great software that is available.
There are three popular machine learning environments you can use that do not require any programming to get started or make great progress on a problem.
- Weka: A graphical machine learning workbench. It provides an explorer that you can use to prepare data, run algorithms and review results. It also provides an experimenter where you can perform the same tasks in a controlled environment and design a batch of algorithm runs that could run for an extended period of time and then review the results. Finally, it also provides a data flow interface where you can plug algorithms together like a flow diagram. Under the covers you can use Weka as a Java library and write programs that make use of the algorithms.
- BigML: A web service where you can upload your data, prepare it and run algorithms on it. It provides clean and easy to use interfaces for configuring algorithms (decision trees) and reviewing the results. The best feature of this service is that it is all in the cloud, meaning that all you need is a web browser to get started. It also provides an API so that if you like it you can build an application around it.
- Orange: Provides a design tool for visual programming allowing you to connect together data preparation, algorithms, and result evaluation together to create machine learning “programs”. Provides over 100 widgets for the environment and also provides a Python API and library for integrating into your application.
Scripting Machine Learning Environments
You do not have to be an excellent programmer to write scripts that glue together components. You may consider yourself a programmer, just not a very confident programmer.
Scripting is an excellent intermediate between a machine learning environment and more programming intensive solutions such as using a code library. In this section you will review two scripting environments for machine learning.
- Scikit-Learn: Scripting environment and library written in python providing machine learning algorithms and data preprocessing. It provides plenty of documentation and examples for getting started.
- Waffles: A collection of command line tools. If orange is a graphical programming environment than waffles is a command line programming environment. Provides tools for preparing and visualizing data, running algorithms and summarizing results. It is written in C++ and provides a API that can be integrated into larger programs.
Don’t Start With Code
Whether you are a programmer or not, I recommend exploring problems in graphical and scripting machine learning environments.
I think here are benefits in not starting with code. That you can learn more, faster by applying the algorithms rather than trying to understand them intimately first. Three benefits include:
- Process: Platforms like WEKA are built around the process of analysis, preparation, algorithm running and result evaluation. They can train you in the discipline of experimentation rather than on how to run an algorithm. This allows you to focus on the path from problem to solution rather than on deeply learning about machine learning.
- Discovery: You can discover data preparation steps you hadn’t thought of and algorithms you hadn’t heard of. You can get explore to a lot more methods than you would if you had to research and implement each in turn or read APIs documentation to figure out what was available.
- Speed: You can try a lot more methods a lot faster when you don’t have to implement everything yourself or write code to realize each experiment.
In this post you learned that you do not need to be a skilled programmer to get started or make progress in the field of machine learning. You learned that there are many options available and that two specific examples are graphical and scripting machine learning environments. These environments can be used to learn machine learning and solve complex problems.