熱線電話:13121318867

登錄
首頁精彩閱讀掌握機器學習技術從這些編程語言和程式庫開始
掌握機器學習技術從這些編程語言和程式庫開始
2016-05-06
收藏

掌握機器學習技術從這些編程語言和程式庫開始

在我們之前分享的文章《一名合格的機器學習工程師需要具備的5項基本技能,你都get了嗎?》收到了讀者的熱烈響應。在這片廣受贊譽的文章當中我們向大家介紹了成為機器學習牛人所需具備的關鍵技能?,F在,我們將來自讀者關于上一篇文章的問題進行匯總,發現其中大家最關心的就是:掌握機器學習技能到底需要學會哪一種編程語言?

這個問題的答案或許會讓你大跌眼鏡——掌握哪一種編程語言都無關緊要!

因為只要你熟悉機器學習庫以及你所使用編程語言的工具,這時候語言本身并不是很重要的問題。不同的編程語言具有各種類型的機器學習程式庫。在選擇編程語言及其工具的時候,你一定要以你在公司中職位的作用以及你正在努力完成的任務為選擇參考對象,這樣才能讓你的工作成效更勝一籌。

R

R語言,是一種專門為統計計算目的所創建的編程語言,R語言在處理大規模數據挖掘、可視化和報告方面的優勢無人能及。你可以輕松的獲取大量的軟件包,這些軟件包可以讓你運用絕大多數的機器學習算法、統計測試以及分析過程。這種編程語言本身具有非常優雅的特性,雖然在表述關系、轉換數據以及在執行并行運算時的句法結構讓人難以捉摸。

從KDNuggets最近發起的一份調查報告當中我們可以看到,盡管Python已經在過去的兩年中積累了很高的人氣,但是R語言仍是2015年度在數據分析、挖掘和數據科學領域內最受歡迎的一種編程語言。

KDNuggets2015年度民眾調查:分析、數據挖掘數據科學任務所用的基本編程語言

MATLAB

由于MATLAB具備非常強悍的計算技術,包括執行復雜的數學表達式、豐富的代數與微積分支持功能、符號計算法以及適用于從數字信號處理到計算生物學等領域的大量工具包,因此MATLAB深受學術機構的青睞。這種語言經常被用來創建新的機器學習算法原型,在某些特定的情況中,可以形成完整的解決方案。這種語言也為商業用途的項目提供大量的許可證,但是仍然值得我們使用這種編程方式,因為它可以大大地節省科研開發的精力。雖然Octave擁有與MATLAB幾乎相近的語法結構,并也可以作為MATLAB的代替工具,但是前者的工具箱數量有限并且其集成開發環境還遠不如后者成熟。

Python

盡管Python是一種多用途的編程和腳本語言,但是仍不能妨礙它俘獲了很多數據科學家和機器學習工程師的芳心。和R語言或者MATLAB不同的是,Python的數據處理和科學計算習慣用語并非建立在語言本身,而是建立在NumPy、SciPy和Pandas擴展包之上,這些擴展包以一種更容易實現的語法結構提供和Python相同功能的編程語言。

scikit-learn, Theano以及TensorFlow這種專業的機器學習程式庫讓你擁有使用分布式計算基礎設施培訓各種機器學習模型的能力。這些程式庫的效率關鍵代碼通常還是通過Python的封裝包或者API插件包,經由C/C++或者由 Fortran編寫而成。

Python生態系統的最大優勢在于它可以簡單地將復雜的端到端的產品或者服務整合到一起,比如使用了Django 或者Flask的網頁應用程序,或者使用了PyQt的桌面應用程序,乃至使用了ROS的代理機器人。

Java

Java是軟件工程師的編程語言之選,因為它可以整潔并持續地執行以目標為導向的編程項目,以及使用JVM系統的獨立平臺。為了清晰性和可靠性,它犧牲了簡潔和靈活度,因此它在執行關鍵的企業系統方面的能力廣受好評。為了維持相同水平的靈活性并避免亂寫錯誤的接口,那些一直都在使用Java的公司為了開辟他們在機器學習方面的需求更傾向于堅持自己的選擇。

除了可以提供用于分析和原型設計的用途之外,Java還有很多種用于建造大規模分布式學習系統的非常棒的選擇,比如asSpark+MLlib、Mahout、H2O和Deeplearning4j。在類似Hadoop/HDFS這樣工業化標準數據處理和儲存系統的協同作用下,這些程序庫和架構可以很好地發揮作用。

C/C++

C/C++是操作系統插件和網絡協議這種低層級軟件的理想選擇,因為對于這些軟件而言,計算速度和內存效率至關重要。也是由于同樣的原因,它也是執行機器學習程序最受歡迎的手段。但是由于這種語言缺少數據處理所需的地道語言表達方式,并且內存管理所需的開銷很大,導致了該語言不適合初學者,而且對于開發完整的端到端的系統而言這種編程語言反而會成為一種負擔。

一旦植入了類似智能轎車、智能裝置以及傳感器這樣的系統,我們就必須使用C/C++編程。在其他情況下,由于基礎設施和特定應用程序的代碼已經是現成的了,所以這種語言就顯得特別的便利。在任何一種案例當中,C/C++語言從來不會缺少機器學習程序庫,比如LibSVM, Shark和mlpack。

企業解決方案

除了這些語言和程序庫之外,在受到更多監管的數據處理環境中,還有很多其他用于統計建模的商業產品和應用了機器學習模型的商業分析技術。包括RapidMiner、IBM SPSS、SAS+JMP和Stata在內的這些產品提供了可靠并且端到端的數據分析解決方案,同時還具備可供編程使用的API接口或者腳本語法。

最近在這個領域當中有新增了很多以云為基礎的機器學習為服務的平臺( Machine-Learning-as-a-Service platforms),比如Amazon Machine Learning、Google Prediction、IBM Watson和Microsoft AzureMachine Learning。這些平臺可以幫助你擴大處理大量數據的學習解決方案,并快速地對不同的模型進行試驗。只要是具備非常牢固的機器學習技術基礎,那么使用新的產品或者平臺工作就像學習使用一種新工具一般簡單。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