基于 Python 语言的机器学习工具Sklearn
小职 2020-08-28 来源 : 阅读 842 评论 0

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

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

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


01、Sklearn简介

sklearn(scikit-learn)是Python重要的学习库,它封装了机器学习中常用的算法,包括监督学习、非监督学习等,包括分类、回归、降维和聚类四大机器学习算法,还包含特征提取、数据处理和模型评估三大模块。


sklearn建立在NumPy和matplotlib库的基础上。利用这几大模块的优势,可以大大提高机器学习的效率。

sklearn拥有着完善的文档,上手容易,具有着丰富的API,在学术界颇受欢迎。

sklearn已经封装了大量的机器学习算法,可以简单高效的数据挖掘和数据分析。

sklearn可供大家使用,可在各种环境中重复使用。

sklearn开放源码,可商业使用 - BSD license。


这样子,就给了我们无限的想像。


sklearn工具功能强大,我们可以从这些方法中挑选适合自己问题是我,去解决自己的问题。



02、Sklearn中常用模块

sklearn中常用的模块有分类、回归、聚类、降维、模型选择、预处理。


具体介绍下图所示:

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

分类 (Classification)

from sklearn import SomeClassifier

from sklearn.linear_model importSomeClassifier

from sklearn.ensemble import SomeClassifier

回归 (Regression)

from sklearn import SomeRegressor

from sklearn.linear_model import SomeRegressor

from sklearn.ensemble import SomeRegressor

聚类 (Clustering)

from sklearn.cluster import SomeModel

降维 (Dimensionality Reduction)

from sklearn.decomposition import SomeModel

模型选择 (Model Selection)

from sklearn.model_selection import SomeModel

预处理 (Preprocessing)

from sklearn.preprocessing import SomeModel



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 数据集中最后一个图像(没有用来训练的一条实例)的数字是什么。


本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程