code: def moon_data(N, noise):
      data, _ = make_moons(n_samples=N, shuffle=True, noise=noise)
      X, Y = data[:, 0].reshape(-1, 1), data[:, 1].reshape(-1, 1)
      return X, Y
  
file_path: GPflow/notebooks/tailor/mixture_density_network.pct.py
imports: import matplotlib.pyplot
  import numpy
  from typing import Callable, Optional, Tuple
  import tensorflow
  from gpflow.base import Parameter
  from gpflow.models import BayesianModel, ExternalDataTrainingLossMixin
  from gpflow.utilities import print_summary
  from gpflow.ci_utils import reduce_in_tests
  from gpflow.optimizers import Scipy
  from sklearn.datasets import make_moons
label_desc: Use image node_id 2 for calling a global function with example usage: moon_data(N, noise) and returns: X,  Y