code: def make_friedman3(n_samples=100, noise=0.0, random_state=None):
      """Generate the "Friedman \#3" regression problem
  
      This dataset is described in Friedman [1] and Breiman [2].
  
      Inputs `X` are 4 independent features uniformly distributed on the
      intervals::
  
          0 <= X[:, 0] <= 100,
          40 * pi <= X[:, 1] <= 560 * pi,
          0 <= X[:, 2] <= 1,
          1 <= X[:, 3] <= 11.
  
      The output `y` is created according to the formula::
  
          y(X) = arctan((X[:, 1] * X[:, 2] - 1 / (X[:, 1] * X[:, 3])) \
  / X[:, 0]) + noise * N(0, 1).
  
      Read more in the :ref:`User Guide <sample_generators>`.
  
      Parameters
      ----------
      n_samples : int, optional (default=100)
          The number of samples.
  
      noise : float, optional (default=0.0)
          The standard deviation of the gaussian noise applied to the output.
  
      random_state : int, RandomState instance or None, optional (default=None)
          If int, random_state is the seed used by the random number generator;
          If RandomState instance, random_state is the random number generator;
          If None, the random number generator is the RandomState instance used
          by `np.random`.
  
      Returns
      -------
      X : array of shape [n_samples, 4]
          The input samples.
  
      y : array of shape [n_samples]
          The output values.
  
      References
      ----------
      .. [1] J. Friedman, "Multivariate adaptive regression splines", The Annals
             of Statistics 19 (1), pages 1-67, 1991.
  
      .. [2] L. Breiman, "Bagging predictors", Machine Learning 24,
             pages 123-140, 1996.
      """
      generator = check_random_state(random_state)
  
      X = generator.rand(n_samples, 4)
      X[:, 0] *= 100
      X[:, 1] *= 520 * np.pi
      X[:, 1] += 40 * np.pi
      X[:, 3] *= 10
      X[:, 3] += 1
  
      y = np.arctan(
          (X[:, 1] * X[:, 2] - 1 / (X[:, 1] * X[:, 3])) / X[:, 0]
      ) + noise * generator.randn(n_samples)
  
      return X, y
  
imports: import numbers
  import array
  import numpy
  from scipy import linalg
  import scipy.sparse
  from ..preprocessing import MultiLabelBinarizer
  from ..utils import check_array, check_random_state
  from ..utils import shuffle
  from ..utils.fixes import astype
  from ..utils.random import sample_without_replacement
  from ..externals import six
label_desc: Use image node_id 11 for calling a global function with example usage: make_friedman3(n_samples, noise, random_state) and returns: X,  y