Getting into any of the top 4 is chancy even for exceptional applicants, since there are so many applicants to these schools (I think MIT had around 3000 CS applicants last year - do the math, that's a really low admission rate if they take maybe 100 people?). I think you have a decent chance at top 20 schools and a good chance at top 50 schools, so I would focus at the other schools you have listed there. What's important is research fit, so try to look for programs that are doing research that matches well with your interests and your background. Good luck!
Edit: Having quickly looked over your SoP, something that stands out to me is how little you mention about your research interests. That should be an important part of your SoP. I would suggest that you focus more on your research interests (as well as related research you've already done) - such as what was it you did in surrogate modeling (especially if it relates nicely with what it is you want to research in grad school). What is it in machine learning that you want to research in grad school? There's a lot to machine learning, so being more specific will help. Perhaps you could talk about a specific machine learning problem that you would like to research. Also, you should talk a little more about why you would be a good fit at X university. What is it about the research there that interests you? Are there any professors there that you would want to work with and why? That is what will make your application stand out.