code: def is_log_scale_needed(x_org):
      x_full = np.array(x_org[~pd.isnull(x_org)])
      # first scale on raw data
      x = preprocessing.scale(x_full)
      # second scale on log data
      x_log = preprocessing.scale(np.log(x_full - np.min(x_full) + 1))
  
      # the old approach, let's check how new approach will work
      # original_skew = np.abs(stats.skew(x))
      # log_skew = np.abs(stats.skew(x_log))
      # return log_skew < original_skew
      ########################################################################
      # p is probability of being normal distributions
      k2, p1 = stats.normaltest(x)
      k2, p2 = stats.normaltest(x_log)
  
      return p2 > p1
  
imports: import numpy
  import pandas
  from scipy import stats
  from sklearn import preprocessing
label_desc: Use image node_id 8 for calling the PreprocessingUtils obj's underlying member method code with example usage: obj.is_log_scale_needed(x_org) and returns: unknown