自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Fedora上搭建Jupyter和數(shù)據(jù)科學(xué)環(huán)境

系統(tǒng) Linux 開(kāi)發(fā)工具 大數(shù)據(jù)
在這篇文章中你會(huì)學(xué)習(xí)如何將 Fedora 系統(tǒng)打造成數(shù)據(jù)科學(xué)家的開(kāi)發(fā)環(huán)境和生產(chǎn)系統(tǒng)。其中大多數(shù)基本軟件都有 RPM 軟件包,但是最先進(jìn)的組件目前只能通過(guò) Python 的 pip 工具安裝。

[[269895]]

在過(guò)去,神諭和魔法師被認(rèn)為擁有發(fā)現(xiàn)奧秘的力量,國(guó)王和統(tǒng)治者們會(huì)借助他們預(yù)測(cè)未來(lái),或者至少是聽(tīng)取一些建議。如今我們生活在一個(gè)癡迷于將一切事情量化的社會(huì)里,這份工作就交給數(shù)據(jù)科學(xué)家了。

數(shù)據(jù)科學(xué)家通過(guò)使用統(tǒng)計(jì)模型、數(shù)值分析,以及統(tǒng)計(jì)學(xué)之外的高級(jí)算法,結(jié)合數(shù)據(jù)庫(kù)里已經(jīng)存在的數(shù)據(jù),去發(fā)掘、推斷和預(yù)測(cè)尚不存在的數(shù)據(jù)(有時(shí)是關(guān)于未來(lái)的數(shù)據(jù))。這就是為什么我們要做這么多的預(yù)測(cè)分析和規(guī)劃分析。

下面是一些可以借助數(shù)據(jù)科學(xué)家回答的問(wèn)題:

  1. 哪些學(xué)生有曠課傾向?每個(gè)人曠課的原因分別是什么?
  2. 哪棟房子的售價(jià)比合理價(jià)格要高或者低?一棟房子的合理價(jià)格是多少?
  3. 如何將我們的客戶按照潛在的特質(zhì)進(jìn)行分組?
  4. 這個(gè)孩子的早熟可能會(huì)在未來(lái)引發(fā)什么問(wèn)題?
  5. 我們的呼叫中心在明天早上 11 點(diǎn) 43 分會(huì)接收到多少次呼叫?
  6. 我們的銀行是否應(yīng)該向這位客戶發(fā)放貸款?

請(qǐng)注意,這些問(wèn)題的答案是在任何數(shù)據(jù)庫(kù)里都查詢不到的,因?yàn)樗鼈兩胁淮嬖?,需要被?jì)算出來(lái)才行。這就是我們數(shù)據(jù)科學(xué)家從事的工作。

在這篇文章中你會(huì)學(xué)習(xí)如何將 Fedora 系統(tǒng)打造成數(shù)據(jù)科學(xué)家的開(kāi)發(fā)環(huán)境和生產(chǎn)系統(tǒng)。其中大多數(shù)基本軟件都有 RPM 軟件包,但是***進(jìn)的組件目前只能通過(guò) Python 的 pip 工具安裝。

Jupyter IDE

大多數(shù)現(xiàn)代數(shù)據(jù)科學(xué)家使用 Python 工作。他們工作中很重要的一部分是 探索性數(shù)據(jù)分析Exploratory Data Analysis(EDA)。EDA 是一種手動(dòng)進(jìn)行的、交互性的過(guò)程,包括提取數(shù)據(jù)、探索數(shù)據(jù)特征、尋找相關(guān)性、通過(guò)繪制圖形進(jìn)行數(shù)據(jù)可視化并理解數(shù)據(jù)的分布特征,以及實(shí)現(xiàn)原型預(yù)測(cè)模型。

Jupyter 是能夠***勝任該工作的一個(gè) web 應(yīng)用。Jupyter 使用的 Notebook 文件支持富文本,包括渲染精美的數(shù)學(xué)公式(得益于 mathjax)、代碼塊和代碼輸出(包括圖形輸出)。

