Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. Integer, floating point, and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK and ATLAS libraries. A delayed evaluation approach, based on template meta-programming, is used (during compile time) to combine several operations into one and reduce or eliminate the need for temporaries.
SHOGUN is a machine learning toolbox whose focus is on large scale kernel methods and especially on Support Vector Machines (SVM). It provides a generic SVM object interfacing to several different SVM implementations, all making use of the same underlying, efficient kernel implementations. Apart from SVMs and regression, SHOGUN also features a number of linear methods like Linear Discriminant Analysis (LDA), Linear Programming Machine (LPM), (Kernel) Perceptrons, and algorithms to train hidden Markov models. SHOGUN can be used from within C++, Matlab, R, Octave, and Python.
scikits.learn is a Python module that integrates classic machine learning algorithms in the tightly-knit world of scientific Python packages. It aims to provide simple and efficient solutions to learning problems that are accessible to everybody and reusable in various contexts: machine-learning as a versatile tool for science and engineering.
Thinknowlogy is grammar-based software, designed to utilize the Natural Laws of Intelligence in grammar, in order to create intelligence through natural language in software. This is demonstrated by programming in natural language, reasoning in natural language and drawing conclusions (more detailed than scientific solutions), making assumptions (with self-adjusting level of uncertainty), asking questions (about gaps in the knowledge), and detecting conflicts in the knowledge. It builds semantics autonomously (with no vocabularies or words lists), detecting some cases of semantic ambiguity. It is multi-grammar, proving that Natural Laws of Intelligence are universal.
Milk is a machine learning toolkit in Python. Its focus is on supervised classification with several classifiers available: SVMs (based on libsvm), k-NN, random forests, and decision trees. It also performs feature selection. These classifiers can be combined in many ways to form different classification systems. For unsupervised learning, milk supports k-means clustering and affinity propagation.
MyMediaLite is a lightweight, multi-purpose library of recommender system algorithms. It addresses the two most common scenarios in collaborative filtering: rating prediction (e.g. on a scale of 1 to 5 stars), and item prediction from implicit feedback (e.g. from clicks or purchase actions). It contains dozens of recommender engines, including state-of-the-art matrix factorization methods. It also supports real-time updates to the recommender engines, storing engines to disk and reloading them again, and several evaluation measures to compare the accuracy of different recommender system methods. Three command-line programs that offer most of the functionality contained in the library are included.
Fuzzy machine learning framework is a library and a GUI front-end for machine learning using intuitionistic fuzzy data. The approach is based on the intuitionistic fuzzy sets and the possibility theory. Further characteristics are fuzzy features and classes; numeric, enumeration features and features based on linguistic variables; user-defined features; derived and evaluated features; classifiers as features for building hierarchical systems; automatic refinement in case of dependent features; incremental learning; fuzzy control language support; object-oriented software design with extensible objects and automatic garbage collection; generic data base support through ODBC; text I/O and HTML output; an advanced graphical user interface based on GTK+; and examples of use.
K-tree provides a scalable approach to clustering by combining the B+-tree and k-means algorithms. Clustering can be used to solve problems in signal processing, machine learning, and other contexts. It has recently been used to solve document clustering problems on the Wikipedia collection.