About
Universal Java Matrix Package
The Universal Java Matrix Package (UJMP) is an open source Java library that provides sparse and dense matrix classes, as well as a large number of calculations for linear algebra like matrix multiplication or matrix inverse. Operations such as mean, correlation, standard deviation, replacement of missing values or the calculation of mutual information are supported also.
The Universal Java Matrix Package provides various visualization methods, import and export filters for a large number of file formats, and even the possibility to link to JDBC databases. Multi-dimensional matrices as well as generic matrices with a specified object type are supported and very large matrices can be handled even when they do not fit into memory. Find out more and take a look at the feature list or compare it to other Java matrix libraries. We have also done a benchmark for matrix multiplication and matrix transposition which can be found here.
A central concept of UJMP is the separation of interfaces, abstract classes and their implementations, which makes it very easy to exchange the underlying data storage. Thus, a matrix in our framework can be an array of values in main memory, a file on disk or a table in an SQL database. In fact, the actual storage implementation becomes secondary and UJMP can even integrate other matrix libraries such as Jama or Colt, making UJMP’s visualization and import and export filters available to these libraries.
Screenshot
Java Data Mining Package
UJMP is the mathematical back-end of the Java Data Mining Package (JDMP), which is our second open source Java project. While UJMP provides basic operations for processing matrices, JDMP concentrates on “higher-level” objects, such as Samples, DataSets and Algorithms for machine learning, e.g. clustering, classification and optimization. JDMP’s central philosophy is that everything is a matrix (or can be converted into a matrix), which makes it possible to benefit a lot from UJMP’s features. E.g. it becomes feasible to analyze data that does not fit into main memory, since UJMP can link to files on disk or databases. Like UJMP, also JDMP makes use of interfaces and abstract classes to allow for easy integration of other libraries like Weka or Mallet.
Developers Wanted!
We are still seeking for developers to help us improve UJMP and JDMP. The most pressing things right now are documentation and JUnit test cases, but we also need programmers for calculations, import/export filters or improving the GUI. If you would like to participate, please don’t hesitate to contact us!
What’s New