Notebook 文件的后綴是 .ipynb,意思是“交互式 Python Notebook”。

搭建并運(yùn)行 Jupyter

首先,使用 sudo 安裝 Jupyter 核心軟件包:

  1. $ sudo dnf install python3-notebook mathjax sscg

你或許需要安裝數(shù)據(jù)科學(xué)家常用的一些附加可選模塊:

  1. $ sudo dnf install python3-seaborn python3-lxml python3-basemap python3-scikit-image python3-scikit-learn python3-sympy python3-dask+dataframe python3-nltk

設(shè)置一個(gè)用來(lái)登錄 Notebook 的 web 界面的密碼,從而避免使用冗長(zhǎng)的令牌。你可以在終端里任何一個(gè)位置運(yùn)行下面的命令:

  1. $ mkdir -p $HOME/.jupyter
  2. $ jupyter notebook password

然后輸入你的密碼,這時(shí)會(huì)自動(dòng)創(chuàng)建 $HOME/.jupyter/jupyter_notebook_config.json 這個(gè)文件,包含了你的密碼的加密后版本。

接下來(lái),通過(guò)使用 SSLby 為 Jupyter 的 web 服務(wù)器生成一個(gè)自簽名的 HTTPS 證書(shū):

  1. $ cd $HOME/.jupyter; sscg

配置 Jupyter 的***一步是編輯 $HOME/.jupyter/jupyter_notebook_config.json 這個(gè)文件。按照下面的模版編輯該文件:

  1. {
  2. "NotebookApp": {
  3. "password": "sha1:abf58...87b",
  4. "ip": "*",
  5. "allow_origin": "*",
  6. "allow_remote_access": true,
  7. "open_browser": false,
  8. "websocket_compression_options": {},
  9. "certfile": "/home/aviram/.jupyter/service.pem",
  10. "keyfile": "/home/aviram/.jupyter/service-key.pem",
  11. "notebook_dir": "/home/aviram/Notebooks"
  12. }
  13. }

/home/aviram/ 應(yīng)該替換為你的文件夾。sha1:abf58...87b 這個(gè)部分在你創(chuàng)建完密碼之后就已經(jīng)自動(dòng)生成了。service.pemservice-key.pemsscg 生成的和加密相關(guān)的文件。

接下來(lái)創(chuàng)建一個(gè)用來(lái)存放 Notebook 文件的文件夾,應(yīng)該和上面配置里 notebook_dir 一致:

  1. $ mkdir $HOME/Notebooks

你已經(jīng)完成了配置?,F(xiàn)在可以在系統(tǒng)里的任何一個(gè)地方通過(guò)以下命令啟動(dòng) Jupyter Notebook:

  1. $ jupyter notebook

或者是將下面這行代碼添加到 $HOME/.bashrc 文件,創(chuàng)建一個(gè)叫做 jn 的快捷命令:

  1. alias jn='jupyter notebook'

運(yùn)行 jn 命令之后,你可以通過(guò)網(wǎng)絡(luò)內(nèi)部的任何一個(gè)瀏覽器訪問(wèn) <https://your-fedora-host.com:8888> (LCTT 譯注:請(qǐng)將域名替換為服務(wù)器的域名),就可以看到 Jupyter 的用戶界面了,需要使用前面設(shè)置的密碼登錄。你可以嘗試鍵入一些 Python 代碼和標(biāo)記文本,看起來(lái)會(huì)像下面這樣:

Jupyter with a simple notebook

Jupyter with a simple notebook

除了 IPython 環(huán)境,安裝過(guò)程還會(huì)生成一個(gè)由 terminado 提供的基于 web 的 Unix 終端。有人覺(jué)得這很實(shí)用,也有人覺(jué)得這樣不是很安全。你可以在配置文件里禁用這個(gè)功能。

JupyterLab:下一代 Jupyter

JupyterLab 是下一代的 Jupyter,擁有更好的用戶界面和對(duì)工作空間更強(qiáng)的操控性。在寫(xiě)這篇文章的時(shí)候 JupyterLab 還沒(méi)有可用的 RPM 軟件包,但是你可以使用 pip 輕松完成安裝:

  1. $ pip3 install jupyterlab --user
  2. $ jupyter serverextension enable --py jupyterlab

