How to animate a treeview from scratch?

Do data scientists need to know how to write support vector machine algorithms from scratch?

  • I always feel like I don't know enough about SVM. And I am the kind of person who just loves to get to the bottom of these things. So, I looked at Andrew Ng's CS229 lecture notes to try and understand what it is and what it does. In addition, I also looked into Elements of Statistical Learning chapter 12 to gain more understanding about SVM. These two resources mentioned SVM involved quadratic programming (as well as substituting kernels and blablabla ). I then started skimming through Convex Optimization (EE364a) lecture notes, from which I realized there is a CVX package in Matlab that solves all kinds of convex optimization problems. Later on, I found out that in fact one can write his/her own program from scratch to solve quadratic programming problems. I have seen a lot of data science job postings that require the candidates to know machine learning and be well-versed in python, R , Java. Regarding python and R, we all know how to import library packages or scikit, and use SVM, as I am sure this is how most people do it anyway. As for Java, I am sure there is also a SVM API. But how often would a data scientist be asked to write machine learning algorithms from scratch ? If so, what languages do they use to do it ? Finally, a lot of data science jobs require candidates to know machine learning. How much does one really need to know about machine learning in order to claim that he KNOWS machine learning ? (if someone can give a list of topics, it will be much appreciated ) For example, if someone holds a master degree in statistics and knows about ridge regression, lasso, LDA, FDA, SVM and cross validation, but not other methods like bagging, boosting , random forest...  Does this mean he doesn't have sufficient ML knowledge and hence cannot apply to those data science jobs ? And how in depth (proficient) does one need to know about these machine learning algorithms (e.g. to be able to write their own algorithms from scratch)?

  • Answer:

    There are tonnes of libraries which have several implementations of almost all the machine learning algorithms that exist. So nobody actually writes anything from scratch anymore as it is not a productive way to spend programming time. But it helps to know how an algorithm works internally the knowledge of which is usually obtained by writing these from scratch while learning. For all practical means and purposes you need not know to write an SVM from scratch while all you need to know is what goes in and what comes out.

Vignesh Natarajan at Quora Visit the source

Was this solution helpful to you?

Other answers

There's a difference between being able to code SVM, and being able to use it effectively. Having coded up one from scratch in Python, I'm still working on the latter, so I'm not sure how much programming one might help you for actual data science or analysis. That said, if you're still interested in understanding SVMs on a deeper level, I'd recommend Hamel's excellent book Knowledge Discovery with Support Vector Machines.

Evan Chow

In my opinion, understanding the mathematics behind the algorithms is what makes you knowledgeable. Like everyone else rightly said, no one will waste time on writing things which are already available. Instead of trying to build something which is already present, try to dissect the algorithm and learn the mathematics behind it. That will make all the difference.

Abinaya Mahendiran

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.