python 机器学习_基于 Python 语言的机器学习工具Sklearn

64285bd72580bda2c040b2569658bc24.png

本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具。

   01、Sklearn简介

sklearn(scikit-learn)是Python重要的学习库,它封装了机器学习中常用的算法,包括监督学习、非监督学习等,包括分类、回归、降维和聚类四大机器学习算法,还包含特征提取、数据处理和模型评估三大模块。sklearn建立在NumPy和matplotlib库的基础上。利用这几大模块的优势,可以大大提高机器学习的效率。sklearn拥有着完善的文档,上手容易,具有着丰富的API,在学术界颇受欢迎。sklearn已经封装了大量的机器学习算法,可以简单高效的数据挖掘和数据分析。sklearn可供大家使用,可在各种环境中重复使用。sklearn开放源码,可商业使用 - BSD license。这样,就给了我们无限的想像。sklearn工具功能强大,我们可以从这些方法中挑选适合自己的,去解决自己的问题。

   02、Sklearn中常用模块

sklearn中常用的模块有分类、回归、聚类、降维、模型选择、预处理。具体介绍下图所示:

e65845f166da9df2367335a08a910bc0.png

分类 (Classification)

from sklearn import Some Classifier

from sklearn.linear_model import Some Classifier

from sklearn.ensemble import Some Classifier

回归 (Regression)

from sklearn import Some Regressor

from sklearn.linear_model import Some Regressor

from sklearn.ensemble import Some Regressor

聚类 (Clustering)

from sklearn.cluster import Some Model

降维 (Dimensionality Reduction)

from sklearn.decomposition import Some Model

模型选择 (Model Selection)

from sklearn.model_selection import Some Model

预处理 (Preprocessing)

from sklearn.preprocessing import Some Model

   03、sklearn与tensorflow优劣势

这两个有什么区别,我想,可以从以下这方面来做对比:

1、面对项目的不同,sklearn更适合中小型,特别是数据量不大的项目,此时更需要手动者对数据进行处理,并且选择合适模型的项目,这些计算是可以在CPU直接计算的,没有什么硬件要求。相对的,tf的应用领域上,往往更加注重数据量较大,一般情况下需要GPU进行加速运算。目前很多公司并没有很大量的数据,在选择上,可以作为参考。

2、易用性及封装度上,sklearn更高,这点上,我想很多用过的人都清楚,不做累赘描述。

3、sklearn主要定位是一种通用的机器学习的学习库,tf主要定位还是深度学习。

4、特征工程上,sklearn提供了例如维度压缩、特征选择等,但是这样子并不代表这tf就比sklearn弱。在传统的机器学习中,sklearn需要使用者自行对数据进行数据处理,例如进行特征选择,维度压缩,转换格式等,但是tf可以在开始进行数据训练的过程中,自行从数据中提取有效的特征,从而减少人为的干预。

机器学习的基本方法为:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测(分类)。

   1、获取数据与数据预处理

scikit-learn提供了一些标准数据集,例如用于分类的iris和digits数据集和波士顿房价回归数据集。在下文中,我们从我们的shell启动一个Python解释器,然后加载iris和digits数据集。使用的工具是jupyter,单步调试利器,建议大家练习时优先考虑该工具。

数据集形式根据问题实际情况,有不同的形式,比如文本挖掘常用.txt格式数据集,图像处理常用.png,分类常用数字。是一个类似字典的对象,它保存有关数据的所有数据和一些元数据。该数据存储在 .data 成员中,它是n_samples, n_features数组。在监督问题的情况下,一个或多个响应变量存储在 .target 成员中。例如,在数字数据集的情况下,digits.data 使我们能够得到一些用于分类的样本特征,

而数据的标签(digits.target )表示了数据集内每个数字的真实类别,也就是我们期望从每个手写数字图像中学得的相应的数字标记。

   2、训练模型

在数字数据集的情况下,任务是给出图像来预测其表示的数字。我们给出了10个可能类(数字 0 到 9)中的每一个的样本,我们在这些类上拟合一个估计器,以便能够预测未知的样本所属的类。

