Sunday, February 9, 2020

Buku Belajar Machine Learning dengan Java-Library Matrix Array di Java

Sinopsis

Kalau kalian sedang mencari pustaka/library yang cukup ringan untuk mengolah data Array/Matrix di Java maka JAMA perlu kalian pertimbangkan karena lumayan cukup sederhana/simple dalam penggunaaanya selain itu sudah tersedia beberapa function dasar yang berkenaan dengan Array/Matrix seperti dilansir dari https://math.nist.gov/javanumerics/jama/

Object Manipulation    
1.    constructors
2.    set elements
3.    get elements
4.    copy
5.    clone

Elementary Operations    
1.    addition
2.    subtraction
3.    multiplication
4.    scalar multiplication
5.    element-wise multiplication
6.    element-wise division
7.    unary minus
8.    transpose
9.    norm

Decompositions    
1.    Cholesky
2.    LU
3.    QR
4.    SVD
5.    symmetric eigenvalue
6.    nonsymmetric eigenvalue

Equation Solution    
1.    nonsingular systems
2.    least squares

Derived Quantities    
1.    condition number
2.    determinant
3.    rank
4.    inverse
5.    pseudoinverse

JAMA bekerja dengan type data double agar bisa menerima input data yang banyak bekerja dalam format double.  Lagian kalau kalian membuat sendiri library selain lama dan menguras banyak pikiran, belum lagi membuat dokumentasinya, makin tambah banyak kerjaan saja. Setelah kalian download .*jar nya yang sekarang masih versi 1.0.3

Buku Belajar Machine Learning dengan Java-Library Matrix Array di Java

Tempatkan saja di project mu

Buku Belajar Machine Learning dengan Java-Library Matrix Array di Java

Misalkan untuk perkalian antar matrix seperti berikut
$$A=
\begin{pmatrix}
   1 & 4 & 8\\
   5 & 8 & 10\\
\end{pmatrix}
$$
$$
B=
\begin{pmatrix}
   8 & 6\\
   9 & 2\\
   5 & 13\\
\end{pmatrix}
$$
Maka perkalian antar matrix \(C = A*B\) menghasilkan
$$
C=
\begin{pmatrix}
  84 & 118\\
 162 & 176\\
\end{pmatrix}
$$

Kalian bisa coba kodenya sebagai berikut


import Jama.Matrix;

/**
 *
 * @author mulkan.ms@gmail.com
 */
public class DemoJama {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Matrix A = new Matrix(new double[][]{
                                            {1,4,8},
                                            {5,8,10}
                                            });
        
        Matrix B = new Matrix(new double[][]{
                                            {8,6},
                                            {9,2},
                                            {5,13}
                                            });
        
        Matrix C = A.times(B); //perkalian antar matrix
        int endl = 0;
        
    }
    
}


Buku Belajar Machine Learning dengan Java-Library Matrix Array di Java

Kalian coba saja dengan operasi yang lainnya. Misalkan
Misalkan contoh lainnya
$$3x+4y=106$$
$$5x+6y=164$$
persamaan diatas diubah menjadi

$$
\begin{pmatrix}
  3 & 4\\
 5 & 6\\
\end{pmatrix}
*
\begin{pmatrix}
  x\\
  y\\
\end{pmatrix}
=
\begin{pmatrix}
  106\\
  164\\
\end{pmatrix}
$$

sesuai dengan rumus persamaan \(A*X=B\), maka \(X=invers(A)*B\), maka \(X\) didapatkan nilai
$$ X=
\begin{pmatrix}
  10\\
  19\\
\end{pmatrix}
$$


import Jama.Matrix;

/**
 *
 * @author mulkan.ms@gmail.com
 */
public class DemoJama {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Matrix A = new Matrix(new double[][]{{3,4},{5,6}});
        Matrix B = new Matrix(new double[][]{{106},{164}});
        Matrix X =  A.inverse().times(B);
        
        int endl = 0;
        
    }
   
}


Buku Belajar Machine Learning dengan Java-Library Matrix Array di Java

No comments:

Post a Comment