There is also scikit-learn (BSD, with only dependencies on numpy & scipy). It includes various supervised learning algorithms such as:
- SVM based on libsvm and linear with scipy.sparse bindings for wide features datasets
- bayesian methods
- HMMs
- L1 and L1+L2 regularized regression methods aka Lasso and Elastic Net models implemented with algorithms such as LARS and coordinate descent
It also features unsupervised clustering algorithms such as:
- kmeans++
- meanshift
- affinity propagation
And also other tools such as:
- feature extractors for text content (token and char ngrams + hashing vectorizer)
- univariate feature selections
- a simple pipe line tool
- numerous implementations of cross validation strategies
- performance metrics evaluation and ploting (ROC curve, AUC, confusion matrix, ...)
- a grid search utility to perform hyper-parameters tuning using parallel cross validation
- integration with joblib for caching partial results when working in interactive environment (e.g. using ipython)
Each algorithm implementation comes with sample programs demonstrating it's usage either on toy data or real life datasets.
Also, the official source repo is hosted on github so please feel free to contribute bugfixes and improvement using the regular pull request feature for interactive code review.