public static double I(int C[][],int j,int k,int Ncount){
  double N=(double)Ncount;
  double N_j=Math.max(C[j][j],0.0001);
  double N_k=Math.max(C[k][k],0.0001);
  double p_5=(N - N_j);
  double p_6=(N - N_k);
  double p_7=(N - (N_j + N_k));
  return 1.0 / N * (-p_5 * Math.log(p_5) - p_6 * Math.log(p_6) + p_7 * Math.log(p_7) + N * Math.log(N));
}

public static double I ( int C [ ] [ ] , int j , int k , int Ncount ) { double N = ( double ) Ncount ; double N_j = Math . max ( C [ j ] [ j ] , 0.0001 ) ; double N_k = Math . max ( C [ k ] [ k ] , 0.0001 ) ; double p_5 = ( N - N_j ) ; double p_6 = ( N - N_k ) ; double p_7 = ( N - ( N_j + N_k ) ) ; return 1.0 / N * ( - p_5 * Math . log ( p_5 ) - p_6 * Math . log ( p_6 ) + p_7 * Math . log ( p_7 ) + N * Math . log ( N ) ) ; }
i - mutual information i ( y_j ; y_k ) . multi - label only - - count version