然后運(yùn)行 jupiter notebook 命令或者 jn 快捷命令。訪問(wèn) <http://your-linux-host.com:8888/lab> (LCTT 譯注:將域名替換為服務(wù)器的域名)就可以使用 JupyterLab 了。

數(shù)據(jù)科學(xué)家使用的工具

在下面這一節(jié)里,你將會(huì)了解到數(shù)據(jù)科學(xué)家使用的一些工具及其安裝方法。除非另作說(shuō)明,這些工具應(yīng)該已經(jīng)有 Fedora 軟件包版本,并且已經(jīng)作為前面組件所需要的軟件包而被安裝了。

Numpy

Numpy 是一個(gè)針對(duì) C 語(yǔ)言優(yōu)化過(guò)的高級(jí)庫(kù),用來(lái)處理大型的內(nèi)存數(shù)據(jù)集。它支持高級(jí)多維矩陣及其運(yùn)算,并且包含了 log()exp()、三角函數(shù)等數(shù)學(xué)函數(shù)。

Pandas

在我看來(lái),正是 Pandas 成就了 Python 作為數(shù)據(jù)科學(xué)***平臺(tái)的地位。Pandas 構(gòu)建在 Numpy 之上,可以讓數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)呈現(xiàn)工作變得簡(jiǎn)單很多。你可以把它想象成一個(gè)沒(méi)有用戶界面的電子表格程序,但是能夠處理的數(shù)據(jù)集要大得多。Pandas 支持從 SQL 數(shù)據(jù)庫(kù)或者 CSV 等格式的文件中提取數(shù)據(jù)、按列或者按行進(jìn)行操作、數(shù)據(jù)篩選,以及通過(guò) Matplotlib 實(shí)現(xiàn)數(shù)據(jù)可視化的一部分功能。

Matplotlib

Matplotlib 是一個(gè)用來(lái)繪制 2D 和 3D 數(shù)據(jù)圖像的庫(kù),在圖象注解、標(biāo)簽和疊加層方面都提供了相當(dāng)不錯(cuò)的支持。

matplotlib pair of graphics showing a cost function searching its optimal value through a gradient descent algorithm

matplotlib pair of graphics showing a cost function searching its optimal value through a gradient descent algorithm

Seaborn

Seaborn 構(gòu)建在 Matplotlib 之上,它的繪圖功能經(jīng)過(guò)了優(yōu)化,更加適合數(shù)據(jù)的統(tǒng)計(jì)學(xué)研究,比如說(shuō)可以自動(dòng)顯示所繪制數(shù)據(jù)的近似回歸線或者正態(tài)分布曲線。

Linear regression visualised with SeaBorn

Linear regression visualised with SeaBorn

StatsModels

StatsModels 為統(tǒng)計(jì)學(xué)和經(jīng)濟(jì)計(jì)量學(xué)的數(shù)據(jù)分析問(wèn)題(例如線形回歸和邏輯回歸)提供算法支持,同時(shí)提供經(jīng)典的 時(shí)間序列算法 家族 ARIMA。

Normalized number of passengers across time \(blue\) and ARIMA-predicted number of passengers \(red\)

Normalized number of passengers across time \(blue\) and ARIMA-predicted number of passengers \(red\)

Scikit-learn

作為機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)的核心部件,Scikit 為不同類(lèi)型的問(wèn)題提供預(yù)測(cè)算法,包括 回歸問(wèn)題(算法包括 Elasticnet、Gradient Boosting、隨機(jī)森林等等)、分類(lèi)問(wèn)題 和聚類(lèi)問(wèn)題(算法包括 K-means 和 DBSCAN 等等),并且擁有設(shè)計(jì)精良的 API。Scikit 還定義了一些專(zhuān)門(mén)的 Python 類(lèi),用來(lái)支持?jǐn)?shù)據(jù)操作的高級(jí)技巧,比如將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集、降維算法、數(shù)據(jù)準(zhǔn)備管道流程等等。

