回覆列表
-
1 # ScottNano
-
2 # 高盛特邀首席分析師
直接用python的庫,比如sklearn
matlab是用於計算的,太全、太偏數學,當然可以做機器學習,但太笨重了。
c++太底層了,如果你是程式設計高手,並且你是做機器學習的,你才能在較長的時間完成你的任務。並且由於c++本身太銳利,新手寫的程式都不穩定,除非你有15年以上的工業c程式設計師,否則不推薦。另外,sklearn底層就是呼叫的numpy庫,這個庫本身就是c++寫出來的,效率很好的
-
3 # 編碼之道
這個主要取決於你學它的目的,我認為主要分兩種情況,一種是做學術研究,另一種是工程應用,下面分別說明。
對於做學術研究來說,不但要理解機器學習中各種演算法的原理,為了有更進一步的發展,往往還需要能獨立進行數學推理,這時候為了更深刻的理解並應用演算法,自己程式設計實現這些演算法就是一種很好的學習途徑,比如說對於在校的研究生來說,如果能自己動手編寫這些演算法,不但會加深對理論的理解,還會增加實踐經驗。對於自己實現這些演算法,程式語言的首選是C/C++。
對於做工程應用來說,並不需要對各種演算法有非常深刻的理解,只要理解他們的原理和工作機制就行,然後如果有現成的庫,那就更好了,沒必須所有東西都自己實現。目前的程式語言中,對機器學習支援比較好的是Matlab和Python,但是考慮到版權和費用問題,還是推薦使用Python,畢竟是一個開源專案,而且有很多支援機器學習的第三方庫,比如PyTorch,TensorFlow 等。雖然Matlab功能強大,但是正版價格不菲。
總之,如果是學生,想要向學術方向發展,那麼就選擇C/C++自己實現這些演算法;如果是做工程,直接使用Python吧,它是目前最適合做人工智慧開發的語言之一。
語言的側重點不同,matlab或者說python傾向於模型訓練、科學實驗,而C++由於其效能較好、開發複雜度較高,適合做工程化,用於模型預測