有必要自己实现每个机器学习算法吗?

今天上午,小编刷知乎的时候看到一个话题”有没有必要把机器学习算法自己实现一遍?“。出于好奇,看了好多答主的回答,发现赞成有必要的和没必要的都大有人在。

赞成有必要实现的主要有以下几点理由:

  1.  加深对算法的理解。

  2.  锻炼自己的编程能力。

  3.  公司面试的时候是一个加分项。

赞成没必要实现的主要有以下几点理由:

  1.  自己实现的计算效率根本没现成软件包好。

  2.  机器学习理论更重要,懂了理论能调包调参就可以了。

看了别人的回答,下面小编结合自己的学习过程来谈谈我的看法。纯属个人观点,不喜勿喷。

我的看法是对于一些经典的并且在我们编程能力范围内的算法,还是可以实现一边的,比如logistic regression、SVM、K-means等。但机器学习算法好多,有些是超出了我们的编程能力的,对于这些搞懂原理并能熟练使用现成软件包就可以了。

下面给出小编的一些建议。

一、搞懂原理比实现算法重要。

机器学习的本质是数学和统计学的结合,搞懂这些才是王道。我们知道一个模型可能有好多参数,不同参数的设置带来的模型效果可能截然不同,我们只有弄懂了理论原理,才能更好的指导我们选择合适的参数。如果你只是实现了算法,却没有让算法发挥最大的效果,那又有什么意义呢?

二、熟悉掌握一个机器学习软件库。

成熟的软件库一般包含了绝大多数的机器学习算法,并且在实现上使用了许多的数值计算优化技巧。为了实现自己的需求,我们不必重头实现算法,即使你实现了 ,你的计算效率也一定没有软件库的高,所以我们要熟练使用一个软件库。

在机器学习工程师的招聘要求中,熟练掌握一些机器学习库如Sklearn是一项必备的技能。

好了,以上就是小编的看法。

猜你喜欢

转载自blog.csdn.net/qq_30374549/article/details/81262316