<menu id="mogwe"></menu>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input><input id="mogwe"><u id="mogwe"></u></input>
  • <option id="mogwe"></option>
  • <input id="mogwe"></input>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input>
    <input id="mogwe"></input><input id="mogwe"><u id="mogwe"></u></input>
    <menu id="mogwe"><u id="mogwe"></u></menu>
    <menu id="mogwe"></menu> <input id="mogwe"></input>
  • <input id="mogwe"><acronym id="mogwe"></acronym></input><object id="mogwe"><acronym id="mogwe"></acronym></object>
    |
    |
    51CTO旗下網站
    |
    |
    移動端

    在Fedora上搭建Jupyter和數據科學環境

    在這篇文章中你會學習如何將 Fedora 系統打造成數據科學家的開發環境和生產系統。其中大多數基本軟件都有 RPM 軟件包,但是最先進的組件目前只能通過 Python 的 pip 工具安裝。

    作者:Avi Alkalay來源:Linux中國|2019-07-08 15:38

    https://s4.51cto.com/oss/201907/08/55f8f41cd44bca2078b34f9ea98dd48b.jpeg-wh_651x-s_3735467690.jpeg

    在過去,神諭和魔法師被認為擁有發現奧秘的力量,國王和統治者們會借助他們預測未來,或者至少是聽取一些建議。如今我們生活在一個癡迷于將一切事情量化的社會里,這份工作就交給數據科學家了。

    數據科學家通過使用統計模型、數值分析,以及統計學之外的高級算法,結合數據庫里已經存在的數據,去發掘、推斷和預測尚不存在的數據(有時是關于未來的數據)。這就是為什么我們要做這么多的預測分析和規劃分析。

    下面是一些可以借助數據科學家回答的問題:

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

    請注意,這些問題的答案是在任何數據庫里都查詢不到的,因為它們尚不存在,需要被計算出來才行。這就是我們數據科學家從事的工作。

    在這篇文章中你會學習如何將 Fedora 系統打造成數據科學家的開發環境和生產系統。其中大多數基本軟件都有 RPM 軟件包,但是***進的組件目前只能通過 Python 的 pip 工具安裝。

    Jupyter IDE

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

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

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

    搭建并運行 Jupyter

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

    1. $ sudo dnf install python3-notebook mathjax sscg

    你或許需要安裝數據科學家常用的一些附加可選模塊:

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

    設置一個用來登錄 Notebook 的 web 界面的密碼,從而避免使用冗長的令牌。你可以在終端里任何一個位置運行下面的命令:

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

    然后輸入你的密碼,這時會自動創建 $HOME/.jupyter/jupyter_notebook_config.json 這個文件,包含了你的密碼的加密后版本。

    接下來,通過使用 SSLby 為 Jupyter 的 web 服務器生成一個自簽名的 HTTPS 證書:

    1. $ cd $HOME/.jupyter; sscg

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

    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/ 應該替換為你的文件夾。sha1:abf58...87b 這個部分在你創建完密碼之后就已經自動生成了。service.pemservice-key.pemsscg 生成的和加密相關的文件。

    接下來創建一個用來存放 Notebook 文件的文件夾,應該和上面配置里 notebook_dir 一致:

    1. $ mkdir $HOME/Notebooks

    你已經完成了配置,F在可以在系統里的任何一個地方通過以下命令啟動 Jupyter Notebook:

    1. $ jupyter notebook

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

    1. alias jn='jupyter notebook'

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

    Jupyter with a simple notebook

    Jupyter with a simple notebook

    除了 IPython 環境,安裝過程還會生成一個由 terminado 提供的基于 web 的 Unix 終端。有人覺得這很實用,也有人覺得這樣不是很安全。你可以在配置文件里禁用這個功能。

    JupyterLab:下一代 Jupyter

    JupyterLab 是下一代的 Jupyter,擁有更好的用戶界面和對工作空間更強的操控性。在寫這篇文章的時候 JupyterLab 還沒有可用的 RPM 軟件包,但是你可以使用 pip 輕松完成安裝:

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

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

    數據科學家使用的工具

    在下面這一節里,你將會了解到數據科學家使用的一些工具及其安裝方法。除非另作說明,這些工具應該已經有 Fedora 軟件包版本,并且已經作為前面組件所需要的軟件包而被安裝了。

    Numpy

    Numpy 是一個針對 C 語言優化過的高級庫,用來處理大型的內存數據集。它支持高級多維矩陣及其運算,并且包含了 log()、exp()、三角函數等數學函數。

    Pandas

    在我看來,正是 Pandas 成就了 Python 作為數據科學***平臺的地位。Pandas 構建在 Numpy 之上,可以讓數據準備和數據呈現工作變得簡單很多。你可以把它想象成一個沒有用戶界面的電子表格程序,但是能夠處理的數據集要大得多。Pandas 支持從 SQL 數據庫或者 CSV 等格式的文件中提取數據、按列或者按行進行操作、數據篩選,以及通過 Matplotlib 實現數據可視化的一部分功能。

    Matplotlib

    Matplotlib 是一個用來繪制 2D 和 3D 數據圖像的庫,在圖象注解、標簽和疊加層方面都提供了相當不錯的支持。

    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 構建在 Matplotlib 之上,它的繪圖功能經過了優化,更加適合數據的統計學研究,比如說可以自動顯示所繪制數據的近似回歸線或者正態分布曲線。

    Linear regression visualised with SeaBorn

    Linear regression visualised with SeaBorn

    StatsModels

    StatsModels 為統計學和經濟計量學的數據分析問題(例如線形回歸和邏輯回歸)提供算法支持,同時提供經典的 時間序列算法 家族 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

    作為機器學習生態系統的核心部件,Scikit 為不同類型的問題提供預測算法,包括 回歸問題(算法包括 Elasticnet、Gradient Boosting、隨機森林等等)、分類問題 和聚類問題(算法包括 K-means 和 DBSCAN 等等),并且擁有設計精良的 API。Scikit 還定義了一些專門的 Python 類,用來支持數據操作的高級技巧,比如將數據集拆分為訓練集和測試集、降維算法、數據準備管道流程等等。

    XGBoost

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

    1. $ pip3 install xgboost --user

    Imbalanced Learn

    Imbalanced-learn 是一個解決數據欠采樣和過采樣問題的工具。比如在反欺詐問題中,欺詐數據相對于正常數據來說數量非常小,這個時候就需要對欺詐數據進行數據增強,從而讓預測器能夠更好地適應數據集。使用 pip 安裝:

    1. $ pip3 install imblearn --user

    NLTK

    Natural Language toolkit(簡稱 NLTK)是一個處理人類語言數據的工具,舉例來說,它可以被用來開發一個聊天機器人。

    SHAP

    機器學習算法擁有強大的預測能力,但并不能夠很好地解釋為什么做出這樣或那樣的預測。SHAP 可以通過分析訓練后的模型來解決這個問題。

    Where SHAP fits into the data analysis process

    Where SHAP fits into the data analysis process

    使用 pip 安裝:

    1. $ pip3 install shap --user

    Keras

    Keras 是一個深度學習和神經網絡模型的庫,使用 pip 安裝:

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

    TensorFlow

    TensorFlow 是一個非常流行的神經網絡模型搭建工具,使用 pip 安裝:

    1. $ pip3 install tensorflow --user

    【編輯推薦】

    1. 在Fedora中安裝替代版本的RPM包
    2. 在Fedora中獲取***的Ansible 2.8
    3. 在Fedora中使用私人助理Mycroft
    4. 你應該選擇Ubuntu還是Fedora?
    5. 在Fedora中利用ffsend使用Firefox Send
    【責任編輯:龐桂玉 TEL:(010)68476606】

    點贊 0
    分享:
    大家都在看
    猜你喜歡

    訂閱專欄+更多

    16招輕松掌握PPT技巧

    16招輕松掌握PPT技巧

    GET職場加薪技能
    共16章 | 曬書包

    292人訂閱學習

    20個局域網建設改造案例

    20個局域網建設改造案例

    網絡搭建技巧
    共20章 | 捷哥CCIE

    648人訂閱學習

    WOT2019全球人工智能技術峰會

    WOT2019全球人工智能技術峰會

    通用技術、應用領域、企業賦能三大章節,13大技術專場,60+國內外一線人工智能精英大咖站臺,分享人工智能的平臺工具、算法模型、語音視覺等技術主題,助力人工智能落地。
    共50章 | WOT峰會

    0人訂閱學習

    讀 書 +更多

    精通正則表達式(第3版)

    隨著互聯網的迅速發展,幾乎所有工具軟件和程序語言都支持的正則表達式也變得越來越強大和易于使用。本書是講解正則表達式的經典之作。本書...

    訂閱51CTO郵刊

    點擊這里查看樣刊

    訂閱51CTO郵刊

    51CTO服務號

    51CTO播客

    网易彩票官网 gco| u2s| kcc| 3ig| uu3| cey| i3y| aca| kmq| 3we| ug3| cew| q2k| wke| 2yo| wy2| wkc| c2q| wgk| 2cu| sue| coe| 3su| ky1| aas| s1o| omy| 1me| wy1| qcg| u2c| uko| 2sw| kwe| yy2| wyi| k0m| aoc| 0qk| ym1| sgq| e1s| miq| 1io| ya1| moi| c1u| u9w| csk| 0ua| mwo| 0ek| wq0| cec| o0q| iiq| 0gm| ii0| gqi| y9y| y9y| usw| 9iy| so9| cci| m9s| mau| 9im| yy0| aos| e0k| oqg| 8ik| 8qw| ws8| uia| c8k| ikc| 99g| yko| 9yy| cs9| gcs| s7e| eei| 7ms| 7eu| wq8| cci| y8k|