机器学习库scikit-learn简介(一)

2023-05-16

一、机器学习问题                                                                                                      

通常,学习问题考虑n个样本数据集,然后预测未知数据的属性。若各个样本多于一个,例如,对于多维的条目(又称多元数据),即说有多个属性或特性。


我们可以把学习问题划分为如下几个大类:

1. 监督式学习,又分为:

  • 分类
  • 回归
2. 非监督式学习,
涉及到的概念:
机器学习是关于从已有的数据特性集中学习,然后应用到新的数据集。这就是为什么在通常的机器学习中评估一个算法时,把数据分为两部分。一部分为训练集(Training Set)。另一部分为测试集(Testing Set)。
二、加载例子数据集                                                                                                   
scikit-learn自带一些标准的数据集,例如iris和digits数据集用于分类,boston房价数据集用于回归

>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()  
数据集是一个类似于字典的对象,包含所有的数据以及一些关于数据的元数据。数据存储在.data成员中,它是一个n_samples, n_features数组。在监督式问题中,解释性变量存储在.target成员中,更多的关于不同数据集的细节在后续会进行介绍。
例如,在digits数据集中,digits.data访问用于分类digits样本的特征。

>>> 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数据集的目标值。即相应的各个digit图像的数字。如下:

>>> digits.target
array([0, 1, 2, ..., 8, 9, 8])  

数据数组的形状
数据总是一个二维数组,n_sample, n_features,尽管原始数据具有不同的形状,对于digits数据集,各个原始样本是一个8x8的图像,可以使用如下访问:

>>> 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.]])  

三、学习和预测                                                                                                         
在digits数据集中,其任务就是来预测,给定一个图像,它表示的数字是多少?我们给定各个样本十个可能的类(数字0到9),通过估计器来预测未知的样本属于哪个类别。
在scikit-learn中,用于分类的估计器是一个python对象,其实现方法fit(x, y)和predict(T)。
估计器的一个例子是sklearn.svm.SVC,其实现支持向量机分类。估计器的构造器获取参数作为模型的参数,暂时我们认为估计器是一个黑盒。

>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)  
选择模型参数
在该例子中,我们手动设置额gamma值,一般可能会通过使用工具像grid search和cross validation来寻找最优值。
在上述例子中,我们称估计器实例clf为分类器。
现在,必须符合该模型,即必须从该模型学习,通过传递训练集到fit模型来完成。作为训练集,我们使用我们数据集中所有的图像除了最后一个。

>>> 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,
  random_state=None, shrinking=True, tol=0.001, verbose=False)  
现在,我们可以用训练的模型来预测新值。尤其,我们可以问分类器在数据集中最后一张图像(在训练集中没有使用的那张图像)的数字是多少

>>> clf.predict(digits.data[-1])
array([8])  

关于手写数字的识别的完整分类问题的自理,可以见:http://scikit-learn.org/stable/auto_examples/plot_digits_classification.html#example-plot-digits-classification-py


四、模型持久性                                                                                                        

在scikit中,通过使用内置的称为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, degree=3, gamma=0.0,
  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])
array([0])
>>> y[0]
0  
 在scikit的特殊例子中,可以更加对使用joblib来取代pickle感兴趣(joblib.dump&joblib.load),因为对于big data其更加有效,  but can only pickle to the disk and not to a string:


