The Use of Java in Machine Learning
Open Source Machine Learning Tools in Java
There are a number of Machine Learning Tools written in Java, but the followings are the most popular with the ML community. These GPL tools are widely adopted for Computer Science courses in Machine Learning at universities around the world (refer to the resources for download links).
- WEKA (Waikato Environment for Knowledge Analysis): This package is by far the best of all Java Machine Learning tools available on the Internet. The majority of methods discussed in this article are all implemented in WEKA. Because it is an ongoing project, expect to see new ML methods being implemented in this API.
- YALE (Yet Another Learning Environment): YALE is an environment for Machine Learning experiments. Experiments can be made up of a large number of arbitrarily nestable operators and their setup is described by XML files. YALE is used for both research and real-world learning tasks. The set of operators in YALE includes:
- ML methods such as support vector machines for regression and classification, decision tree learners, clustering algorithms, and a wrapper to all Weka classifiers (learners) and clusterers.
- Feature selection and generation those are forward selection, backward elimination, and several genetic algorithms.
- Data preprocessing.
- Performance evaluation such as cross-validation and other evaluation schemes, several performance criteria for classification and regression, operators for parameter optimization in enclosed operators or operator chains, and operators for logging and presenting results.
- Flexible operators for data input and output, support of flexible experimental arrangements, and usage of (optional) meta information on data.
- MLJ (Machine Learning Tools in Java): MLJ contains decision tree algorithms such as ID3, C4.5, Naive Bayes, Genetic algorithm, and wrappers for feature selection. WEKA 3 interfaces are in development.
The Philosophical Debate Goes On
Bill Joy, the chief scientist at Sun Microsystems, along with other computer scientists, predicts that the future will be machines dominating humans. Humans will become an endangered species. This is caused by humans trying to accelerate inventions of new technologies and that one day it will turn against us. He warned that the pace of new technology should be slowed down. This comment is from his article at Wired Magazine found here: http://www.wired.com/wired/archive/8.04/joy.html. A comment from a theologian suggests that while the academic community does weigh broader ethical considerations, Silicon Valley has a more narrow point of view. "It's much more about building a company that can go IPO (Initial Public Offering) as fast as possible," noting a Gold Rush mentality that produces a very short-term view of the world.
Do the experts think that machines will ever acquire intelligence? Not so, according to top Physicist and Mathematician Roger Penrose from Cambridge University, UK. Roger Penrose is well known in mathematics and physics circles for his theoretical work on extending the theory of Relativity and combining it with Quantum Physics, leading to what is now known as Quantum Gravity (a special branch of physics). He worked with Stephen Hawking in the field of cosmology in the late 1960s. From his book titled The Emperor's New Mind, he argued that machines will never ever understand the theory of knowledge and existence of reality nor acquire consciousness. As an aside, the mathematics used in AI or Machine Learning is not nearly as complex as the mathematics used in Relativity and Quantum Physics. The kinds of argument that Professor Penrose used in his book are consistent theoretical proofs that are commonly found in mathematical inductions techniques.
I believe that it is best to leave such debate to computer scientists, philosophers, mathematicians, and physicists. The job of a software developer is to produce software applications that benefit human society now.
- http://www.cs.waikato.ac.nz/~ml/weka/index.html (WEKA)
- http://yale.cs.uni-dortmund.de/index.eng.html (YALE)
- http://sourceforge.net/projects/mldev (MLJ)
- http://jcp.org/aboutJava/communityprocess/review/jsr073/index.html (Java Data Mining API—spec)
- http://www.amsta.leeds.ac.uk/~charles/statlog/ (Free Online Book—"Machine Learning, Neural and Statistical Classification")
- http://www.cs.utexas.edu/users/ml/ (Machine Learning Research Group—Texas at Austin)
- http://www.aic.nrl.navy.mil/~aha/research/machine-learning.html (Navy Machine Learning Resources)
- http://www.ai.mit.edu/projects/jmlr/ (Journal of Machine Learning Research)
- http://www.ai.univie.ac.at/oefai/ml/ml-resources.html (Online Machine Learning Resources)
- http://www.ics.uci.edu/~mlearn/Machine-Learning.html (UCI - Machine Learning Home Page)
- http://robotics.stanford.edu/people/nilsson/mlbook.html (Free Online Machine Learning Book)
- http://www.cs.wisc.edu/~shavlik/uwml.html (Machine Learning Research Group—Wisconsin)
- Machine Learning by Tom. M. Mitchell, pub: Mc Graw Hill
- Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations by Ian H. Witten and Eibe Frank, pub: Morgan Kaufman.
- Learning and Soft Computing : Support Vector Machines, Neural Networks, and Fuzzy Logic Models by Vojislav Kecman, pub: MIT Press.
- Neuro-Fuzzy and Soft-Computing : A Computational Approach to Learning and Machine Intelligence by J.S.R Jang, C.T Sun and E. Mizutani, pub: Prentice Hall.
- Principles of Data Mining (Adaptive Computation and Machine Learning), by David J. Hand, Heikki Mannila and Padhraic Smyth, pub: MIT Press.
- An Introduction to Support Vector Machines and Other Kernel-based Learning Methods, by Nello Cristianini and John Shawe-Taylor, pub: Cambridge University Press.
- Bioinformatics: The Machine Learning Approach, (Adaptive Computation and Machine Learning) 2nd Edition, by Pierre Baldi, Soren Brunak and Sren Brunak, pub: MIT Press.
About the Author
Sione Palu has developed software for publishing systems, imaging, Web applications, amd symbolic computer algebra systems for secondary education. Palu graduated from the University of Auckland, New Zealand, with a science degree (B.Sc.) in mathematics and computing. His interests involve the application of Java and mathematics in the fields of mathematical modelling and simulations, symbolic AI and soft-computing, numerical analysis, image processing, wavelets, digital signal processing, control systems and computational finance.
Page 4 of 4