sk-learn 学习官方笔记1

来源:互联网 发布:2017双十一消费数据 编辑:程序博客网 时间:2024/05/02 02:23

加载示例数据集

scikit-learn提供了一些标准数据集,例如 用于分类的 虹膜和数字数据集和波士顿房价回归数据集。

在下文中,我们从shell中启动一个Python解释器,然后加载irisdigits数据集。我们的符号约定是 $表示shell提示符,而>>>表示Python解释器提示符:

$ python
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits() 

以下是一些推荐的方法,将标准柱状数据加载到scikit-learn可用的格式中:

  • pandas.io 提供了从常见格式(包括CSV,Excel,JSON和SQL)读取数据的工具。数据框也可以从元组或者字典列表中构建。Pandas可以平滑地处理异类数据,并提供用于操作和转换成适合scikit-learn的数字数组的工具。
  • scipy.io 专注于科学计算环境中经常使用的二进制格式,例如.mat和.arff
  • numpy / routines.io 用于将列数据标准加载到numpy数组中

模型持久化

可以通过使用Python的内置持久化模型(即pickle)将模型保存在scikit中:

>>> 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,
  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=False)
 
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0 

在scikit的具体情况下,使用joblib替换pickle(joblib.dumpjoblib.load)可能会更有意思,这对大数据更有效,但只能持久化到磁盘而不是一串:

>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')  

之后,您可以加载持久化模型(可能在另一个Python进程中):

>>> clf = joblib.load('filename.pkl')  

原创粉丝点击