用python實現一些機器學習演算法時是否需要自己寫輪子?

時間 2021-05-07 18:01:35

1樓:ProP

先調包,跑通乙個演算法知道有哪些引數,這些引數改動會有什麼影響;然後閱讀原始碼,有興趣可以手動寫一寫主要的部分,一定要梳理好資料的流程;最後可以自己嘗試的改動一下模型,不管結果好壞,也算自己的一種嘗試。

最好是完全懂數學原理,模型的每個部分都能用數學解釋,這樣改動模型,優化方法就水到渠成了。

2樓:

如果是想要研究演算法的細節,並試圖自己做出優化,那還是自己從零實現一遍比較好。要是只是把機器學習演算法作為實現自己目標的一種工具,那只要學會呼叫相關的包和函式即可。其實絕大部分專業的同學真沒必要自己從頭開始實現,因為學習成本很高,就像你手機玩的很溜,也沒要求你把軟硬體都搞明白一樣。

找到工具,學會使用工具,然後解決自己的問題,就很好。

3樓:slight

個人覺得沒有必要為了熟悉演算法或者訓練python程式設計而自己去實現一些基礎演算法的細節。目標導向或者任務導向,利用各種常用機器學習演算法庫實現你的應用,必要的時候利用基礎演算法庫構建自己特定的機器學習演算法,就我本人的經歷,往往反而更有利於演算法的熟悉與python程式設計能力的提高。

4樓:lcksuper

分場景而論

實際專案中,不需要自己重頭開始實現演算法,因為你寫的不一定比人家好。

實際專案中,應用演算法實現乙個模型的工作可能不是乙個專案中時間佔比很大的工作。更多的在圍繞資料做各種工作。資料清洗和特徵工程佔工作的很大部分。

但是,一定要深度理解演算法的原理。

如果學習的話

可以重頭寫幫助自己理解演算法,既鍛鍊了自己的程式設計能力,又幫助自己深度理解演算法原理以及這個演算法的優缺點。

5樓:新人類

看你的需求了,如果你是想將來搞研究,自己實現以下比如SVM,邏輯回歸這樣的演算法還是很有必要的,如果只是滿足日常的工作需求,sklearn, tensorflow, gensim這些包包都封裝的很好,根據具體業務能夠做到快速反應用什麼東西就足以了

6樓:

如果只是把演算法當成工具,在工作中簡單用用,大可不必。

如果工作內容涉及到演算法的改進,創新等等,那熟悉各個演算法的原理是基本要求了,動手實現一遍對於掌握原理還是有很大幫助的。

另一方面,就看你自己對機器學習演算法的興趣有多濃厚了。

7樓:翟毅飛

額那僅僅是教學,就像數學中的證明或者推導一樣。教學嘛當然是比較細緻的去教學,實際應用中當然偏向與快速開發。當然如果你水平比較高,也可以自己寫乙個演算法。

學習資料結構,用Python的字典實現二叉樹是否合適?

class Node object def init self,data self.data data self.left self.right Nonedef pre order self,fn fn data self.left.pre order fn if self.left self.ri...

為什麼一些linux自帶python,而不是C,C ,java等其他程式語言?

charlary 第一句話對,第二句話就錯了,幾乎所有的linux發行版都有c和c 沒有libc的linux和裸核心基本沒什麼區別 大多數發行版都有jvm 沒有jvm,好像gnome都無法啟動 原因是系統自帶軟體裡有些是依賴 python 的,其實也自帶了 C C runtime 和一些已編譯好的庫...

請推薦一本Python與機器學習的書籍?

宇智波帶土 第一本是 Python在機器學習中的應用 該書利用Python進行資料探勘 機器學習研究的入門資料,該書不是枯燥的介紹機器學習演算法的理論知識,而是以實際的資料集為例,介紹如何使用合適的演算法,借助Python對資料進行分析和挖掘,學習資料中的潛在知識。更詳細內容可參考 宇智波帶土 Py...