本文參考官方**:
scikit-learn工具包自帶一些標準資料集(包括iris和digits兩個資料集),可以進行測試。
(1)首先匯入模組資料集:
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()
匯入的乙個資料集包含資料和資料集的一些元資料(用於描述資料),資料集中.data成員中儲存著乙個n個樣本,n個特徵的2維資料,而需要進行**的目標變數儲存在.target成員中,它是乙個一維的變數,每個樣本對應個標籤。
例如在digits資料中,.data每一行對應乙個樣本資料,每一列表示乙個特徵:
>>> print digits.data
[[ 0. 0. 5. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 10. 0. 0.]
[ 0. 0. 0. ..., 16. 9. 0.]
...,
[ 0. 0. 1. ..., 6. 0. 0.]
[ 0. 0. 2. ..., 12. 0. 0.]
[ 0. 0. 10. ..., 12. 1. 0.]]
.target資料的每個元素對應乙個樣本資料(個數相等):
>>> digits.target
array([0, 1, 2, ..., 8, 9, 8])
>>> len(digits.target) == len(digits.data)
true
(2)模型學習和**:
在scikit-learn中,乙個分類問題的評估器(estimator)是通過fit(x,y)方法和predict(t)兩個方法來實現的。
在下面的示例中estimator是sklearn.svm.svc,它實現了支援向量機分類器svc(support vector classification),estimator建構函式的引數是對應模型的相關引數(如下例子中的gamma=0.001, c=100.為svm模型的引數),最開始我們可以把estimator看成乙個黑箱。
>>> from sklearn import svm
>>> clf = svm.svc(gamma=0.001, c=100.)
訓練svc模型如下:
>>> clf.fit(digits.data[:-1], digits.target[:-1])
svc(c=100.0, cache_size=200, class_weight=none, coef0=0.0, degree=3,
gamma=0.001, kernel='rbf', max_iter=-1, probability=false, shrinking=true,
tol=0.001, verbose=false)
用訓練好的svc模型對資料進行**:
>>> clf.predict(digits.data[-1])
array([8])
(3)模型持久化
我們可以用pickle模組dumps和loads把訓練得到的模型資料持久化到字串中:
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.svc()
>>> iris = datasets.load_iris()
>>> x, y = iris.data, iris.target
>>> clf.fit(x, y)
svc(c=1.0, cache_size=200, class_weight=none, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=false, shrinking=true, tol=0.001,
verbose=false)
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(x[0])
array([0])
>>> y[0]
0
當資料量比較大時,我們更希望把模型持久化的形式儲存在磁碟檔案中,而不是以字串(string)的形式儲存在記憶體中:
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')
sk learn 學習官方筆記1
scikit learn提供了一些標準資料集,例如 用於分類的 虹膜和數字資料集和波士頓房價回歸資料集。在下文中,我們從shell中啟動乙個python直譯器,然後載入iris和digits資料集。我們的符號約定是 表示shell提示符,而 表示python直譯器提示符 python fromskl...
sklearn學習記錄
使用python簡單的獲取資料 處理資料 資料 usr bin env python3 coding utf 8 from sklearn.svm.classes import svc from pil.imageenhance import color from sklearn import da...
學習記錄 sklearn線性回歸
本文旨在記錄colin老師workshop的exercise1講解,包含入門級的sklearn操作 首先導入庫 import numpy as np import pandas as pd import scipy.stas as stats import sklearn 其次匯入資料,這裡使用的是...