- Which is the most extensible?
- Which is the most efficient in terms of a minimal learning curve while providing a meaningful degree of flexibility and performance?
- Any of these tools really limited in terms of customization and worth avoiding?
Firstly, it may depend vastly on your choice of platforms (e.g. R, Python, or Java). Some of the most common ones:
Secondly, it vastly depends on your purpose while choosing whether to use out of the box platform or not.
The main pro of the 'rapid' platforms is that they are really easy to learn and quick to generate some results. The major con is that not everything is implemented in these platforms. Due to the effort in making a tool very easy to use, customization is left behind. Sometime your may want to build your own system which only use machine learning as a component, you will probably find tools like scikits-learn are easier to adopt.
However, I find it is very handy to use both. Using 'rapid' ones to generate the whole idea and do some experiments and tweaks, e.g. tuning the parameters, and adjusting the categories. And then, use a more customized tool to implement the whole system. E.g. I use both RapidMiner and Scikits-learn together.
Speaking of learning curve, RapidMiner as a tool and Python as a language may highly probable be the best.
Speaking of extensibility, though not very familiar with R, I think R and Python are quite good.
Accordingly to this comparison (look for post written by Martin) Rapidminer is more powerful in terms of implemented mining algorithms and scales better for large datasets.
Being originally a WEKA user my impression is that Rapidminer is also easier to use than WEKA.
I spent some time (a month or so) using RapidMiner at the start of the year; then I added the R plugin, thinking R was just a library of stats functions. Then I learned more R, discovered it also comes with loads of machine learning functions, and realized R is a superset of everything RapidMiner was giving me.
Playing with RapidMiner drag and drop was fun, but when you stop "trying it out" and try to write some real code to beat the market, with real (i.e. huge amounts) of financial data, suddenly all those icons are getting in the way, and it is very slow (to code in, and to run what I'd made).
Learning R is hard work, even for an experienced programmer like myself. I've put a serious amount of effort in studying it over the past 6+ months, but regard the time as a good investment. The C++ integration (Rcpp) is also very important for me: your R script can be embedded in a larger C++ program, or alternatively you can optimize just one bottleneck R function in C++, or link in your C++ legacy code to your R script.
However if your machine learning needs are only a small part of your job, and the data involved is not huge, and you are not really a programmer, then RapidMiner is a good choice.
Which is/are the most extensible?
RapidMiner and R. Besides, RapidMiner offers extensions for seamlessly integrating R and Weka, hence can combine the power and extensibility of all three platforms within RapidMiner. And you can download RapidMiner and its extension for R and Weka for free.
Which is the most efficient in terms of a minimal learning curve while providing a meaningful degree of flexibility and performance?
RapidMiner. RapidMiner provides an easy to use graphical user interface, a built-in online tutorial, built-in wizzards, and many free videos to get you started quickly: http://www.RapidMiner.com/
Any of these tools really limited in terms of customization and worth avoiding?
All mentioned tools can be customized.
The real contenders for a desktop based tool are RapidMiner and R. If you like Windows or Mac, you will like RapidMiner. If you like command line or Linux, you will like R.
I would say RapidMiner has a flatter learning curve. The previous lecturer in the course I teach used R and the students (MBAs) complained about the learning curve. They did not in my class with RapidMiner.
On the server side, you can add Python as a general purpose machine learning language.
RapidMiner also has the RapidAnalytics server, as well as the Radoop extension that uses Hadoop for big data.
In terms of extensibility, you can extend RapidMiner easily using Groovy (Java scripting language) as an operator, or Java itself (as an extension).