code: def get_log_likelihood(inputs,data,clust):
      
   
      S = data[0].shape[0] #number of time series
      
      #build a new dataset from the clusters, by combining all clusters together
      X = np.zeros([0,1])
      Y = np.zeros([0,S])
      
      #for each person in the cluster,
      #add their inputs and data to the new dataset
      for p in clust:
          X = np.vstack([X,inputs[p]])
          Y = np.vstack([Y,data[p].T])
          
      #find the loglikelihood. We just add together the LL for each time series.
      #ll=0
      #for s in range(S):
      #    m = GPy.models.GPRegression(X,Y[:,s][:,None])
      #    m.optimize()
      #    ll+=m.log_likelihood()
  
      m = GPy.models.GPRegression(X,Y)
      m.optimize()
      ll=m.log_likelihood()    
      return ll,0
docs: Get the LL of a combined set of clusters, ignoring time series offsets.
      
      Get the log likelihood of a cluster without worrying about the fact
      different time series are offset. We're using it here really for those
      cases in which we only have one cluster to get the loglikelihood of.
      
      arguments:
      inputs -- the 'X's in a list, one item per cluster
      data -- the 'Y's in a list, one item per cluster
      clust -- list of clusters to use
      
      returns a tuple:
      log likelihood and the offset (which is always zero for this model)