>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')   



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习库scikit-learn简介(一) 的相关文章

  • scikit-learn介绍

    在机器学习和数据挖掘的应用中 xff0c scikit learn是一个功能强大的python包 在数据量不是过大的情况下 xff0c 可以解决大部分问题 学习使用scikit learn的过程中 xff0c 我自己也在补充着机器学习和数据
  • [Python3] 机器学习 ——(二)Scikit-Learn简介

    文章目录 二 Scikit Learn简介 xff08 一 xff09 Scikit Learn的数据表示1 数据表2 特征矩阵3 目标数组 xff08 二 xff09 Scikit Learn的评估器API1 API基础知识2 有监督学习
  • python机器学习之scikit安装

    scikit是Python很容易上手的第三方库 下面介绍一下安装过程中遇到的问题 环境是 xff1a win32 43 python27 安装scikit需要安装numpy和scipy 很多教程都会选择使用easy install或者pip
  • boost learn notes

    lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt boost learn notes boost learn notes Documents http www boost org
  • scikit-learn_Scikit Learn-简介

    scikit learn Scikit Learn 简介 Scikit Learn Introduction In this chapter we will understand what is Scikit Learn or Sklear
  • python scikit_利用Python,SciKit和文本分类进行行为分析

    python scikit 我们几乎所有人都购物 我们购买各种各样的东西 xff0c 从基本必需品 xff08 如食物 xff09 到娱乐产品 xff08 如音乐专辑 xff09 当我们购物时 xff0c 我们不仅在生活中找到可用的东西 x
  • 机器学习库scikit-learn简介(一)

    一 机器学习问题 通常 xff0c 学习问题考虑n个样本数据集 xff0c 然后预测未知数据的属性 若各个样本多于一个 xff0c 例如 xff0c 对于多维的条目 xff08 又称多元数据 xff09 xff0c 即说有多个属性或特性 我
  • Scikit-Learn简介

    写给自己的备忘 1 简介 对 Python 语言 有所了解的科研人员可能都知道 SciPy 一个开源的基于 Python 的科学计算工具包 基于 SciPy xff0c 目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本 xff0
  • scikit简介

    1 scikit learn示例 1 数据采集和标记 from sklearn import datasets digits 61 datasets load digits 2 特征选择 直观方法 xff0c 直接使用图片的每一个像素点 8
  • 【机器学习】Scikit-learn介绍

    一 Scikit learn简介 Scikit learn是一个支持有监督和无监督学习的开源机器学习库 它还为模型拟合 数据预处理 模型选择和评估以及许多其他实用程序提供了各种工具 二 拟合和预测 xff1a 估算器基础 Fitting a
  • 【Tensorflow】辅助工具篇——scikit-image介绍

    很多时候我们跑deep learning算法的难点不在于搭建网络 xff0c 而是数据获取与处理 xff0c 当你看到大量的数据却无从下手时该是怎样的心情 xff01 这几篇我将为大家介绍目前很多paper代码复现中比较流行的辅助工具 首先
  • CVPR2019超分辨率 《zoom to learn,learn to zoom》《Camera lens super resolution 》

    CVPR2019超分领域出现多篇 xff0c 更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路 具体来说 xff0c 以前论文训练数据主要使用的是人为的bicubic下采样得到的 xff0c 网络倾向于学习bicubic下采样的逆过
  • 【超分辨率】Zoom to Learn, Learn to Zoom

    前几天陈启峰大佬在我司内部分享几篇关于图像增强的文章 其中就有这篇 这篇文章是超分辨率落地的一个比较重要的文章 xff0c 跟以往自己去做高 低分辨率数据集不同 xff0c 本文采取了单反直接去制作数据集 xff0c 在真实场景上效果非常好
  • Zoom to Learn, Learn to Zoom

    Abstract 本文表明 xff0c 将机器学习应用于数字变焦时 xff0c 对真实 原始的传感器数据进行操作是有益的 现有的基于学习的超分辨率方法不使用真实的传感器数据 xff0c 而是对经过处理的RGB图像进行操作 我们表明 xff0
  • 机器学习-scikit-learn

    文章目录 前言线性回归模型 LinearRegression准备数据集使用LinearRegression总结 前言 scikit learn是Python中最流行的机器学习库之一 xff0c 它提供了各种各样的机器学习算法和工具 xff0
  • 【机器学习小白必备】Scikit-learn(Sklearn)最常用的函数这里都帮您总结好了~速速来取!持续更新!

    Scikit learn Sklearn 常用函数详解大全 在这篇文章中 xff0c 总结了sklearn模块常用的函数 xff0c 建议收藏 xff01 因为会持续更新 xff01 文章目录 Scikit learn Sklearn 常用
  • Git learn

    分布式版本控制系统 Git https git scm com 一 初始化 init xff0c 添加 add 到暂存区 stage xff0c 提交 commit 到版本库 master 二 工作区 xff0c 版本库 状态 status
  • softwares

    视频切帧 变换分辨率 VLC 文件对比 Beyond Compare 远程控制 向日葵 TeamViewer
  • I/O模型

    参考链接 I O多路复用 IO多路复用之select poll epoll详解 epoll讲解 深入Go语言网络库的基础实现 I O模型 I O模型 1 1 阻塞I O模型 最常用的I O模型 默认情况下 所有文件操作都是阻塞的 比如I O
  • 8款免费企业邮箱

    1 谷歌免费企业邮箱 已收费 标准版 https www google com a cpanel domain new 教育版 https www google com a cpanel education new支持50个帐号 目前每个帐

