<dependency>
<groupId>org.jblas</groupId>
<artifactId>jblas</artifactId>
<version>1.2.4</version>
</dependency>
DoubleMatrix data = new DoubleMatrix(new double[][]{
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
});
DoubleMatrix mean = data.columnMeans();
DoubleMatrix std = data.columnStdDevs();
data.subiRowVector(mean).diviRowVector(std);
DoubleMatrix covariance = data.transpose().mmul(data).div(data.rows());
Eigen eigen = SymmetricEigen.eigen(covariance);
DoubleMatrix eigenVectors = eigen.getV();
DoubleMatrix eigenValues = eigen.getD();
DoubleMatrix principalComponents = eigenVectors.getColumns(0, K - 1);
import org.jblas.DoubleMatrix;
import org.jblas.Eigen;
import org.jblas.Singular;
import org.jblas.Solve;
public class PCADemo {
public static void main(String[] args) {
DoubleMatrix data = new DoubleMatrix(new double[][]{
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
});
DoubleMatrix mean = data.columnMeans();
DoubleMatrix std = data.columnStdDevs();
data.subiRowVector(mean).diviRowVector(std);
DoubleMatrix covariance = data.transpose().mmul(data).div(data.rows());
Eigen eigen = Eigen.eigen(covariance);
DoubleMatrix eigenVectors = eigen.getV();
DoubleMatrix eigenValues = eigen.getD();
DoubleMatrix principalComponents = eigenVectors.getColumns(0, K - 1);
System.out.println("Principal Components:");
System.out.println(principalComponents);
}
}