XGBoost

XGBoost 是目前可以使用的***進(jìn)的回歸器和分類(lèi)器。它并不是 Scikit-learn 的一部分,但是卻遵循了 Scikit 的 API。XGBoost 并沒(méi)有針對(duì) Fedora 的軟件包,但可以使用 pip 安裝。使用英偉達(dá)顯卡可以提升 XGBoost 算法的性能,但是這并不能通過(guò) pip 軟件包來(lái)實(shí)現(xiàn)。如果你希望使用這個(gè)功能,可以針對(duì) CUDA (LCTT 譯注:英偉達(dá)開(kāi)發(fā)的并行計(jì)算平臺(tái))自己進(jìn)行編譯。使用下面這個(gè)命令安裝 XGBoost:

  1. $ pip3 install xgboost --user

Imbalanced Learn

Imbalanced-learn 是一個(gè)解決數(shù)據(jù)欠采樣和過(guò)采樣問(wèn)題的工具。比如在反欺詐問(wèn)題中,欺詐數(shù)據(jù)相對(duì)于正常數(shù)據(jù)來(lái)說(shuō)數(shù)量非常小,這個(gè)時(shí)候就需要對(duì)欺詐數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),從而讓預(yù)測(cè)器能夠更好地適應(yīng)數(shù)據(jù)集。使用 pip 安裝:

  1. $ pip3 install imblearn --user

NLTK

Natural Language toolkit(簡(jiǎn)稱 NLTK)是一個(gè)處理人類(lèi)語(yǔ)言數(shù)據(jù)的工具,舉例來(lái)說(shuō),它可以被用來(lái)開(kāi)發(fā)一個(gè)聊天機(jī)器人。

SHAP

機(jī)器學(xué)習(xí)算法擁有強(qiáng)大的預(yù)測(cè)能力,但并不能夠很好地解釋為什么做出這樣或那樣的預(yù)測(cè)。SHAP 可以通過(guò)分析訓(xùn)練后的模型來(lái)解決這個(gè)問(wèn)題。

Where SHAP fits into the data analysis process

Where SHAP fits into the data analysis process

使用 pip 安裝:

  1. $ pip3 install shap --user

Keras

Keras 是一個(gè)深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)模型的庫(kù),使用 pip 安裝:

  1. $ sudo dnf install python3-h5py
  2. $ pip3 install keras --user

TensorFlow

TensorFlow 是一個(gè)非常流行的神經(jīng)網(wǎng)絡(luò)模型搭建工具,使用 pip 安裝:

  1. $ pip3 install tensorflow --user
責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2010-09-17 14:27:18

NetBeansAndroid

2010-12-13 14:41:44

Android 2.3MyEclipse

2018-04-16 11:11:56

2020-07-20 18:30:44

Fedora 32DockerLinux

2016-10-21 19:24:35

數(shù)據(jù)科學(xué)家數(shù)據(jù)科學(xué)

2009-12-17 11:47:44

FedoraJSP

2022-12-03 16:02:51

2020-08-16 09:00:15

樹(shù)莓派FedoraLinux

2021-08-19 18:28:22

FedoraLinuxOpenCV

2019-10-29 16:30:10

FedoraSSH端口Linux

2021-10-03 14:47:26

Fedora CoreGitHub Acti運(yùn)行器

2019-11-11 15:10:37

FedoraLinuxbash

2012-07-31 13:28:03

GAE

2016-12-16 11:56:56

大數(shù)據(jù)數(shù)據(jù)科學(xué)

2020-03-09 17:26:37

數(shù)據(jù)科學(xué)數(shù)據(jù)驅(qū)動(dòng)算法

2020-09-09 11:23:22

數(shù)據(jù)科學(xué)與分析

2019-12-02 15:23:34

FedoraLinuxGIMP

2019-12-31 15:00:51

FedoraLinux桌面環(huán)境

2013-12-18 15:18:04

2010-08-31 09:39:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)