code: def _generate_linear_data(num_samples: int, noise_std: float):
      num_features = int(np.random.choice(20, 1) + 1)
      coefficients = np.random.uniform(-5, 5, num_features)
  
      X = np.random.normal(0, 1, (num_samples, num_features))
      y = np.sum(coefficients * X, axis=1) + np.random.normal(
          0, noise_std, num_samples
      )
  
      return X, y, coefficients
  
file_path: dowhy/tests/gcm/ml/test_autogluon.py
imports: import tempfile
  import numpy
  from flaky import flaky
  from pytest import approx, importorskip, mark
  from sklearn.model_selection import train_test_split
  from dowhy.gcm.causal_mechanisms import AdditiveNoiseModel, ClassifierFCM
  from dowhy.gcm.ml.autogluon import AutoGluonClassifier, AutoGluonRegressor
  from dowhy.gcm.util.general import shape_into_2d
label_desc: Use image node_id 5 for calling a global function with example usage: _generate_linear_data(num_samples, noise_std) and returns: X,  y,  coefficients