Scikit-learn Quick Start
目的:机器学习
机器学习是通过N个数据去预测位置的数据,主要包括以下几个问题:
- 监督学习
– 分类
– 回归 - 非监督学习
加载数据库
sklearn中包含一些数据库,例如,用于分类的iris和digits数据库和用于回归的波士顿房价数据库。
具体的,sklearn实现,例如:
$ python
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()
datasets.load_XXX的返回值为’sklearn.datasets.base.Bunch’,包含以下属性:
- target_names/feature_names:目标或特征的名称
- data:数据
- target:训练目标
- DSCR:备注
可以通过 XXX.data
和XXX.target
来刚问数据和目标。
学习和预测
在sklearn中,预测可以通过fit(X, y)
和predit(T)
来实现。
以SVM为例
#初始化SVM
from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.)
#训练模型
clf.fit(digits.data[:-1], digits.target[:-1])
#预测模型
clf.predict(digits.data[-1:])
模型的保存
可以使用pickle
来保存模型。
>>> 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
常用操作
数据转换
如果不是特殊声明,输入将被转化为float64
:
>>> import numpy as np
>>> from sklearn import random_projection>>> rng = np.random.RandomState(0)
>>> X = rng.rand(10, 2000)
>>> X = np.array(X, dtype='float32')
>>> X.dtype
dtype('float32')>>> transformer = random_projection.GaussianRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.dtype
dtype('float64')
回归的目标为float64
,而分类的目标类型将会被保留:
>>> from sklearn import datasets
>>> from sklearn.svm import SVC
>>> iris = datasets.load_iris()
>>> clf = SVC()
>>> clf.fit(iris.data, iris.target)
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)>>> list(clf.predict(iris.data[:3]))
[0, 0, 0]>>> clf.fit(iris.data, iris.target_names[iris.target])
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)>>> list(clf.predict(iris.data[:3]))
['setosa', 'setosa', 'setosa']
重拟合和更新参数
预测期的超参数可以通过sklearn.pipeline.Pipeline.set_params 函数更新。多次调用fit()
会覆盖前面学习的模型。
>>> import numpy as np
>>> from sklearn.svm import SVC>>> rng = np.random.RandomState(0)
>>> X = rng.rand(100, 10)
>>> y = rng.binomial(1, 0.5, 100)
>>> X_test = rng.rand(5, 10)>>> clf = SVC()
>>> clf.set_params(kernel='linear').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='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
>>> clf.predict(X_test)
array([1, 0, 1, 1, 0])>>> clf.set_params(kernel='rbf').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)
>>> clf.predict(X_test)
array([0, 0, 0, 1, 0])
Scikit-learn Quick Start相关推荐
- Scikit Learn: 在python中机器学习
Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...
- [转载]Scikit Learn: 在python中机器学习
原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别
之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...
- 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络
本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...
- python scikit learn 关闭开源_scikit learn 里没有神经网络?
本教程的代码和数据来自于 Springboard 的博客教程,希望能为你提供帮助.作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:ht ...
- scikit - learn 做文本分类
文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...
- python基于svm的异常检测_[scikit learn]:异常检测-OneClassSVM的替代方案
不幸的是,scikit目前只学习implements一类支持向量机和用于离群点检测的鲁棒协方差估计 通过检查2d数据上的差异,可以尝试比较这些方法(as provided in the doc):im ...
- Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行单机训练并预测...
3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算 ...
- python scikit learn 封装_python的scikit-learn的主要模块和基本使用
在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...
最新文章
- 博士申请 | 日内瓦大学招收机器学习和计算机视觉博士生(年薪35万)
- (转载)(c#)数据结构与算法分析 --数组、向量和表
- 你知道吗?脑机接口训练会对大脑物质结构和功能产生影响
- C++ Primer 5th笔记(chap 12 动态内存)动态数组
- AspectCore中的IoC容器和依赖注入
- 如何让new操作符只构造,不申请内存
- linux 游戏 黑白,黑白迭代官方版游戏-黑白迭代下载v0.5-Linux公社
- Java的string学习笔记 与char数组和bufferstring的比较
- [转]微软:Visio 2010包括三大版本 功能对比
- 各种Camera,总有一款适合你(一)
- c语言链表移动北理工,北京理工大学c语言网络教室 链表
- 十年里程碑 vivo X80铸造高端手机的主色调
- 飞信免费发短信API接口
- 创建springboot项目后运行,找不到或无法加载主类 com.itheima.Application,原因: java.lang.ClassNotFoundException
- Vray材质——金属材质
- find_element()和find_elements()的区别
- 操作系统第三次实验——线程基础总结
- matlab仿真超声波测距,汽车倒车雷达的Simulink仿真测试
- LoRa网关和NS的那些事
- 计算机专业大学河南省,计算机专业“国内知名”大学23所,河南1所高校榜