在scikit-learn中,分类的估计器是一个Python 对象,它实现了fit(X, y)和predict(T) 等方法。

估计器的一个例子类sklearn.svm.SVC ,实现了支持向量分类。估计器的构造函数以相应模型的参数为参数,但目前我们将把估计器视为黑箱即可;

  3、模型预测与评估

通过数据和模型,下面要做的就是使用模型来处理数据。

在下面的代码中,我们把我们的估计器实例命名为clf ,因为它是一个分类器(classifier)。它现在必须拟合模型,也就是说,它必须从模型中 learn(学习)。这是通过将我们的训练集传递给fit方法来完成的。作为一个训练集,让我们使用数据集中除最后一张以外的所有图像。我们用 [:-1] ,这个Python 语法选择这个训练集,它产生一个包含 digits.data 中除最后一个条目(entry)之外的所有条目的新数组。

由此可看出,模型的最终参数是有多个参数共同确定,但实际情况往往只关注只要参数,也就是,控制变量法,因为,机器学习学习是一个逼近全局最优过程,性能没有最好,只有更好,所以为节省训练时间,多关注主要参数。

   4、预测

现在你可以预测新的值,特别是我们可以向分类器询问 digits 数据集中最后一个图像(没有用来训练的一条实例)的数字是什么。

转载|职坐标

END

9e9b1ec4f05ae36f264fceeb0836ec9d.png

往期精选

用python写个简单但实用的人脸识别系统

python如何实现可视化热力图

使用pandas做数据可视化

整理了25个Pandas实用技巧

Python 四大数据类型总结

29b1510686a3e9dab100ebccb110dad5.png

关注雷课        

学习干货   

099ff93a020a3c3c182870879b7906f3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些你不知道的TCP冷门知识!

简介: 最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。 最近在做数据库相关的事情,碰到了很多TC…

CPU 可以跑多快?地球到火星的距离告诉你!

来源:码农的荒岛求生作者:码农的荒岛求生这张出自Google大神 Jeff Dean的图,展示系统中各种关键操作的时延具体有多少。需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的最新数据见这里:这张图中…

步进电机五根线怎么接_步进驱动和伺服驱动的区别

概述步进电机主要是依相数来做分类,而其中又以二相、五相步进电机为目前市场上所广泛采用。二相步进电机每转最细可分割为400等分,五相则可分割为1000等分,所以表现出来的特性以五相步进电机较佳、加减速时间较短、动态惯性较低。随着全数字式…

可观测告警运维系统调研——SLS告警与多款方案对比

简介: 本文介绍对比多款告警监控运维平台方案,覆盖阿里云SLS、Azure、AWS、自建系统(ELK、Prometheus、TICK)等方案。 前言 本篇是SLS新版告警系列宣传与培训的第三篇,后续我们会推出20系列直播与实战培训视频&#…

Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据

简介: 服务网格ASM的Mixerless Telemetry技术,为业务容器提供了无侵入式的遥测数据。遥测数据一方面作为监控指标被ARMPS/prometheus采集,用于服务网格可观测性;另一方面被HPA和flaggers使用,成为应用级扩缩容和渐进式…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 2 应用级扩缩容

简介: 应用级扩缩容是相对于运维级而言的。像监控CPU/内存的利用率就属于应用无关的纯运维指标,针对这种指标进行扩缩容的HPA配置就是运维级扩缩容。而像请求数量、请求延迟、P99分布等指标就属于应用相关的,或者叫业务感知的监控指标。 本篇…

自动替换 Kubernetes 镜像

来源:云原生指北作者:Addo Zhang最近萌生了个想法,维护一个后网络友好的仓库镜像,在 Pod 创建时将镜像仓库切换到自维护的仓库,从自维护的仓库拉取镜像。前几天体验了极狐Gitlab 的容器镜像库,便是为这个想…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 3 渐进式灰度发布

