**Machine Learning in Java**

"I hear and I forget, I see and I remember, I do and I understand."

- Confucius

Most machine learning books are very theoretical. Very few books explain how to use machine learning in practical manner, especially for Java developers. Too much theory makes machine learning boring, and hide the fun to use it. So in this list I will explain key concepts from a perspective of Java developers. "Doing" is the key feature of this list. I will use case studies to explain a set of popular learning algorithm including 1) Supervised learning (Decision Trees, Logistic Regression, SVMs, etc) 2) Unsupervised learning (topic modeling by LDA, clustering by k-means, hidden Markov models, etc.) 3) Deep-learning approaches (Neural Networks).

- Set up Weka
- What is machine learning?
- Machine learning vs. data mining
- Machine learning vs. statistics
- Java machine learning Hello World
- Perceptron Learning Algorithm (PLA)
- k-Nearest Neighbors
- Decision Trees
- Naive Bayes
- Logistic Regression
- Support Vector Machine (SVM)
- Neural Network (Multi-layer perceptron)
- Bayesian Network
- K-means Clustering
- How to handle noise data?
- Collection of machine learning resources

NLP related:

1) LSI

2) Lucene vs. database