code: def make_classification(
      n_samples=100,
      n_features=20,
      n_informative=2,
      n_redundant=2,
      n_repeated=0,
      n_classes=2,
      n_clusters_per_class=2,
      weights=None,
      flip_y=0.01,
      class_sep=1.0,
      hypercube=True,
      shift=0.0,
      scale=1.0,
      shuffle=True,
      random_state=None,
      chunks=None,
  ):
      chunks = da.core.normalize_chunks(chunks, (n_samples, n_features))
      _check_axis_partitioning(chunks, n_features)
  
      if n_classes != 2:
          raise NotImplementedError(
              "n_classes != 2 is not yet supported."
          )
  
      rng = dask_ml.utils.check_random_state(random_state)
  
      X = rng.normal(0, 1, size=(n_samples, n_features), chunks=chunks)
      informative_idx = rng.choice(
          n_features, n_informative, chunks=n_informative
      )
      beta = (rng.random(n_features, chunks=n_features) - 1) * scale
  
      informative_idx, beta = dask.compute(
          informative_idx, beta, scheduler="single-threaded"
      )
  
      z0 = X[:, informative_idx].dot(beta[informative_idx])
      y = rng.random(z0.shape, chunks=chunks[0]) < 1 / (1 + da.exp(-z0))
      y = y.astype(int)
  
      return X, y
  
file_path: dask-ml/dask_ml/datasets.py
imports: import numbers
  from datetime import timedelta
  import dask
  import dask.array
  import dask.dataframe
  import numpy
  import sklearn.datasets
  import sklearn.utils
  import dask_ml.utils
label_desc: Use image node_id 5 for calling a global function with example usage: make_classification(n_samples, n_features, n_informative, n_redundant, n_repeated, n_classes, n_clusters_per_class, weights, flip_y, class_sep, hypercube, shift, scale, shuffle, random_state, chunks) and returns: X,  y