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)); }
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)); }