有必要自己實現每個機器學習算法嗎?

今天上午,小編刷知乎的時候看到一個話題”有沒有必要把機器學習算法自己實現一遍?“。出於好奇,看了好多答主的回答,發現贊成有必要的和沒必要的都大有人在。

贊成有必要實現的主要有以下幾點理由:

  1.  加深對算法的理解。

  2.  鍛鍊自己的編程能力。

  3.  公司面試的時候是一個加分項。

贊成沒必要實現的主要有以下幾點理由:

  1.  自己實現的計算效率根本沒現成軟件包好。

  2.  機器學習理論更重要,懂了理論能調包調參就可以了。

看了別人的回答,下面小編結合自己的學習過程來談談我的看法。純屬個人觀點,不喜勿噴。

我的看法是對於一些經典的並且在我們編程能力範圍內的算法,還是可以實現一邊的,比如logistic regression、SVM、K-means等。但機器學習算法好多,有些是超出了我們的編程能力的,對於這些搞懂原理並能熟練使用現成軟件包就可以了。

下面給出小編的一些建議。

一、搞懂原理比實現算法重要。

機器學習的本質是數學和統計學的結合,搞懂這些纔是王道。我們知道一個模型可能有好多參數,不同參數的設置帶來的模型效果可能截然不同,我們只有弄懂了理論原理,才能更好的指導我們選擇合適的參數。如果你只是實現了算法,卻沒有讓算法發揮最大的效果,那又有什麼意義呢?

二、熟悉掌握一個機器學習軟件庫。

成熟的軟件庫一般包含了絕大多數的機器學習算法,並且在實現上使用了許多的數值計算優化技巧。爲了實現自己的需求,我們不必重頭實現算法,即使你實現了 ,你的計算效率也一定沒有軟件庫的高,所以我們要熟練使用一個軟件庫。

在機器學習工程師的招聘要求中,熟練掌握一些機器學習庫如Sklearn是一項必備的技能。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章