機(jī)器學(xué)習(xí)基礎(chǔ):搭建在線Anaconda環(huán)境

機(jī)器學(xué)習(xí)、人工智能已經(jīng)火了有一段時(shí)間,正好近期有建模預(yù)測(cè)需求,之前還沒(méi)怎么了解學(xué)習(xí),硬著頭皮自我充實(shí)一下。千里之行,先從Anaconda環(huán)境開(kāi)始吧。

Anaconda介紹

Anaconda是用于科學(xué)計(jì)算的Python發(fā)行版,它集成了很多關(guān)于Python科學(xué)計(jì)算的第三方庫(kù),同時(shí)提供了包管理和環(huán)境管理的功能,可方便的解決多版本Python并存、切換以及第三方包安裝問(wèn)題。支持運(yùn)行在Linux、Windows和macOS下。Anaconda利用命令/工具conda來(lái)進(jìn)行Package和environment管理。

conda VS anaconda

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

Anaconda安裝

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

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

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

運(yùn)行安裝向?qū)В?/p>

$ bash Anaconda3-4.3.1-Linux-x86_64.sh

按照向?qū)?,接受協(xié)議-->設(shè)置安裝路徑(默認(rèn)安裝用戶Home目錄)-->然后把安裝路徑添加到環(huán)境變量。

遇到的問(wèn)題

1.在安裝向?qū)гO(shè)置安裝路徑后,ENTER,提示如下錯(cuò)誤信息:

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之,原來(lái)是沒(méi)有安裝bzip2,參考:https://stackoverflow.com/questions/26958741/extract-tar-the-tar-bz2-file-error
安裝即可:

yum -y install bzip2

2.在安裝向?qū)ё詈笠徊?,是否添加到環(huán)境變量,默認(rèn)是no,我手賤直接ENTER了。
對(duì)于Mac、Linux系統(tǒng),Anaconda安裝好之后,實(shí)際上就是在主目錄下多了個(gè)文件夾(~/anaconda),Windows會(huì)寫入注冊(cè)表。安裝程序會(huì)把bin目錄加入PATH?,F(xiàn)在只能自己完成了:

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

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

Jupyter Notebook

當(dāng)然,安裝Anaconda的科學(xué)計(jì)算python平臺(tái),是為了使用Jupyter Notebook來(lái)學(xué)習(xí)Python的一些科學(xué)計(jì)算和機(jī)器學(xué)習(xí)庫(kù)。Jupyter Notebook是IPython的一個(gè)Web接口,可以展現(xiàn)富文本,是的整個(gè)工作可以以筆記的形式展現(xiàn)、存儲(chǔ),適合做數(shù)據(jù)分析,交互性變成和學(xué)習(xí)。

但是,當(dāng)我在服務(wù)器上運(yùn)行Jupyter Notebook時(shí)候,無(wú)法使用。因?yàn)楫?dāng)前配置下只能從本地(也就是那臺(tái)CentOS服務(wù)器上)訪問(wèn),但是服務(wù)器只裝了centos的Minimal,沒(méi)有桌面環(huán)境,更不用說(shuō)瀏覽器了。這當(dāng)然不滿足我目前的需求,需要配置服務(wù)器上的Jupyter允許遠(yuǎn)程訪問(wèn)。

生成配置文件:

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

生成一個(gè)hash密碼:

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

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

vi ~/.jupyter/jupyter_notebook_config.py

在打開(kāi)的配置文件中,配置相應(yīng)的參數(shù):

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

再次啟動(dòng)Notebook:

jupyter notebook

在本機(jī)使用瀏覽器訪問(wèn):http://192.168.111.186:8081 ,即可打開(kāi)Jupyter Notebook的頁(yè)面,輸入剛才設(shè)置的密碼,即可登錄了。

至此,就實(shí)現(xiàn)了遠(yuǎn)程服務(wù)器Jupyter Notebook。接下來(lái)就可以安裝機(jī)器學(xué)習(xí)所需要的一些庫(kù)開(kāi)始折騰了,包括:Numpy、Pandas、Matplotlib、Scikit-learn等。


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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容