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));
        }
예제 #2
0
        /**
         * @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));
        }