Cluster, classify, regress: a general method for learning discontinuous functions

This paper presents a method for solving the supervised learning problem in which the output is highly nonlinear and discontinuous. It is proposed to solve this problem in three stages: (i) cluster the pairs of input-output data points, resulting
in a label for each point; (ii) classify the data, where the corresponding label is the output; and finally (iii) perform one separate regression for each class,
where the training data corresponds to the subset of the original input-output pairs which have that label according to the classifier. It has not yet been proposed to
combine these 3 fundamental building blocks of machine learning in this simple and powerful fashion. This can be viewed as a form of deep learning, where any
of the intermediate layers can itself be deep. The utility and robustness of the methodology is illustrated on some toy problems.

Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.


Prerequisites
Python 3.7
Scikit-learn
Matplotlib
Numpy
Scipy
Keras
Tensorflow


Optional packages
MATLAB 2015 upwards (for data visualisation)


Installing
please visit https://www.anaconda.com/distribution/ on how to obtain Anaconda-spyder
For all the prerequesites a Pip install --package-- from the Anaconda terminal will work


Running the Numerical Experiment
Locate the Numerical Experiment subfolder
Run the scripts in each subfolder of Numerical Experiment *number* termed Num*number*.py

For example to run NUM1.py Numerical Experiment 1 in the paper locate, 
C:\*your directory\NeurIPS_paper\Numerical Experiment\Numerical experiment 1

Manuscript
The pdf of the submitted paper is ccr_nips_v2

Author
Dr Clement Etienam- Postdoctoral Research Associate, School of Mathematics, University of Manchester 


Acknowledgments
This work is supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research (ASCR) Scientific Discovery through Advanced
Computing (SciDAC) project on Advanced Tokamak Modelling (AToM), under field work proposal number ERKJ123.