七個Python庫:幫你構(gòu)建第一個數(shù)據(jù)科學(xué)應(yīng)用程序
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)
當(dāng)我開始學(xué)習(xí)數(shù)據(jù)科學(xué)的旅程時,這些都是我腦海中一直存在的問題。我學(xué)數(shù)據(jù)科學(xué)的目的不僅僅是為了開發(fā)模型或清理數(shù)據(jù),我想制作人們可以使用的應(yīng)用程序,我正在尋找一種快速的方法來制作MVP(最小可行產(chǎn)品)來測試想法。
如果你是一名數(shù)據(jù)科學(xué)家,并想創(chuàng)建第一個數(shù)據(jù)科學(xué)應(yīng)用程序,本文將展示創(chuàng)建第一個應(yīng)用程序所需的7個Python庫。相信你已經(jīng)知道其中的一些,但是我還是會逐個介紹,方便那些對此并不十分了解的讀者。
Pandas
數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)應(yīng)用都是關(guān)于數(shù)據(jù)。大多數(shù)數(shù)據(jù)集都不是整潔的,它們需要對項(xiàng)目進(jìn)行某種清理和操作。Pandas是一個庫,允許加載、清理和操作數(shù)據(jù)。你可以使用SQL等替代方法進(jìn)行數(shù)據(jù)操作和數(shù)據(jù)庫管理,但是Pandas對于希望成為開發(fā)人員(或至少是MVP開發(fā)人員)的數(shù)據(jù)科學(xué)家來說更簡單、更適用。
Numpy
在包括計(jì)算機(jī)視覺在內(nèi)的許多數(shù)據(jù)科學(xué)項(xiàng)目中,陣列是最重要的數(shù)據(jù)類型。Numpy是一個強(qiáng)大的Python庫,它允許你使用數(shù)組,操縱數(shù)組,并有效地對數(shù)組應(yīng)用算法。學(xué)習(xí)Numpy對于我后面提到的其他一些庫來說是必要的。
SciKitLearn
此庫是多種類型的機(jī)器學(xué)習(xí)模型和預(yù)處理工具的工具包。如果你正在做機(jī)器學(xué)習(xí)項(xiàng)目,則有可能不需要SciKitLearn。
Keras 或 PyTorch
神經(jīng)網(wǎng)絡(luò),特別是深度神經(jīng)網(wǎng)絡(luò)模型,是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)中非常流行的模型。許多計(jì)算機(jī)視覺和自然語言處理方法都依賴于這些方法,使用某些Python庫可以幫助你訪問神經(jīng)網(wǎng)絡(luò)工具,TensorFlow是最有名的一個,但我相信初學(xué)者很難從 TensorFlow開始。
我建議你學(xué)習(xí)Keras,它是Tensorflow的接口(API)。Keras使你作為人類能夠輕松測試不同的神經(jīng)網(wǎng)絡(luò)架構(gòu),甚至構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)架構(gòu),最近流行的另一個選擇是PyTorch。
Ipywidgets
在用戶界面方面,你必須在傳統(tǒng)外觀的用戶界面和基于web的用戶界面之間進(jìn)行選擇。你可以使用PyQT或TkInter之類的庫來構(gòu)建傳統(tǒng)的用戶界面,但我的建議是,如果可能的話,開發(fā)出可以在瀏覽器上運(yùn)行的網(wǎng)頁應(yīng)用程序。
要做到這一點(diǎn),你需要使用一個在瀏覽器中提供一組小部件的庫。ipywidgets為Jupyter筆記本提供了一組豐富的小部件。
Requests
如今,許多數(shù)據(jù)科學(xué)應(yīng)用程序都使用API(應(yīng)用程序編程接口),簡單地說,通過API,你可以請求服務(wù)器應(yīng)用程序?yàn)槟闾峁?shù)據(jù)庫的訪問權(quán)限或?yàn)槟銏?zhí)行特定任務(wù)。
例如,Google地圖API可以從你那里獲得兩個位置以及它們之間的回程時間,若沒有API,就必須重新發(fā)明輪子,Requests是一個與API對話的庫。如今,不使用API很難成為一名數(shù)據(jù)科學(xué)家。
Plotly
繪制不同類型的圖形是數(shù)據(jù)科學(xué)項(xiàng)目的重要組成部分。盡管Python中最流行的繪圖庫是matplotlib,但我發(fā)現(xiàn)Plotly更專業(yè)、更易于使用、更靈活,Plotly中的繪圖類型和繪圖工具非常多,Plotly的另一個優(yōu)點(diǎn)是它的設(shè)計(jì),與復(fù)雜的 matplotlib 圖形相比,它看起來更加簡潔易懂。
JupyterNotebook 和Voila
要實(shí)現(xiàn)第一個數(shù)據(jù)科學(xué)應(yīng)用程序,你需要學(xué)習(xí)的最后一個工具是最簡單的。首先,ipywidgets在Jupyter筆記本中工作,你需要使用Jupyter來創(chuàng)建應(yīng)用程序。我相信你們中的許多人已經(jīng)在使用Jupyter筆記本進(jìn)行模型構(gòu)建和探索分析,現(xiàn)在,將 Jupyter 筆記本視為前端開發(fā)的工具。
此外,你還需要使用Voila,這是一個可以啟動的第三方工具,它隱藏了 Jupyter 筆記本的所有代碼部件。當(dāng)你通過Voila啟動Jupyter筆記本應(yīng)用程序時,它就像一個web應(yīng)用程序。甚至你也可以在AWS EC2機(jī)器上運(yùn)行Voila和Jupyter筆記本,并從互聯(lián)網(wǎng)訪問你的簡單應(yīng)用程序。
利用本文提到的7個庫,就可以構(gòu)建人們使用的數(shù)據(jù)科學(xué)應(yīng)用程序,如果你能夠精通這些工具,就可以在幾個小時內(nèi)構(gòu)建mvp,并通過實(shí)際用戶測試想法。
在此之后,如果決定擴(kuò)展應(yīng)用程序,除了HTML、CSS和JS代碼之外,還可以使用更專業(yè)的工具,如Flask和Django。