這篇文章主要講解了“怎么在Fedora上搭建Jupyter和數(shù)據(jù)科學(xué)環(huán)境”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在Fedora上搭建Jupyter和數(shù)據(jù)科學(xué)環(huán)境”吧!
創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護(hù)、公眾號搭建、微信小程序定制開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!
大多數(shù)現(xiàn)代數(shù)據(jù)科學(xué)家使用 Python 工作。他們工作中很重要的一部分是探索性數(shù)據(jù)分析(EDA)。EDA 是一種手動進(jìn)行的、交互性的過程,包括提取數(shù)據(jù)、探索數(shù)據(jù)特征、尋找相關(guān)性、通過繪制圖形進(jìn)行數(shù)據(jù)可視化并理解數(shù)據(jù)的分布特征,以及實現(xiàn)原型預(yù)測模型。
Jupyter 是能夠***勝任該工作的一個 web 應(yīng)用。Jupyter 使用的 Notebook 文件支持富文本,包括渲染精美的數(shù)學(xué)公式(得益于 mathjax)、代碼塊和代碼輸出(包括圖形輸出)。
Notebook 文件的后綴是 .ipynb
,意思是“交互式 Python Notebook”。
首先,使用 sudo 安裝 Jupyter 核心軟件包:
$ sudo dnf install python3-notebook mathjax sscg
你或許需要安裝數(shù)據(jù)科學(xué)家常用的一些附加可選模塊:
$ sudo dnf install python3-seaborn python3-lxml python3-basemap python3-scikit-image python3-scikit-learn python3-sympy python3-dask+dataframe python3-nltk
設(shè)置一個用來登錄 Notebook 的 web 界面的密碼,從而避免使用冗長的令牌。你可以在終端里任何一個位置運行下面的命令:
$ mkdir -p $HOME/.jupyter$ jupyter notebook password
然后輸入你的密碼,這時會自動創(chuàng)建 $HOME/.jupyter/jupyter_notebook_config.json
這個文件,包含了你的密碼的加密后版本。
接下來,通過使用 SSLby 為 Jupyter 的 web 服務(wù)器生成一個自簽名的 HTTPS 證書:
$ cd $HOME/.jupyter; sscg
配置 Jupyter 的***一步是編輯 $HOME/.jupyter/jupyter_notebook_config.json
這個文件。按照下面的模版編輯該文件:
{ "NotebookApp": { "password": "sha1:abf58...87b", "ip": "*", "allow_origin": "*", "allow_remote_access": true, "open_browser": false, "websocket_compression_options": {}, "certfile": "/home/aviram/.jupyter/service.pem", "keyfile": "/home/aviram/.jupyter/service-key.pem", "notebook_dir": "/home/aviram/Notebooks" }}
/home/aviram/
應(yīng)該替換為你的文件夾。sha1:abf58...87b
這個部分在你創(chuàng)建完密碼之后就已經(jīng)自動生成了。service.pem
和 service-key.pem
是 sscg
生成的和加密相關(guān)的文件。
接下來創(chuàng)建一個用來存放 Notebook 文件的文件夾,應(yīng)該和上面配置里 notebook_dir
一致:
$ mkdir $HOME/Notebooks
你已經(jīng)完成了配置?,F(xiàn)在可以在系統(tǒng)里的任何一個地方通過以下命令啟動 Jupyter Notebook:
$ jupyter notebook
或者是將下面這行代碼添加到 $HOME/.bashrc
文件,創(chuàng)建一個叫做 jn
的快捷命令:
alias jn='jupyter notebook'
運行 jn
命令之后,你可以通過網(wǎng)絡(luò)內(nèi)部的任何一個瀏覽器訪問
(LCTT 譯注:請將域名替換為服務(wù)器的域名),就可以看到 Jupyter 的用戶界面了,需要使用前面設(shè)置的密碼登錄。你可以嘗試鍵入一些 Python 代碼和標(biāo)記文本,看起來會像下面這樣:
Jupyter with a simple notebook
除了 IPython 環(huán)境,安裝過程還會生成一個由 terminado
提供的基于 web 的 Unix 終端。有人覺得這很實用,也有人覺得這樣不是很安全。你可以在配置文件里禁用這個功能。
JupyterLab 是下一代的 Jupyter,擁有更好的用戶界面和對工作空間更強(qiáng)的操控性。在寫這篇文章的時候 JupyterLab 還沒有可用的 RPM 軟件包,但是你可以使用 pip
輕松完成安裝:
$ pip3 install jupyterlab --user$ jupyter serverextension enable --py jupyterlab
然后運行 jupiter notebook
命令或者 jn
快捷命令。訪問 >
(LCTT 譯注:將域名替換為服務(wù)器的域名)就可以使用 JupyterLab 了。
在下面這一節(jié)里,你將會了解到數(shù)據(jù)科學(xué)家使用的一些工具及其安裝方法。除非另作說明,這些工具應(yīng)該已經(jīng)有 Fedora 軟件包版本,并且已經(jīng)作為前面組件所需要的軟件包而被安裝了。
Numpy 是一個針對 C 語言優(yōu)化過的高級庫,用來處理大型的內(nèi)存數(shù)據(jù)集。它支持高級多維矩陣及其運算,并且包含了 log()
、exp()
、三角函數(shù)等數(shù)學(xué)函數(shù)。
在我看來,正是 Pandas 成就了 Python 作為數(shù)據(jù)科學(xué)***平臺的地位。Pandas 構(gòu)建在 Numpy 之上,可以讓數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)呈現(xiàn)工作變得簡單很多。你可以把它想象成一個沒有用戶界面的電子表格程序,但是能夠處理的數(shù)據(jù)集要大得多。Pandas 支持從 SQL 數(shù)據(jù)庫或者 CSV 等格式的文件中提取數(shù)據(jù)、按列或者按行進(jìn)行操作、數(shù)據(jù)篩選,以及通過 Matplotlib 實現(xiàn)數(shù)據(jù)可視化的一部分功能。
Matplotlib 是一個用來繪制 2D 和 3D 數(shù)據(jù)圖像的庫,在圖象注解、標(biāo)簽和疊加層方面都提供了相當(dāng)不錯的支持。
matplotlib pair of graphics showing a cost function searching its optimal value through a gradient descent algorithm
Seaborn 構(gòu)建在 Matplotlib 之上,它的繪圖功能經(jīng)過了優(yōu)化,更加適合數(shù)據(jù)的統(tǒng)計學(xué)研究,比如說可以自動顯示所繪制數(shù)據(jù)的近似回歸線或者正態(tài)分布曲線。
Linear regression visualised with SeaBorn
StatsModels 為統(tǒng)計學(xué)和經(jīng)濟(jì)計量學(xué)的數(shù)據(jù)分析問題(例如線形回歸和邏輯回歸)提供算法支持,同時提供經(jīng)典的 時間序列算法 家族 ARIMA。
Normalized number of passengers across time \(blue\) and ARIMA-predicted number of passengers \(red\)
作為機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)的核心部件,Scikit 為不同類型的問題提供預(yù)測算法,包括 回歸問題(算法包括 Elasticnet、Gradient Boosting、隨機(jī)森林等等)、分類問題 和聚類問題(算法包括 K-means 和 DBSCAN 等等),并且擁有設(shè)計精良的 API。Scikit 還定義了一些專門的 Python 類,用來支持?jǐn)?shù)據(jù)操作的高級技巧,比如將數(shù)據(jù)集拆分為訓(xùn)練集和測試集、降維算法、數(shù)據(jù)準(zhǔn)備管道流程等等。
XGBoost 是目前可以使用的***進(jìn)的回歸器和分類器。它并不是 Scikit-learn 的一部分,但是卻遵循了 Scikit 的 API。XGBoost 并沒有針對 Fedora 的軟件包,但可以使用 pip
安裝。使用英偉達(dá)顯卡可以提升 XGBoost 算法的性能,但是這并不能通過 pip
軟件包來實現(xiàn)。如果你希望使用這個功能,可以針對 CUDA (LCTT 譯注:英偉達(dá)開發(fā)的并行計算平臺)自己進(jìn)行編譯。使用下面這個命令安裝 XGBoost:
$ pip3 install xgboost --user
Imbalanced-learn 是一個解決數(shù)據(jù)欠采樣和過采樣問題的工具。比如在反欺詐問題中,欺詐數(shù)據(jù)相對于正常數(shù)據(jù)來說數(shù)量非常小,這個時候就需要對欺詐數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),從而讓預(yù)測器能夠更好地適應(yīng)數(shù)據(jù)集。使用 pip
安裝:
$ pip3 install imblearn --user
Natural Language toolkit(簡稱 NLTK)是一個處理人類語言數(shù)據(jù)的工具,舉例來說,它可以被用來開發(fā)一個聊天機(jī)器人。
機(jī)器學(xué)習(xí)算法擁有強(qiáng)大的預(yù)測能力,但并不能夠很好地解釋為什么做出這樣或那樣的預(yù)測。SHAP 可以通過分析訓(xùn)練后的模型來解決這個問題。
Where SHAP fits into the data analysis process
使用 pip
安裝:
$ pip3 install shap --user
Keras 是一個深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)模型的庫,使用 pip
安裝:
$ sudo dnf install python3-h6py$ pip3 install keras --user
TensorFlow 是一個非常流行的神經(jīng)網(wǎng)絡(luò)模型搭建工具,使用 pip
安裝:
$ pip3 install tensorflow --user
感謝各位的閱讀,以上就是“怎么在Fedora上搭建Jupyter和數(shù)據(jù)科學(xué)環(huán)境”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么在Fedora上搭建Jupyter和數(shù)據(jù)科學(xué)環(huán)境這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!