I'm in the second year of my mechanical engineering bachelor and I've recently started exploring the field of machine learning online. My question is this: which specific subjects do people learn, and in what order, when they study machine learning in college? Also, which books would you recommend? I'm NOT asking which online courses to take, I just want to know which SUBJECTS you were taught in college. For example, I've been doing a lot of reading lately, and it was only yesterday that I came across discriminative/generative networks, yet it seems important to me.

I'm nearly done with prof. Andrew Ng's course on Coursera, but I feel like I'm missing out on a lot of details and concepts. I'd like to hear which subjects you studied (and perhaps in what order).

  • 1
    $\begingroup$ Variants of this question have been asked many times before. Please consult the references tag (I have added it to your post); for example: (1) stats.stackexchange.com/questions/12386/… (2) stats.stackexchange.com/questions/18973/… (3) stats.stackexchange.com/questions/33197/… (4) stats.stackexchange.com/questions/226911/… $\endgroup$
    – Sycorax
    Aug 29 '16 at 14:56
  • $\begingroup$ I don't think the linked question address the concerns of this one at all. $\endgroup$
    – Firebug
    Aug 29 '16 at 20:51
  • $\begingroup$ No, they don't. There are plenty of posts concerning resources for machine learning. Its no use asking for those, but I am interested which subjects and concepts come along frequently or which are necessary for understanding what's happening in the field. @hxd1011's answer is good, but I was aiming for more subjects at a smaller scale. I'm thinking along the lines of boosting, LSTM's, dense neural nets, etcetera, basically different ways of handling ML problems, as to make my understanding of the field as a whole better. $\endgroup$
    – RdeWolf
    Aug 29 '16 at 21:39
  • 3
    $\begingroup$ @Rdewolf Being closed will stop people answering while its closed but it should not prevent you from editing your question. Note that asking for something in a comment will notify exactly nobody, which is likely why nobody reacted to it before now. $\endgroup$
    – Glen_b
    Aug 31 '16 at 12:04
  • 2
    $\begingroup$ If your new question would be so close to the old one that the current answers will still answer it, edit this one and then flag it to ask if it could be reopened. If your new question is different enough that it could not close as essentially a duplicate of this one (effectively, different enough that these answers don't answer it), then ask a new one. $\endgroup$
    – Glen_b
    Aug 31 '16 at 12:13

Andrew Ng's Coursera course is really basic one. An other similar level but more complete resource is Introduction to statistical learning, and more advanced one Elements of Statistical Learning.

If you really want to go deeper here is my suggestions on the topic

  • Linear algebra / Matrix algebra / Multivariate calculus
  • Probability and statistics
  • Numerical Analysis
  • Data structure and Algorithm
  • Continuous Optimization (super important), must to read book: Convex Optimization
  • $\begingroup$ I agree. These 2 books will cover almost everything you would need as a beginner. How do you rank taking courses vs working on a project, especially if you are limited on time? $\endgroup$
    – alpha_989
    Nov 7 '17 at 18:32
  • $\begingroup$ @alpha_989 depend on what you want. if you want get a phd, then taking a course. if you want to get a job in short time, take a project. $\endgroup$
    – Haitao Du
    Nov 7 '17 at 18:45

Start reading a bit of everything, investigate problems and solutions people propose, see what interests you more. There are some papers comparing different algorithms in some tasks, I find these the most entertaining to read.

I started working with LDA and KNN in college, for example. When I couldn't really achieve my goals with it I moved onto trees and then to kernel methods, which really interest me to this day. All the while I studied a lot on resampling and optimization strategies, evaluation metrics and heuristics, as this has a lot to do with kernel selection in SVMs and other associated methods.

I never touched some really popular topics, like neural networks. If I were to start again, I'd like to have a good understanding of PCA and ICA and, above all, proper cross-validation procedure.


Not the answer you're looking for? Browse other questions tagged or ask your own question.