摘要:Python是機器學習最好的編程語言之一,和R語言一樣,很快將會成為學術(shù)和研究領(lǐng)域統(tǒng)治者。但為什么Python在機器學習領(lǐng)域如此受歡迎? Mike Driscoll等五位Python專家和機器學習社區(qū)人士分享了他們的觀點,下面就讓我們一睹為快。
編程是一項社交活動 ,Python社區(qū)已經(jīng)認識到了這一點 GlyphLefkowitz(@ glyph) Python網(wǎng)絡編程框架Twisted的創(chuàng)始人,在2017年榮獲PSF社區(qū)服務獎
人工智能是一個覆蓋面很廣的詞匯,它包含了當前計算機科學研究中最先進的技術(shù)領(lǐng)域。
曾有一段時間,我們普遍認為基本圖遍歷東西就是AI。那時候,Lisp是人工智能的主要語言,不僅僅是因為它是一種更高級的語言,還因為研究人員更容易用它來做快速原型。我認為目前Python已經(jīng)一定程度上快要取代Lisp,除了Python也是高級語言以外,它還擁有出色的第三方庫生態(tài)系統(tǒng),以及對底層操作系統(tǒng)的良好兼容性。
如果你不這么認為,那么允許我再描述的清楚一些。我不打算精確的描述Python在程序設計架構(gòu)中的位置,只是說Python和Lisp都處于相同的語言類別,它們在資源回收、內(nèi)存安全、模塊、名稱空間和高級數(shù)據(jù)結(jié)構(gòu)上有很多相似之處。
對于機器學習或者說對于大家談論更多AI而言,我有更清晰的答案。 NumPy及其生態(tài)系統(tǒng)的存在使得研究人員可以進行高性能的數(shù)據(jù)處理,從而提高工作效率。機器學習需要大量的數(shù)據(jù)處理,你懂的。
Python社區(qū)致力于為非程序員提供指南和生態(tài)系統(tǒng)支持,這無疑增加了其在數(shù)據(jù)科學和計算科學這兩個姐妹學科中的使用。大量的統(tǒng)計科學家、天文學家、生物學家和商業(yè)分析師已經(jīng)成為Python程序員,并且為社區(qū)貢獻新的代碼。編程可以說是一種社交活動,Python社區(qū)比任何其他語言都認同這一點。
機器學習是一個集成度很高的學科,因為任何AI /機器學習系統(tǒng)都需要從現(xiàn)實世界中提取大量數(shù)據(jù)并作為訓練數(shù)據(jù)輸入到系統(tǒng)中,Python大量庫函數(shù)構(gòu)建的生態(tài)系統(tǒng)讓它能更好的訪問和轉(zhuǎn)換數(shù)據(jù)。
Python允許用戶關(guān)注真正的問題
Marc-AndreLemburg(@malemburg)
首先,對于沒有受過計算機科學培訓的技術(shù)人員,Python非常容易理解。其次,當你需要集成外部庫文件時,它沒那么復雜,非常容易上手。
在Numeric(現(xiàn)在是NumPy)發(fā)布之后,Python增加了IPython 編輯器(現(xiàn)在是Jupyter 編輯器)、matplotlib和許多其他工具,這些編輯器讓開發(fā)更加直觀。
與其他領(lǐng)域一樣,Python是一種理想的集成語言,它將底層技術(shù)封裝起來,允許用戶關(guān)注真正的問題,而不是花時間在實現(xiàn)細節(jié)上。除了為用戶提供更方便的功能之外,對于那些想要在底層集成外部庫的工程師,Python作為一種“膠水”語言同樣表現(xiàn)出色,這主要得益于Python可以通過C API接口被友好訪問。
對于數(shù)學和面向數(shù)據(jù)的人來說,Python非常容易使用 SebastianRaschka(@rasbt) 研究人員和Python機器學習的作者
我認為有兩個主要原因,它們是非常相關(guān)的。第一個原因是Python非常容易閱讀和學習。
我認為大多數(shù)從事機器學習和人工智能的人員都希望以最方便的方式解決問題,重點是研究和應用技術(shù),編程只是一個讓你到達那里的工具。編程語言學習起來越舒服,進入門檻就越低,尤其是對于那些數(shù)學和統(tǒng)計背景的技術(shù)人員而言。
Python可讀性是極好的,這有助于優(yōu)化和更新代碼,這在機器學習和AI領(lǐng)域是非常重要的。人工智能和機器學習工程師經(jīng)常需要嘗試不同的實現(xiàn)方法,這需要編程語言既要能實現(xiàn)復雜算法又要保持語言透明,Python毫無疑問在這一點做的非常好。
第二個主要原因是,Python本身就是一種非常易于訪問的語言,我們在其之上有很多優(yōu)秀的庫,這使得我們的工作變得更容易。沒有人愿意花時間從頭開始重新實現(xiàn)基本算法(除了機器學習和人工智能的基礎研究)。大量Python庫幫助我們專注于比重新發(fā)明輪子更令人興奮的事情。
Python也是一種優(yōu)秀的封裝語言,它集成了C / C++算法和CUDA / cuDNN以提高算法性能,這也就是為什么現(xiàn)有的機器學習和深度學習庫在Python中高效運行的原因。這對于機器學習和AI領(lǐng)域的工作是非常重要的。
總而言之,我會說Python是一種偉大的語言,它可以讓研究人員和從業(yè)者專注于機器學習和AI,而不是其他的事情,這確實很棒!
Python具有對科學計算有吸引力的功能
LucianoRamalho(@ramalhoorg) ThoughtWorks的技術(shù)負責人和PSF的同事
最重要和最直接的原因是NumPy和SciPy庫支持scikit-learn這樣的項目,它目前幾乎是機器學習的事實標準工具。
首先NumPy,SciPy,scikit-learn和其他許多庫被創(chuàng)造出來的原因是Python有一些功能對科學計算非常有吸引力。 Python有一個簡單而一致的語法,可以讓軟件工程師以外的人更容易使用編程。
另一個原因是運算符重載,它使代碼可讀和簡潔。然后是Python的緩沖協(xié)議(PEP 3118),這是外部庫在處理類似數(shù)組的數(shù)據(jù)結(jié)構(gòu)時可與Python高效互操作的標準。最后,Python為科學計算提供了豐富的庫生態(tài)系統(tǒng),吸引了更多的科學家參與豐富這個系統(tǒng)。 Python是嚴格和一致的 MikeBayer (@zzzeek RedHat的高級軟件工程師,SQLAlchemy的創(chuàng)始人)
當我們開發(fā)算法時,我們一定希望把優(yōu)化的算法放入庫以便保留起來,就如同scikit-learn,然后我們分享我們是如何組織和處理數(shù)據(jù)并繼續(xù)迭代。你瞧,我們就是這么干的,不是嗎?
高級腳本語言非常適合人工智能和機器學習,因為我們可以快速更新并重試。我們創(chuàng)建的代碼大部分代表實際的數(shù)學和數(shù)據(jù)結(jié)構(gòu),而不是模板。
像Python這樣的腳本語言就很好,因為它是嚴格和一致的,每個人都可以更好地理解對方的Python代碼,相反的,其他語言則會有混淆和不一致的編程范例。
IPython編輯器等工具的可用性很好,使得我們可以在全新領(lǐng)域迭代和分享我們的算法。 Python強調(diào)了工作的核心,簡化了我們?nèi)绾谓o計算機指令,自動完成任何你不需要考慮的事情,這顯然是極好的。 END. 原文: https://datahub./interview/python-machine-learning-expert-interviews/ PPV課小組翻譯 |
|