Which type of machine learning to use
With using R, You could look at trees / randomforests. Since you have correlated variables, you could look into Projection pursuit classification trees (R package pptree). And there soon will be a ppforest package. But this is still under  development.  You could also combine randomforest with the package forestFloor to see the curvature of the randomforest and work from there.