This project includes the implementation of sevral popular machine learning algorithms, mainly following the notes of coursera course, https://www.coursera.org/course/ntumlone and https://www.coursera.org/course/ntumltwo. In detail, there are the implementation of following algorithms in corresponding folders: 1. PLA: Perceptron Learning Algorithm 2. Kmeans: K-means clustering algorithms 3. CART_DecisionTree: Classification And Regression Tree 4. SVM: Support vector machine (using libsvm, and investigate the kernel function and related quadratic optimization ) 5. RandomForest: based on the CART decision tree 6. Adaboost: Adaptive Boosting with decision stump 7. Neural Network: A three-layer artificial neural network with the back propagation algorithm