Python下的机器学习工具scikit-learn(学习笔记2--官方实例程序)
来源:互联网 发布:linux cp 排除文件夹 编辑:程序博客网 时间:2024/04/30 13:44
本文参考官方网站:http://scikit-learn.org/stable/tutorial/basic/tutorial.html
scikit-learn工具包自带一些标准数据集(包括iris和digits两个数据集),可以进行测试。
(1)首先导入模块数据集:
from sklearn import datasetsiris = 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.targetarray([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')
- Python下的机器学习工具scikit-learn(学习笔记2--官方实例程序)
- Python下的机器学习工具scikit-learn(学习笔记1--安装)
- Python下的机器学习工具scikit-learn(学习笔记3--数据预处理)
- Python下的机器学习工具scikit-learn(学习笔记4)
- Python下的机器学习工具scikit-learn --数据预处理
- Python机器学习scikit-learn工具
- scikit-learn机器学习模块(下)
- Scikit-learn-python机器学习工具入门学习
- Python scikit-learn机器学习工具包学习笔记:cross_validation模块
- Python scikit-learn机器学习工具包学习笔记:feature_selection模块
- Python scikit-learn机器学习工具包学习笔记:cross_validation模块
- Python scikit-learn机器学习工具包学习笔记:cross_validation模块
- Python scikit-learn机器学习工具包学习笔记:cross_validation模块
- Python scikit-learn机器学习工具包学习笔记:cross_validation模块
- linux下python的机器学习包scikit-learn(包含numpy、scipy等)安装
- Windows下安装Python机器学习相关的sklearn(scikit-learn)模块
- 机器学习 scikit-learn(2)
- Windows下使用Python安装机器学习模块scikit-learn
- 写日历的程序员,你必须弄懂的中国农历算法。
- silverlight在XAML中设置控件焦点
- Spring中Quartz的配置
- org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unn
- DDX_TEXT()
- Python下的机器学习工具scikit-learn(学习笔记2--官方实例程序)
- ARM中断分发
- <context-param>与<init-param>的区别与作用
- HDU 1426 Sudoku Killer
- WinCE多线程并发 同步安全不容忽视
- CentOS安装thrift
- 在Eclipse中配置tomcat
- hadoop全套免费视频
- arm架构mmu