示例#1
0
        private float CalcMcc(NDArray cmatArr)
        {
            var n      = cmatArr.Sum();
            var x      = cmatArr.Sum(1);
            var y      = cmatArr.Sum(0);
            var cov_xx = nd.Sum(x * (n - x)).AsScalar <float>();
            var cov_yy = nd.Sum(y * (n - y)).AsScalar <float>();

            if (cov_xx == 0 || cov_yy == 0)
            {
                return(float.NaN);
            }

            var i      = cmatArr.Diag();
            var cov_xy = nd.Sum(i * n - x * y).Sum();

            return((float)System.Math.Pow(cov_xy / (cov_xx * cov_yy), 0.5));
        }
示例#2
0
        private float CalcMcc(NDArray cmatArr)
        {
            var cmat   = cmatArr.AsNumpy();
            var n      = cmat.sum();
            var x      = cmat.sum(1);
            var y      = cmat.sum(0);
            var cov_xx = np.sum(x * (n - x)).Data <float>()[0];
            var cov_yy = np.sum(y * (n - y)).Data <float>()[0];

            if (cov_xx == 0 || cov_yy == 0)
            {
                return(float.NaN);
            }

            var i      = cmatArr.Diag().AsNumpy();
            var cov_xy = np.sum(i * n - x * y);

            return(np.power(cov_xy / (cov_xx * cov_yy), 0.5));
        }