code: def _mi_high_dim_dd(
      df0: np.ndarray, df1: np.ndarray, weight_f: np.ndarray
  ) -> Tuple[float, np.ndarray]:
      """Computes high dimensional MI for categorical features."""
      mi0, each0 = _entropy_discrete(df0, weight_f)
      mi1, each1 = _entropy_discrete(df1, weight_f)
      mi01, each01 = _entropy_discrete(
          _merge_categorical([df0, df1]), weight_f
      )
      mi = mi0 + mi1 - mi01
      final_mi = max(0.0, mi)
      return final_mi, each0 + each1 - each01
  
imports: import functools
  import itertools
  import math
  from typing import Any, List, Optional, Tuple, Union
  import uuid
  import numpy
  import pandas
  import scipy.special
  import sklearn.neighbors
label_desc: Use image node_id 18 for calling a global function with example usage: _mi_high_dim_dd(df0, df1, weight_f) and returns: final_mi,  unknown