简介: 作为CNCF[成员](https://landscape.cncf.io/card-mode?categorycontinuous-integration-delivery&groupingcategory&selectedweave-flagger),[Weave Flagger](flagger.app)提供了持续集成和持续交付的各项能力。Flagger将渐进式发布总结为…

react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...

如图:项目中百度地图的应用添加起始点、终点并绘制路线在展示代码的时候首先展示一下后台返回给我的接口{其中position_list参数代表的是用户的行驶点, area参数代表的是服务区的坐标点,下面会用到参数下面开始展示代码了index.html引入百度地…

基线长度中误差的计算_电子战支援实施中的测向技术

派遣一个机载电子战机组执行支援压制敌防空系统任务,在任务计划阶段,全体人员将会获取任务区域内的EOB,机载电子战人员会优先识别他们在任务期间可能会遇到的威胁辐射源,以及其他中立、友好辐射源。当机载电子战人员进入目标作战区…

洞察设计模式的底层逻辑

简介: 设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑&#xff…

pta段错误是什么意思_用Python执行Django数据迁移时报!(1091错误及解决方法)...

前言:今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家!前几天在Pycharm 中的Terminal下,执行数据迁移操作时:第一步: Pyth…

cad大理石填充图案_CAD制图初学入门者必须知道的CAD填充问题

在使用浩辰CAD软件绘制图纸的过程中,经常会用到CAD填充功能。但是CAD制图初学入门者在进行CAD填充时偶尔会遇到一些问题,比如在自己的CAD软件中填充是完整的,但是在别人的CAD软件中打开却出现了缺口,这是什么原因呢?接…

苹果:iOS 比 Android 更安全!

整理 | 祝涛 出品 | CSDN据报道,在答复欧盟委员会数字市场行动的函件中,苹果援引诺基亚2019年、2020年的威胁情况报告称,安卓平台恶意软件的数量是iPhone的15~47倍。苹果称iOS比安卓安全就在于无法绕过商店安装软件,因此坚决…

日志服务SLS 助力识货 APP,解决业务数据采集查询监控问题

简介: 日志服务SLS 助力识货 APP,解决业务数据采集查询监控问题 更多存储标杆案例 欢迎点击下方链接查看 阿里云存储标杆案例样板间 公司介绍 识货APP是虎扑体育旗下的导购应用,致力于为广大年轻用户提供专业的网购决策指导,为…

html5 烟雾,jQuery烟雾背景发生器(HTML5 Canvas插件waterpipe.js

插件描述:waterpipe.js是一个创建烟雾弥漫的背景,有多种效果可选择,自定义参数效果还是挺酷的哦!使用方法1、包括jQuery和waterpipe.js2、创建画布元素内包装Your browser does not support HTML5 canvas.3、创建画布元素内包装var smokyBG …

数据仓库分层存储技术揭秘

简介: 本文介绍数据仓库产品作为企业中数据存储和管理的基础设施,在通过分层存储技术来降低企业存储成本时的关键问题和核心技术。 作者 | 沄浩、士远 来源 | 阿里技术公众号 一 背景 据IDC发布的《数据时代2025》报告显示,全球每年产生的数…

cups支持的打印机列表_网络存储让你的打印机瞬间变无线,打印文件不用愁

无论是公司的文件、合同还是学校的教材作业总有需要打印的而且还需要满足手机、电脑等设备的无线打印不然文件来回拷贝实在是太麻烦了只要打印机搭配群晖NAS旧打印机也能上岗再就业轻松实现无线打印!话不多说,这就开始教大家如何使用!先确认一…

python同时输出多个值_怎样在python中输出多个数组元素?

展开全部 如果2113要输出多个列表元素,实际上是列表的分片5261或者说是切片。 以下代码运4102行通过:12list [a, b, mpilgrim, z, example]print(\n, list[0:3]) 运行效1653果:1.python输出一维矩阵或numpy数组中的非0元素 import numpy as …

网游云上网络优化方案

简介: 网游云上网络优化方案1. 游戏行业背景 1.1 行业概况 2019全球数字游戏营收1094亿美元,其中中国市场328亿美元。国内游戏⽤户数6.5亿;移动端 (60%)>PC端>主机。移动游戏占⽐逐年增⻓已成为绝对的主流。国内公司近3万,近…