加载示例数据集
scikit-learn 提供了一些标准数据集,例如 用于分类的 虹膜 和数字 数据集和波士顿房价 回归数据集 。
在下文中,我们从shell中启动一个Python解释器,然后加载iris
和digits
数据集。我们的符号约定是 $
表示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.dump
&joblib.load
)可能会更有意思,这对大数据更有效,但只能持久化到磁盘而不是一串:
>>>
from
sklearn.externals
import
joblib
>>> joblib.dump(clf,
'filename.pkl'
)
之后,您可以加载持久化模型(可能在另一个Python进程中):
>>> clf
=
joblib.load(
'filename.pkl'
)