code: def make_counts(
      n_samples=1000,
      n_features=100,
      n_informative=2,
      scale=1.0,
      chunks=100,
      random_state=None,
  ):
      
      rng = dask_ml.utils.check_random_state(random_state)
  
      X = rng.normal(0, 1, size=(n_samples, n_features), chunks=(chunks, n_features))
      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)
  
      z0 = X[:, informative_idx].dot(beta[informative_idx])
      rate = da.exp(z0)
      y = rng.poisson(rate, size=1, chunks=(chunks,))
      return X, y
docs: Generate a dummy dataset for modeling count data.
  
      Parameters
      ----------
      n_samples : int
          number of rows in the output array
      n_features : int
          number of columns (features) in the output array
      n_informative : int
          number of features that are correlated with the outcome
      scale : float
          Scale the true coefficient array by this
      chunks : int
          Number of rows per dask array block.
      random_state : int, RandomState instance or None (default)
          Determines random number generation for dataset creation. Pass an int
          for reproducible output across multiple function calls.
          See :term:`Glossary <random_state>`.
  
      Returns
      -------
      X : dask.array, size ``(n_samples, n_features)``
      y : dask.array, size ``(n_samples,)``
          array of non-negative integer-valued data
  
      Examples
      --------
      >>> X, y = make_counts()