python數據分析工具——Pandas、StatsModels、Scikit-Learn

python數據分析工具——Pandas、StatsModels、Scikit-Learn

Pandas

Pandas是 Python下最強大的數據分析和探索工具。它包含高級的數據結構和精巧的工具,使得在 Python中處理數據非常快速和簡單。 Pandas構建在 Numpy之上,它使得以 Numpy為中心的應用很容易使用。Pandas的功能非常強大,支持類似於SQL的數據增、刪、查、改,並且帶有豐富的數據處理函數;支持時間序列分析功能;支持靈活處理缺失數據等。

Pandas的安裝相對來說比較容易,安裝好 Numpy之後,就可以直接安裝了,通過pip install pandas或下載源碼後 python setup. py install安裝均可。由於我們頻繁用到讀取和寫入Excel,但默認的 Pandas還不能讀寫 Excel文件,需要安裝xlrd(讀)和xlwt(寫)庫才能支持 Excel的讀寫,方法如下:

pip install xrd #為 Python添加讀取 Excel的功能

pip install xlwt #為 Python添加寫入 Excel的功能

Pandas基本的數據結構是 Series和 Dataframe。顧名思義, Series就是序列,類似一維數組; Data Frame則是相當於一張二維的表格,類似二維數組,它的每一列都是一個 Series。為了定位 Series中的元素, Pandas提供了Index對象,每個 Series都會帶有一個對應的Index,用來標記不同的元素, Index的內容不一定是數字,也可以是字母、中文等,它類似於SQL中的主鍵。

類似地, Data Frame相當於多個帶有同樣 Index的 Series的組合,每個 Seiries都帶有唯一的表頭,用來標識不同的 Series。舉個例子:

# -*- coding:utf-8 -*-

import pandas as pd #通常用pd作為 pandas的別名。

s=pd.Series([1,2,3], index=['a','b','c']) #創建一個序列s

d=pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) #創建一個表

d2=pd.DataFrame(s) #也可以用已有的序列來創建表格

print(d.head()) #預覽前5行數據

print(d.describe()) #數據基本統計量

pd.read_excel('data.xls') #讀取Exce1文件,創建 Dataframe

pd.read_csv('data.csv', encoding='utf-8') #讀取文本格式的數據,一般用 encoding指定編碼。

StatsModels

Pandas著眼於數據的讀取、處理和探索,而StatsModels則更加註重數據的統計建模分析,它使得 Python有了R語言的味道。 StatsModels支持與 Pandas進行數據交互,因此,它與 Pandas結合,成為了 Python下強大的數據挖掘組合。

安裝StatsModels相當簡單,既可以通過pip安裝,又可以通過源碼安裝。對於Windows用戶來說,官網上甚至已經有編譯好的exe文件以供下載。如果手動安裝的話,需要自行解決好依賴問題, Statmodel依賴於Pandas(當然也依賴於 Pandas所依賴的),同時還依賴於pasty(一個描述統計的庫)。

下面是一個用 Stats Models來進行ADF平穩性檢驗的例子。

# -*- coding: utf-8 -*-

from statsmodels.tsa.stattools import adfuller as ADF #導入ADF恰驗

import numpy as np

ADF.(np.random.rand(100)) #返回的結果有ADF、p值

Scikit-Learn

Scikit-Learn是 Python下強大的機器學習工具包,它提供了完善的機器學習工具箱,包括數據預處理、分類、迴歸、聚類、預測和模型分析等。Scikit-Learn依賴於 Numpy、 Scipy和 Matplotlib,因此,只需要提前安裝好這幾個庫,然後安裝 Scikit-Learn就基本上沒有什麼問題了,安裝方法和之前一樣,要不就是pipinstall scikit-leam安裝,要不就是下載源碼自己安裝。

創建一個機器學習的模型很簡單:

# -*- coding:utf-8 -*-

from sklearn.linear_model import Linearregression #導入線性迴歸模型

model= Linearregression() #建立線性迴歸模型

print (model)

1)所有模型提供的接口有:

model fit0:訓練模型,對於監督模型來說是 fit(x,y),對於非監督模型是fit(X)。

2)監督模型提供的接口有:

model predict(xnew):預測新樣本

model predict proba(Xnew):預測概率,僅對某些模型有用(比如LR)

model score:得分越高,fit越好

3)非監督模型提供的接口有:

model transform(:從數據中學到新的“基空間”

model fit transform:從數據中學到新的基並將這個數據按照這組“基”進行轉換。

Scikit- Learn本身提供了一些實例數據,比較常見的有安德森鳶尾花卉數據集、手寫圖像數據集等。現在使用鳶尾花數據集iris寫一個簡單的機器學習的例子。對於這個數據集,可以閱讀《 》

# -*- coding:utf-8 -*-

from sklearn import datasets #導入數據集

iris= datasets.load_iris() #加載數據集

print(iris.data.shape) #查看數據集大小

from sklearn import svm #導入SVM模型

clf=svm. LinearSVC() #建立線性SVM分類器

clf.fit(iris.data,iris.target) #用數據訓練模型

clf.predict([[5.0,3.6,1.3,0.25]]) #訓練好模型之後,輸入新的數據進行預測

clf.coef_ #查看訓練好模型的參數


分享到:


相關文章: