class_docstr: Class for the Diffusion Kurtosis Model
      
code: def fit(self, data, mask=None):
      data_thres = np.maximum(data, self.min_signal)
      if self.is_multi_method:
          return self.multi_fit(data_thres, mask=mask)
  
      params, extra = self.fit_method(
          self.design_matrix, data_thres, *self.args, **self.kwargs
      )
      return DiffusionKurtosisFit(self, params)
  
imports: import numpy
  import warnings
  import scipy.optimize
  import dipy.core.sphere
  from dipy.reconst.multi_voxel import multi_voxel_fit
  from dipy.reconst.dti import TensorFit, mean_diffusivity, from_lower_triangular, lower_triangular, decompose_tensor, MIN_POSITIVE_SIGNAL, nlls_fit_tensor, restore_fit_tensor
  from dipy.reconst.utils import dki_design_matrix
  from dipy.reconst.recspeed import local_maxima
  from dipy.reconst.base import ReconstModel
  from dipy.core.ndindex import ndindex
  from dipy.core.geometry import sphere2cart, cart2sphere, perpendicular_directions
  from dipy.core.optimize import PositiveDefiniteLeastSquares
  from dipy.data import get_sphere, get_fnames, load_sdp_constraints
  from dipy.reconst.vec_val_sum import vec_val_vect
  from dipy.core.gradients import check_multi_b
label_desc: Use image node_id 2 for calling the DiffusionKurtosisModel obj's underlying member method code with example usage: obj.fit(data, mask) and returns: DiffusionKurtosisFit, self