Using the appropriate machine learning algorithm
There are not an appropiate algorithm for each problem, you must to research and compare results between your algorithms or techniques with an error measure (MSE, etc.).

In general, machine learning algorithms are empiric models (approximated functions). There are arised from the problem itself and a set of suppositions with no revealing the hidden model (many of them, are non-linear problems).

First of all, is necessary to be careful with the variables in the input and output layer, this can be categorical, symbolic or numeric (best case), and you have to model your own representation to preserve some features of interest (topology, etc.)

I will recommend you first of all, try with a multiple linear regression and explore the eventual correlations between variables to find any linear dependence, before do something.

Its a very good practice, normalize the numerical data in the training process, to get a well fitted bias.

Then, for instance, you could try with a multilayer feed forward neural network or SVD o fuzzy inference system.

I understand the machine learning problem as a research with a set of methods to get a good explanation for a given problem, and improvements on that methods.