1. A method of determining a relationship between input data and one or more conditions comprising the steps of: receiving input data categorised into one or more predetermined classes of condition; training an artificial neural network with the input data, the artificial neural network comprising an input layer having one or more input nodes arranged to receive input data; a hidden layer comprising two or more hidden nodes, the nodes of the hidden layer being connected to the one or more nodes of the input layer by connections of adjustable weight; and, an output layer having an output node arranged to output data related to the one or more conditions, the output node being connected to the nodes of the hidden layer by connections of adjustable weight; determining relationships between the input data and the one or more conditions wherein the artificial neural network has a constrained architecture in which (i) the number of hidden nodes within the hidden layer is constrained; and, (ii) the initial weights of the connections between nodes are restricted and wherein the input data comprises data pairs, each data pair being categorised into the one or more conditions and comprising a parameter and associated parameter value, the training and determining steps comprising: (i) selecting a parameter within the input data, training the artificial neural network with corresponding parameter values and recording artificial neural network performance; (ii) repeating for each parameter within the input data; (iii) determining the best performing parameter in the input data; (iv) repeating steps (i) to (iii), each repetition adding one of the remaining parameters to the best performing combination of parameters, until artificial neural network performance is not improved.