def crescent_data(model_type='<STR_LIT>', num_inducing=<NUM_LIT:10>, seed=default_seed, kernel=None, optimize=True, plot=True):
try:import pods<EOL>except ImportError:print('<STR_LIT>')<EOL>data = pods.datasets.crescent_data(seed=seed)<EOL>Y = data['<STR_LIT:Y>']<EOL>Y[Y.flatten()==-<NUM_LIT:1>] = <NUM_LIT:0><EOL>if model_type == '<STR_LIT>':<EOL><INDENT>m = GPy.models.GPClassification(data['<STR_LIT:X>'], Y, kernel=kernel)<EOL><DEDENT>elif model_type == '<STR_LIT>':<EOL><INDENT>m = GPy.models.SparseGPClassification(data['<STR_LIT:X>'], Y, kernel=kernel, num_inducing=num_inducing)<EOL>m['<STR_LIT>'] = <NUM_LIT><EOL><DEDENT>elif model_type == '<STR_LIT>':<EOL><INDENT>m = GPy.models.FITCClassification(data['<STR_LIT:X>'], Y, kernel=kernel, num_inducing=num_inducing)<EOL>m['<STR_LIT>'] = <NUM_LIT><EOL><DEDENT>if optimize:<EOL><INDENT>m.optimize(messages=<NUM_LIT:1>)<EOL><DEDENT>if plot:<EOL><INDENT>m.plot()<EOL><DEDENT>print(m)<EOL>return m<EOL>
Run a Gaussian process classification on the crescent data. The demonstration calls the basic GP classification model and uses EP to approximate the likelihood.

:param model_type: type of model to fit ['Full', 'FITC', 'DTC'].
:param inducing: number of inducing variables (only used for 'FITC' or 'DTC').
:type inducing: int
:param seed: seed value for data generation.
:type seed: int
:param kernel: kernel to use in the model
:type kernel: a GPy kernel