sklearn学习记录一:官方使用说明

本文参考官方网站:http://scikit-learn.org/stable/tutorial/basic/tutorial.html

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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值