數據挖掘實訓週報(一):windows和ubuntu16.04系統下python3.x和pip3的安裝配置
前言
本次軟件工程高級實訓的課題是數據挖掘,選擇的語言是python,python關於數據挖掘幾個基礎的包大概是:numpy, scipy, pandas, scikit-learn, statsmodels, matplotlib, xgboost, jupyter。所以,我們要在自己的電腦中安裝配置好這些依賴項。
ubuntu下環境配置
python3.7的安裝
我在自己的電腦中利用虛擬機安裝了ubuntu 16.04系統,而在ubuntu中python是自帶的,自帶的版本有兩個,分別是python2.7.12和python3.5.2,通過命令
python -V //默認版本
python2 -V //python2版本
python3 -V //python3版本
可以查看當前ubuntu系統預裝的python版本,通常默認使用的python版本是2.7.12,而我決定使用新的python3.7.3版本。
ubuntu安裝python3.7.3版本步驟如下:
步驟一:首先新建一個空文件夾,在文件夾裏打開終端,輸入以下命令
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
那麼當前文件夾裏就下載得到了Python-3.7.3.tgz壓縮包。
步驟二:對該壓縮包進行解壓,執行以下命令:
tar -zxvf Python-3.7.3.tgz
步驟三:在終端中進入壓縮得到的文件夾:
cd Python-3.7.3
步驟四:執行以下命令配置:
./configure
步驟五:執行以下命令進行編譯:
make
步驟六:執行以下命令進行安裝:
sudo make install
步驟七:查看python是否安裝成功:
python3.7 -V
最終結果如下圖:
修改默認python版本
安裝成功之後,我們要修改ubuntu系統默認的python版本,使得默認的版本指向python3.7.3,所以執行以下命令
echo alias python=python3.7 >> ~/.bashrc
修改配置文件,然後再執行以下命令即可
source ~/.bashrc
此時執行以下命令查看是否成功:
python -V
結果如下:
依賴包的安裝
然後我們要安裝pip,利用pip可以方便迅速地安裝各種所需要的package。通過以下命令安裝pip3
sudo apt install python3-pip
安裝完成之後,執行以下命令,查看pip3是否成功安裝
pip3 -V
默認安裝的pip3版本較低,我們還要執行以下命令升級pip3:
sudo pip3 install --upgrade pip
pip3升級後,我們查看pip3是否成功升級:
pip3 -V
發現終端報錯,如下圖:
我們用vim做以下修改(按’i’進入插入模式編輯,按"Esc"推出插入模式,然後按":wq"保存退出vim):
sudo vim /usr/bin/pip3
然後把裏面的代碼改成以下:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
如下圖所示:
之後再檢查pip3版本就沒問題了。
之後便是利用pip3進行各種package的安裝,只需一條命令,就可以把前言提到的各種包進行安裝。
sudo pip3 install numpy scipy pandas scikit-learn statsmodels matplotlib xgboost jupyter
安裝成功後,結果如下:
Window下環境配置
前往python官網下載適合window系統的3.7版本的python,然後打開安裝程序進行安裝,如下圖:
注意,安裝時勾選“自動添加Path到系統變量”,如上圖紅線所示。
安裝完成後,pip也會自動安裝,而且是最新版本。而其它依賴包的安裝與ubuntu下的安裝方法類似,執行以下命令:
pip3 install numpy scipy pandas scikit-learn statsmodels matplotlib jupyter
注意,xgboost依賴項在window裏是不能用上述命令安裝的,它的安裝方法如下:
- 前往https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost,因爲我的python版本爲3.7,所以下載文件xgboost‑0.82‑cp37‑cp37m‑win32.whl
- 在終端中進入xgboost‑0.82‑cp37‑cp37m‑win32.whl所在的文件夾,然後執行以下命令即可
pip install xgboost‑0.82‑cp37‑cp37m‑win32.whl
numpy
NumPy是Python語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。numpy教程參考如下:http://www.runoob.com/numpy/numpy-tutorial.html。
numpy在程序中引入方法爲:
import numpy as np
接着就可以在程序中使用變量“np”進行各種操作:
- 創建數組:
a = np.array([1,2,3])
- 創建2*2數組
a = np.array([[1, 2], [3, 4]])
- 創建長度爲10的元素全爲0或1的數組
a = np.zeros(10)
a = np.ones(10)
- 創建5*5的隨機數組,注意兩維的時候,要兩個random,兩個括號
a = np.random.random((5, 5))
- 矩陣乘法
array1.dot(array2)
scipy
SciPy是構建在numpy的基礎之上的,它提供了許多的操作numpy的數組的函數。SciPy是一款方便、易於使用、專爲科學和工程設計的python工具包,它包括了統計、優化、整合以及線性代數模塊、傅里葉變換、信號和圖像圖例,常微分方差的求解等。
關於scipy的學習可以參考官方文檔https://docs.scipy.org/doc/scipy/reference/index.html
關於scipy的函數用法總結可以參考博客https://blog.csdn.net/q583501947/article/details/76735870
pandas
pandas是基於NumPy的一種工具,該工具是爲了解決數據分析任務而創建的,它被廣泛用於快速分析數據,以及數據清洗和準備等工作。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。
關於pandas的學習可以參考這篇博客https://blog.csdn.net/qq_42156420/article/details/82813482
scikit-learn
scikit-learn,簡記sklearn,是用python實現的機器學習算法庫。sklearn可以實現數據預處理、分類、迴歸、降維、模型選擇等常用的機器學習算法。sklearn是基於NumPy, SciPy, matplotlib的。
sklearn的學習可以參考官方文檔https://scikit-learn.org/stable/#
statsmodels
statsmodels是一個Python庫,用於擬合多種統計模型,執行統計測試以及數據探索和可視化。statsmodels包含更多的“經典”頻率學派統計方法。
關於statsmodels的學習可以參考這篇博客https://www.jianshu.com/p/e45558ccf533
matplotlib
Matplotlib是一個Python的2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形。它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。
matplotlib的學習可以參考這篇博客http://www.runoob.com/numpy/numpy-matplotlib.html
xgboost
XGBoost是提升方法中的一個可擴展的機器學習系統。XGBoost在許多機器學習和數據挖掘問題中產生了廣泛的影響。2015年發表在Kaggle競賽的博客的29個冠軍解決方案中,有17個是使用XGBoost解決的,其中有8個是僅使用了XGBoost方法去訓練模型,剩餘的是用XGBoost和其他模型相結合使用的。
xgboost的原理介紹如下https://blog.csdn.net/qq_24519677/article/details/81809157
xgboost的使用方法如下https://blog.csdn.net/qq_24519677/article/details/81869196
jupyter
Jupyter Notebook是一個交互式筆記本,支持運行40多種編程語言。Jupyter Notebook的本質是一個Web應用程序,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和markdown。用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等。
jupyter的使用可以參考這篇博客https://blog.csdn.net/gubenpeiyuan/article/details/79252402
在終端中執行以下命令,就可打開jupyter網頁編輯器
jupyter notebook
在下圖中,點擊“upload”便可上傳本地的文件,然後便可打開並編輯該文件,如下圖:
還可以點擊“new”創建新的文件。