【Python語言】Scikit-learn 快速入門
阿新 • • 發佈:2022-04-29
環境
- ubuntu 12.04, 64 bits
- python 2.7
- sklearn 0.14
準備
sklearn 快速入門的官方文件7。這個文件主要描述機器學習的概念,以及如何載入資料,訓練模型,儲存模型。
這裡提供另外一個更加詳細的材料,這份材料基於ipython notebook(可選),可以在瀏覽器裡執行程式碼,功能強大,演示效果非常好,github下載地址6。
- 將材料下載到本地:
git clone [email protected]:jakevdp/sklearn_pycon2013.git
- 安裝 ipython-notebook
sudo easy_install "ipython>=0.13" jinja2 "tornado>=3.1.0" pyzmq
sudo apt-get install ipython-notebook
- 開啟材料
cd PATH/TO/sklearn_pycon2013/notebook
ipython notebook --pylab inline
--pylab inline 引數可以使 notebook 在瀏覽器裡面直接畫圖效果
資料
sklearn 中的資料一般存放為二維陣列,形狀為 [n_samples, n_feartures]。比如著名的 iris 資料集(鳶尾花)包含了三種類別的花(target),共 150 組資料(samples),每組資料由 4 個特徵組成,具體來說就是:萼片的長度、萼片的寬度、花瓣的長度、花瓣的寬度。那麼,iris 資料集的 data 就由 150*4 的二維陣列組成。
sklearn 提供了很多資料集,一類比較小,直接打包在庫中,可以通過 datasets.load_ + Tab 來檢視,另一類比較大,需要下載,可以通過 datasets.fetch_ + Tab 檢視,下載的目錄可以通過sklearn.datasets.get_data_home()檢視。
更詳細的資訊請參考 notebook 中的 02_sklearn_data.ipynb 檔案。
介面
建立一個機器學習的模型很簡單:
from sklearn.linear_model import LinearRegression model = LinearRegression()print model
所有模型提供的介面有:
- model.fit(): 實際上就是訓練,對於監督模型來說是 fit(X, y),對於非監督模型是 fit(X)。
監督模型提供:
- model.predict(X_new): 判別新樣本
- model.predict_proba(X_new): 某些模型可以輸出概率,比如 LR,上一個輸出的就是概率最大的 target
- model.score(): 得分越高,fit 越好
非監督模型提供:
- model.transform(): 從資料中學到新的“基空間”。
- model.fit_transform(): 從資料中學到新的基並將這個資料按照這組“基”進行轉換。
下面這個圖展示了這些介面在機器學習模型中的位置:
文章來源:http://suanfazu.com/t/scikit-learn-kuai-su-ru-men/117