code: def _init_parameters_random(self, X_bin):
          
  
          _, n_features = X_bin.shape
  
          # The parameter class_log_prior_ has shape (2,). The values represent
          # 'match' and 'non-match'.
          rand_vals = np.random.rand(2)
          class_prior = rand_vals / np.sum(rand_vals)
  
          # make empty array of feature log probs
          # dimensions 2xn_features
          feature_prob = np.zeros((2, n_features))
  
          feat_i = 0
  
          for i, bin in enumerate(self._binarizers):
  
              bin_len = bin.classes_.shape[0]
  
              rand_vals_0 = np.random.rand(bin_len)
              feature_prob[0, feat_i:feat_i + bin_len] = \
                  rand_vals_0 / np.sum(rand_vals_0)
  
              rand_vals_1 = np.random.rand(bin_len)
              feature_prob[1, feat_i:feat_i + bin_len] = \
                  rand_vals_1 / np.sum(rand_vals_1)
  
              feat_i += bin_len
  
          return np.log(class_prior), np.log(feature_prob)
docs: Initialise parameters for unsupervised learning.