python机器学习库scikit-learn简明教程之:SVM支持向量机
来源:互联网 发布:家用洗地机 知乎 编辑:程序博客网 时间:2024/05/22 13:08
1.获得样例数据
scikit-learn库有一些标准的数据集,例如分类的数字集,波士顿房价回归数据集。
在下面,我们启动Python解释器,然后载入数据集。我们可以认为,美元符号后输入python然后会启动以> > >开头的 Python解释器,提示我们输入python表达语句:
$ python>>> from sklearn import datasets>>> iris = datasets.load_iris()>>> digits = datasets.load_digits()
例如,拿数字数据集这个事例来说,调用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.]]而digits.target对于每一个数据集来说就是它们的种类,对应每个数字图像,希望它被划分的具体类别:
>>> digits.targetarray([0, 1, 2, ..., 8, 9, 8])
数据集的维度:
数据集通常是一个二维数组,格式是(n_samples,n_features),尽管原始的数据可能有不一致的维度。在数字化表示下,每个原始为形状(8,8)的图像样本可以表示为:
>>> digits.images[0]array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])
2.训练学习和预测
在给定数据集的情况下,我们的任务是预测,对于给定图像,其所属的是哪个数字指代的种类。 我们手头有10个可能的类(数字0到9)中的每一个的样本,其中我们拟合预测器经过训练后可以预测未知的样本所属的类。
在scikit-learn中,分类预测器是实现方法fit(X,y)<代表拟合>和predict(T)<代表预测>的Python对象。
预测器的一个示例是实现支持向量机模块的类sklearn.svm.SVC。 预测器的构造函数使用模型的参数作为参数,但暂时,我们将把估计器视为一个黑盒:
(译者注:虽然scikit-learn库拥有诸多预测模型,但接口尤其工整,全部以方法fit(X,y)<代表拟合>和predict(T)<代表预测>命名!)
>>> from sklearn import svm>>> clf = svm.SVC(gamma=0.001, C=100.)拟合过程:
>>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma=0.001, kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)预测模型:
>>> clf.predict(digits.data[-1:])array([8])预测结果(分类结果):
3.扩展知识:持久化存储你的预测模型:pickle模块
在scikit的特定实例下,使用joblib的pickle模块(joblib.dump&joblib.load)可能更有趣,这对大数据更有效,但只能转化为pickle存储在磁盘上而不是字符串表达:
存储:
>>> from sklearn.externals import joblib>>> joblib.dump(clf, 'filename.pkl')加载:
>>> clf = joblib.load('filename.pkl')
1 0
- python机器学习库scikit-learn简明教程之:SVM支持向量机
- Python/scikit-learn机器学习库(SVM支持向量机)
- 机器学习之支持向量机SVM Support Vector Machine (五) scikit-learn算法库
- python机器学习库scikit-learn简明教程之:Lasso回归预测
- python机器学习库scikit-learn简明教程之:随机森林
- python机器学习库scikit-learn简明教程之:AdaBoost算法
- 用Python的scikit-learn实现支持向量机SVM
- scikit-learn SVM支持向量机算法库使用小结
- 机器学习之支持向量机(svm)
- 机器学习之支持向量机(SVM)
- 机器学习之支持向量机SVM
- 【Python学习】Scikit-learn之SVM
- Scikit-Learn 支持向量机学习
- PYTHON机器学习实战——SVM支持向量机
- 【Python学习系列九】Python机器学习库scikit-learn实现SVM案例
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
- 看一眼就会了的类模板实现
- poj3415 Common Substrings
- CodeForces-716A. Crazy Computer(太水)
- 儲存格式理解筆記(一)WAV格式分析,使用C++
- android核心基础day04
- python机器学习库scikit-learn简明教程之:SVM支持向量机
- bzoj 1948 [Ceoi2006]Connect 插头dp
- ExecuteNonQuery()返回受影响行数不适用select语句
- 查找算法之二分查找
- 基于Linux的Socket编程之TCP全双工Server-Client聊天程序
- ios中关于获取当前时间和截止时间的时间差
- aop 实现方法计时 日志
- 解决发布测试版和正式版修改N多代码的问题
- 那年,我开始编程