public static double getBICValue(Array2DRowRealMatrix mat) { double num = (double)0f; EigenDecomposition eigenDecomposition = new EigenDecomposition(new Covariance(mat).getCovarianceMatrix()); double[] realEigenvalues = eigenDecomposition.getRealEigenvalues(); for (int i = 0; i < realEigenvalues.Length; i++) { num += java.lang.Math.log(realEigenvalues[i]); } return(num * (double)(mat.getRowDimension() / 2)); }
/** * @param mat * A matrix with feature vectors as rows. * @return Returns the BICValue of the Gaussian model that approximates the * the feature vectors data samples */ public static double GetBICValue(Array2DRowRealMatrix mat) { double ret = 0; EigenDecomposition ed = new EigenDecomposition(new Covariance(mat).getCovarianceMatrix()); double[] re = ed.getRealEigenvalues(); for (int i = 0; i < re.Length; i++) { ret += Math.Log(re[i]); } return(ret * (mat.getRowDimension() / 2)); }