随机推荐

  • JVM调优-解决native heap持续增长

    问题的提出 xff0c 分析 xff0c 请参考JNI 小心 xff0c 内存怪兽出没 xff08 简单的说起来 xff0c 就是java进程占用了4G内存 xff0c 但是折腾来折腾去 xff0c 整个JVM的堆才100M上下 xff0c
  • Centos 7 安装openjdk8 /jdk8/jre8 mvn-3.5.2 其他版本雷同

    文章目录 openjdk8jdk8 jre8maven 3 5 2源码下载指导 openjdk8 一 使用yum命令搜索支持jdk版本 yum search java grep jdk 二 使用yum安装jdk8 yum install y
  • 【2023最新版】Hexo+github搭建个人博客并绑定个人域名

    Hexo 43 github搭建个人博客并绑定个人域名 本篇教程完整讲述了如何利用Hexo 43 github搭建个人博客并且绑定自己的域名 xff0c 成为自己的网站 xff01 我的博客网站 xff1a 武师叔 做一个有趣而不甘平庸的人
  • H13-531云计算HCIE V2.0——1~400常错题和知识点总结

    1 100 35 FusionStorage Block无法是被配置RAID的磁盘 一定要将RAID信息删除后 Fusionstrage block才能识别到这些磁盘 错误 61 Ceilometer监控通过在计算节点部署Compute服务
  • 我的2013

    今天是2013年的最后一天 xff0c 天气格外的晴朗 xff0c 站在公司的写字楼上 xff0c 能够看到远处的山水 一直都习惯在一年的最后总结一下 xff0c 总结自己哪些地方在成长 xff0c 哪些地方有收获 xff0c 哪些地方需要
  • 项目管理中的TR点

    TR的意思是技术评审 xff0c 是英语Technical Review的简写 一般项目管理中有以下一些技术评审点需要关注 xff1a TR1 概念阶段技术评审点 xff1a 产品需求和概念技术评审 xff08 业务需求评审 xff09 T
  • linux ln 命令使用参数详解(ln -s 软链接)

    这是linux中一个非常重要命令 xff0c 请大家一定要熟悉 它的功能是为某一个文件在另外一个位置建立一个同不的链接 xff0c 这个命令最常用的参数是 s 具体用法是 xff1a ln s 源文件 目标文件 当 我们需要在不同的目录 x
  • 别再让C++头文件中出现“using namespace xxx;”

    在这里 xff0c 我毫不回避地说了这句话 xff1a 引用 我再也不想在任何头文件中看到 using namespace xxx 了 作为一个开发者 团队领导者 xff0c 我经常会去招聘新的项目成员 xff0c 有时候也帮助其他组的人来
  • Linux 查看监听端口的方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • SVN MERGE 和冲突

    摘要 xff1a 最佳做法是避免冲突 冲突时 xff0c 不要把branch merge到trunk 先由最新版本的trunk得到branch 然后再修改文件 xff0c 直接merge过去就行 这样不会有冲突 先用svn merge dr
  • Linux命令之basename使用

    basename 命令 首先使用 help 参数查看一下 basename命令参数很少 xff0c 很容易掌握 basename help 用法示例 xff1a basename usr bin sort 输出 34 sort 34
  • android log详解

    之前两篇文章之后 xff0c 打算再分享一点儿经验 xff1a 之前文章见这里 xff1a 1 xff0c 全看懂了 加两年经验 语音朗读 语音识别 语音控制软件源码 2 xff0c 学生作品 配置NDK集成开发环境全过程第一版 这次打算通
  • 各种编码知识简介

    本文主要介绍我们在日常开发中接触到了latin1 xff0c GBK xff0c GB18030 xff0c UTF 8 编码几种 下面首先来看看这几种编码的的区别 latin1 1 先来看看latin1 参考百度百科 Latin1 是IS
  • Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题 xff0c 用 telnet ssh 登录了远程的 Linux 服务器 xff0c 运行了一些耗时较长的任务 xff0c 结果却由于网络的不稳定导致任务中途失败 如何让命令提交后不受本地关闭终端窗口 网络断开连接的
  • nohup命令浅析

    要将一个命令放到后台执行 xff0c 我们一般使用nohup sh command amp amp 都知道是放到后台执行这个命令 xff0c 那么nohup是做什么的 xff1f 这就要从unix的信号说起 xff0c unix的信号机制可
  • 《曾国藩家书大全集》读书笔记——励志篇

    曾国藩将立志作为人生第一要义 xff0c 只要能立志 xff0c 便人人都可以做圣贤豪杰 人生不但要立志 xff0c 还要持之以恒 xff0c 持之以恒是人生第一美德 xff0c 人而无恒 xff0c 将一事无成 曾国藩很重视逆境对人心志的
  • 书,永远的朋友

    我自己认为我是一个不大喜欢看书的人 xff0c 相对于书 xff0c 我可能跟喜欢看视频和同高手一起讨论交流 但是 xff0c 真正静下心来 xff0c 想着这么多年来 xff0c 对我影响很大的一些书 xff0c 也能想到一些 索性 xf
  • PackageManagerService Android 8.1 源码解读 01

    一 PackageManagerService 是什么 xff1f 答 PackageManagerService xff08 简称 PKMS xff09 xff0c 是 Android 系统中核心服务之一 xff0c 负责应用程序的安装
  • IMU之磁力计校准&地磁场&计算磁航向

    背景知识 xff1a 导航坐标系 xff1a 东 北 天 载体坐标系 xff1a 右 前 上 欧拉角定义 xff1a 3 1 2旋转 xff0c xff08 航向角 俯仰角 滚转角 xff09 xff1b 航向角北偏西为正 xff0c 范围
  • 机器学习库scikit-learn简介(一)

    一 机器学习问题 通常 xff0c 学习问题考虑n个样本数据集 xff0c 然后预测未知数据的属性 若各个样本多于一个 xff0c 例如 xff0c 对于多维的条目 xff08 又称多元数据 xff09 xff0c 即说有多个属性或特性 我