RapidMiner is an environment for machine learning
en.wikipedia.org
en.wikipedia.org
I'd recommend writing your own. You won't really understand this stuff until you can.
Spend some time honing an algorithm and ruthlessly simplifying it until you inherently get it, and could write it in your sleep. Then write it again. Most algorithms can be distilled down to very small snippets of code if you really care.