機器學習基礎:搭建在線Anaconda環境

機器學習、人工智能已經火了有一段時間,正好近期有建模預測需求,之前還沒怎么了解學習,硬著頭皮自我充實一下。千里之行,先從Anaconda環境開始吧。

Anaconda介紹

Anaconda是用于科學計算的Python發行版,它集成了很多關于Python科學計算的第三方庫,同時提供了包管理和環境管理的功能,可方便的解決多版本Python并存、切換以及第三方包安裝問題。支持運行在Linux、Windows和macOS下。Anaconda利用命令/工具conda來進行Package和environment管理。

conda VS anaconda

conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python并可以快速切換。Anaconda則是一個打包的集合,里面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等,所以也稱為Python的一種發行版。其實還有Miniconda,顧名思義,它只包含最基本的內容——python與conda,以及相關的必須依賴項,對于空間要求嚴格的用戶,Miniconda是一種選擇。

Anaconda安裝

我主要在CentOS服務器上安裝Anaconda,參考官網幫助文檔。下載安裝腳本:https://www.continuum.io/downloads#linux ,選擇要安裝的Python版本和系統架構:

# Python 3.6
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh #64位系統
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86.sh #32位系統
# Python 2.7
$ wget https://repo.continuum.io/archive/Anaconda2-4.3.1-Linux-x86_64.sh #64位系統
$ wget https://repo.continuum.io/archive/Anaconda2-4.3.1-Linux-x86.sh #32位系統

(這里我選擇的是Python3.6 version 64BIT,關于Python的版本2.7 or 3.6,后面都可以在Anaconda里設置版本環境)

運行安裝向導:

$ bash Anaconda3-4.3.1-Linux-x86_64.sh

按照向導,接受協議-->設置安裝路徑(默認安裝用戶Home目錄)-->然后把安裝路徑添加到環境變量。

遇到的問題

1.在安裝向導設置安裝路徑后,ENTER,提示如下錯誤信息:

tar (child): bzip2: Cannot exec: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 
tar: Error is not recoverable: exiting now

Google之,原來是沒有安裝bzip2,參考:https://stackoverflow.com/questions/26958741/extract-tar-the-tar-bz2-file-error
安裝即可:

yum -y install bzip2

2.在安裝向導最后一步,是否添加到環境變量,默認是no,我手賤直接ENTER了。
對于Mac、Linux系統,Anaconda安裝好之后,實際上就是在主目錄下多了個文件夾(~/anaconda),Windows會寫入注冊表。安裝程序會把bin目錄加入PATH?,F在只能自己完成了:

# 將anaconda的bin目錄加入PATH,根據版本不同
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
# 更新bashrc立即生效
source ~/.bashrc

配置好PATH后,可以通過which condaconda --version命令檢查是否正確。

Jupyter Notebook

當然,安裝Anaconda的科學計算python平臺,是為了使用Jupyter Notebook來學習Python的一些科學計算和機器學習庫。Jupyter Notebook是IPython的一個Web接口,可以展現富文本,是的整個工作可以以筆記的形式展現、存儲,適合做數據分析,交互性變成和學習。

但是,當我在服務器上運行Jupyter Notebook時候,無法使用。因為當前配置下只能從本地(也就是那臺CentOS服務器上)訪問,但是服務器只裝了centos的Minimal,沒有桌面環境,更不用說瀏覽器了。這當然不滿足我目前的需求,需要配置服務器上的Jupyter允許遠程訪問。

生成配置文件:

jupyter notebook --generate-config

生成的配置文件位于~/.jupyter/jupyter_notebook_config.py。
生成自簽名SSL證書:

cd ~/.jupyter
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout notebook_cert.key -out notebook_cert.pem

生成一個hash密碼:

python -c "import IPython;print(IPython.lib.passwd())"
Enter password:
Verify password:
sha1::7211a627f0ba:1e515d95f664181dc5f43571b8973476126e7371

復制生成的密碼,編輯jupyter的配置文件:

vi ~/.jupyter/jupyter_notebook_config.py

在打開的配置文件中,配置相應的參數:

c.NotebookApp.certfile = u'/home/xxxx/.jupyter/notebook_cert.pem'
c.NotebookApp.keyfile = u'/home/xxxx/.jupyter/notebook_cert.key' 
c.NotebookApp.password = u'sha1::7211a627f0ba:1e515d95f664181dc5f43571b8973476126e7371'
c.NotebookApp.ip = '*'
c.NotebookApp.port = 8081
c.NotebookApp.open_browser = False

再次啟動Notebook:

jupyter notebook

在本機使用瀏覽器訪問:http://192.168.111.186:8081 ,即可打開Jupyter Notebook的頁面,輸入剛才設置的密碼,即可登錄了。

至此,就實現了遠程服務器Jupyter Notebook。接下來就可以安裝機器學習所需要的一些庫開始折騰了,包括:Numpy、Pandas、Matplotlib、Scikit-learn等。


參考
http://blog.topspeedsnail.com/archives/9607
http://www.lxweimin.com/p/2f3be7781451
http://blog.topspeedsnail.com/archives/7321
http://jupyter-notebook.readthedocs.io/en/latest/index.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容