Presentation is loading. Please wait.

Presentation is loading. Please wait.

ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package1 The Universal Java Matrix Package (UJMP) Holger Arndt Technical University of Munich.

Similar presentations


Presentation on theme: "ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package1 The Universal Java Matrix Package (UJMP) Holger Arndt Technical University of Munich."— Presentation transcript:

1 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package1 The Universal Java Matrix Package (UJMP) Holger Arndt Technical University of Munich Department of Computer Science Garching, Germanymail@holger-arndt.comhttp://www.holger-arndt.com Find out more at: http://www.ujmp.org ICML/MLOSS, Haifa, 2010-06-25 Everything is a Matrix! Outline Introduction Comparison of Matrix Libraries for Java Concepts for a Next-Generation Matrix Library Integration of Other Matrix Libraries Calculation Methods Matrix Annotation Automatic Entry Type Conversion Demo Summary and Discussion

2 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package2Introduction Matrix computations essential in various fields of computer science (machine learning, data mining, etc.) Collaborative networks require large sparse adjacency matrices Increasing amount of data But: No direct support for matrix algebra in JDK Matlab or Octave cannot always be used Other libraries have limitations: JAMA, Colt, MTJ, commons-math Online MarketingBio-Medical Data Analysis Collaborative Networks 3 1 5 4 2 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 Why do we need yet another Java matrix library?

3 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package3 Comparison of Matrix Libraries for Java JAMAColtMTJcommons-mathUJMP extendable  dense matrices sparse matrices  2D matrices 3D matrices  4D matrices  matrices > 4D  > 2^31 rows/columns  object entries  generic entries  matrices > RAM  advanced operators  import/export filters  Matlab/Octave/R interface  visualization methods  No single Java matrix library can fulfill all needs! We need a „universal“ matrix package...

4 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package4 Concepts for a Next-Generation Matrix Library Matrix Interface multi-dimensional, dense/sparse, 2^63 rows/columns, various cell types size get/set cell plus, minus multiply, divide transpose min, max, mean variance, std sin, cos, tan select rows/cols get submatrix import/export visualization Function Declarations Abstract Matrix Default Function Implementations Matrix Implementations Data in Memory double[][] int[][] String[][] Data on Disk CSV, TXT Custom Function Implementations Database Tables JDBC Matrix Libraries JAMA ojAlgo Java Libraries The actual implementation of a matrix becomes secondary! (list not complete)

5 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package Integration of Other Matrix Libraries switching to ojAlgo using JAMA Switching to faster libraries for better performance. Example: SVD

6 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package6 Calculation Methods Matrix Calculation Matrix Calculation copy: link: original: Matrix Calculation There are three different „modes“ to perform a calculation.

7 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package7 Matrix Annotation 67575yes15.4%230.87 68761yes20.3%330.53 99764yes12.3%321.45 99752no7.4%732.42 9801yes2.4%643.32 86571yes33.2%313.53 76775no23.4%832.95 765713yes11.5%542.32 66789yes6.5%232.54 88652yes45.6%335.21 product data label for row axis Report June 2009 row1 row2 row3 row4 row5 row6 row7 row8 row9 row10 in stock # of salesproduct idmarginprice [US$] column labelsmatrix label axis label Data requires annotation to be valuable.

8 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package8 Automatic Entry Type Conversion 1 "1.2" 1.2 getAsString(3,1) getAsDouble(3,1) 1l true getAsInt(3,1) getAsLong(3,1) getAsBoolean(3,1) Not all matrices contain numerical data. "9.1" "4.0" "1.9" "0.5" "7.7" "5.7" "3.8" "This" "matrix" "contains" "Strings," "data" "must" "be" "converted" "1.2" Matrix imported from CSV float, double, byte, char, short, int, long, boolean, Date, BigDecimal, BigInteger, String, Object, Supported value types:

9 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package9Demo It is important to visualize data. editor 2D overview additional visualizatio n modules 20GB of data! Example Code:

10 ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package10 Summary and Discussion Summary Extendable architecture Ready for large amounts of data Integration of other libraries Flexible calculation methods Open Source LGPL Online forum for Q&A Future Work: Documentation Developers wanted! The Universal Java Matrix Package: A novel and innovative matrix library for Java. Homepage: http://www.ujmp.org


Download ppt "ICML/MLOSS 2010-06-25Holger Arndt: The Universal Java Matrix Package1 The Universal Java Matrix Package (UJMP) Holger Arndt Technical University of Munich."

Similar presentations


Ads by Google