code: def corrgroups60(display=False, n_points=1_000):
      """Correlated Groups 60
  
      A simulated dataset with tight correlations among distinct groups of features.
      """
  
      # set a constant seed
      old_seed = np.random.seed()
      np.random.seed(0)
  
      # generate dataset with known correlation
      N, M = n_points, 60
  
      # set one coefficient from each group of 3 to 1
      beta = np.zeros(M)
      beta[0:30:3] = 1
  
      # build a correlation matrix with groups of 3 tightly correlated features
      C = np.eye(M)
      for i in range(0, 30, 3):
          C[i, i + 1] = C[i + 1, i] = 0.99
          C[i, i + 2] = C[i + 2, i] = 0.99
          C[i + 1, i + 2] = C[i + 2, i + 1] = 0.99
  
      def f(X):
          return np.matmul(X, beta)
  
      # Make sure the sample correlation is a perfect match
      X_start = np.random.randn(N, M)
      X_centered = X_start - X_start.mean(0)
      Sigma = np.matmul(X_centered.T, X_centered) / X_centered.shape[0]
      W = np.linalg.cholesky(np.linalg.inv(Sigma)).T
      X_white = np.matmul(X_centered, W.T)
      assert (
          np.linalg.norm(
              np.corrcoef(np.matmul(X_centered, W.T).T) - np.eye(M)
          )
          < 1e-6
      )  # ensure this decorrelates the data
  
      # create the final data
      X_final = np.matmul(X_white, np.linalg.cholesky(C).T)
      X = X_final
      y = f(X) + np.random.randn(N) * 1e-2
  
      # restore the previous numpy random seed
      np.random.seed(old_seed)
  
      return pd.DataFrame(X), y
  
file_path: shap/shap/datasets.py
imports: import os
  from urllib.request import urlretrieve
  import numpy
  import pandas
  import sklearn.datasets
  import shap
label_desc: Use image node_id 10 for calling a global function with example usage: corrgroups60(display, n_points) and returns: pd,  y, np