Scikit-learn玩得很熟了?这些功能你都知道吗?

标签: scikit learn 功能 | 发表时间:2018-05-14 02:47 | 作者:大数据文摘
出处:https://www.jiqizhixin.com/

分享一些Scikit-learn程序包里鲜有人知的遗珠功能。

Scikit-learn是Python所有的机器学习程序包中,你必须掌握的最重要的一个包,它包含各种分类算法,回归算法和聚类算法,其中包括支持向量机随机森林梯度提升、k均值和基于密度的聚类算法(DBSCAN),且旨在与Python数值库NumPy和科学库SciPy进行相互配合。

它通过一个接口,提供了一系列的有监督和无监督算法。此库希望在生产中使用时,能具有很好的稳健性和支撑性,所以它的着重点在易用性,代码质量,协同工作,文档生成和性能等问题上。

不管是对机器学习的初学者还是经验丰富的专业人士来说,Scikit-learn库都是应该熟练掌握的优秀软件包。然而,即使是有经验的机器学习从业者可能也没有意识到这个包中所隐藏的一些特性,这些特性可以轻松地帮助他们完成任务。接下来本文将列举几个scikit-learn库中鲜为人知的方法或接口。

管道(Pipeline)

这可以用来将多个估计量链化合一。因为在处理数据时,通常有着一系列固定的步骤,比如特征选择、归一化和分类,此时这个方法将非常有用。

更多信息:http://scikit-learn.org/stable/modules/pipeline.html

网格搜索(Grid-search)

参数参数估计中是不直接学习的,在scikit-learn库中,参数会作为参数传递给估计类的构造函数,然后在参数空间中搜索最佳的交叉验证分数在构建参数估计量时提供的任何参数都是可以用这种方式进行优化的。

更多信息:http://scikit-learn.org/stable/modules/grid_search.html#grid-search

验证曲线(Validation curves)

每种估计方法都有其优缺点,它的泛化误差可以用偏差、方差和噪音来分解。估计量的偏差就是不同训练集的平均误差;估计量的方差是表示对不同训练集的敏感程度;噪声是数据本身的一个属性。

绘制单个参数对训练分数和验证分数的影响是非常有用的,因为从图中可以看出估计量对于某些参数值是过拟合还是欠拟合。在Scikit-learn库中,有一个内置方法是可以实现以上过程的。

更多信息:http://scikit-learn.org/stable/modules/learning_curve.html

分类数据独热编码(One-hot encoding of categorical data

这是一种非常常见的数据预处理步骤,在分类或预测任务中(如混合了数量型和文本型特征的逻辑回归),常用于对多分类变量进行二分类编码。Scikit-learn库提供了有效而简单的方法来实现这一点。它可以直接在Pandas数据框或Numpy数组上运行,因此用户就可以为这些数据转换编写一些特殊的映射函数或应用函数。

Scikit-learn库更多信息:

http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features

多项式特征生成(Polynomial feature generation)

对于无数的回归建模任务来说,一种常用的增加模型复杂程度的有效方法是增加解释变量的非线性特征。一种简单而常用的方法就是多项式特征,因为它可以得到特征的高阶项和交叉项。而Scikit-learn库中有现成的函数,它可根据给定的特征集和用户选择的最高多项式生成更高阶的交叉项。

更多信息:

http://scikit-learn.org/stable/modules/preprocessing.html#generating-polynomial-features

数据集生成器(Dataset generators)

Scikit-learn库包含各种随机样本生成器,可以根据不同大小和复杂程度来构建人工数据集,且具有分类、聚类、回归、矩阵分解和流形测试的功能。

更多信息:

http://scikit-learn.org/stable/datasets/index.html#sample-generators

相关报道:

https://heartbeat.fritz.ai/some-essential-hacks-and-tricks-for-machine-learning-with-python-5478bc6593f2


相关 [scikit learn 功能] 推荐:

Scikit-learn玩得很熟了?这些功能你都知道吗?

- - 机器之心
分享一些Scikit-learn程序包里鲜有人知的遗珠功能. Scikit-learn是Python所有的机器学习程序包中,你必须掌握的最重要的一个包,它包含各种分类算法,回归算法和聚类算法,其中包括支持向量机、随机森林、梯度提升、k均值和基于密度的聚类算法(DBSCAN),且旨在与Python数值库NumPy和科学库SciPy进行相互配合.

用scipy(scikit-learn)做文本分类

- - CSDN博客研发管理推荐文章
文本挖掘的paper没找到统一的benchmark,只好自己跑程序,走过路过的前辈如果知道20newsgroups或者其它好用的公共数据集的分类(最好要所有类分类结果,全部或取部分特征无所谓)麻烦留言告知下现在的benchmark,万谢. 20newsgroups官网上给出了3个数据集,这里我们用最原始的 20news-19997.tar.gz.

[转][转]机器学习工具:scikit-learn/Weka

- - heiyeluren的blog(黑夜路人的开源世界)
开源机器学习工具scikit-learn入门. Scikit-Learn是基于python的机器学习模块,基于BSD开源许可证. 这个项目最早由DavidCournapeau 在2007 年发起的,目前也是由社区自愿者进行维护. Scikit-Learn的官方网站是 http://scikit-learn.org/stable/,在上面可以找到相关的Scikit-Learn的资源,模块下载,文档,例程等等.

基于Spark自动扩展scikit-learn (spark-sklearn) - CSDN博客

- -
1、基于Spark自动扩展scikit-learn(spark-sklearn). Spark MLlib 将传统的单机机器学习算法改造成分布式机器学习算法,比如在梯度下降算法中,单机做法是计算所有样本的梯度值,单机算法是以全体样本为计算单位;而分布式算法的逻辑是以每个样本为单位,在集群上分布式的计算每个样本的梯度值,然后再对每个样本的梯度进行聚合操作等.

【笔记】第四章:从线性回归到逻辑回归-Mastering Machine Learning With scikit-learn

- -
(这章起换用Markdown). 《Mastering Machine Learning With scikit-learn》是一本非常实用的机器学习实战书籍,它使用通俗易懂的语言和适度的理论知识来帮助python开发者使用scikit-learn机器学习工具包实现机器学习相关算法的应用. 早些时候我拜读了这本书,记了些笔记和重要的知识点,今天重新温习了遍,仍有收获,顺便张贴到博客上,一起学习交流.

免费电子书:《Learn Vimscript the Hard Way》

- sunxphere - LinuxTOY
Vim 令人喜爱的地方之一是它支持通过插件来扩展自己,从而满足不同用户的需要. 如果你想为 Vim 编写插件,那么就必须学习 Vimscript 这个内建于 Vim 中的脚本语言. Steve Losh 的《Learn Vimscript the Hard Way》这本免费的电子书恰好可以让你对 Vimscript 上手.

网络图书:《Learn Ruby The Hard Way》繁体版本

- MessyCS - 道喜技术日记 .^. 天天红玉世界
《Learn Ruby The Hard Way》繁体版本.

创业公司必学军规——The Hardest Lessons for Startups to Learn

- - CSDN博客互联网推荐文章
Paul Graham根据Y Combinator多年来孵化创业公司的经验,总结了创业公司必须要学会的经验教训. 那些成功的创业公司之所以成功,很大一定程度是他们快速学习到了这些本领. 1、尽快发布新版本(Release Early). 这也是我们多次强调的创业秘诀:尽早发布V1版本,然后不断快速迭代更新.

doc/keycloak-learn/Spring Cloud Keycloak搭建手把手操作指南.md · 周立/spring-cloud-yes - 码云 Gitee.com

- -
http://www.keycloak.org/downloads.html,按需进行下载. 笔者下载的是“Standalone server distribution”. 安装Keycloak非常简单,步骤如下:. KEYCLOAK_PATH/bin,其中KEYCLOAK_PATH是您Keycloak的根目录.

BTrace功能

- - zzm
       在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等. 为了获取这些数据信息,我们可以 通过改写代码,增加日志信息的打印,再发布到生产环境. 通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部 署后环境可能已被破坏,很难重新问题的场景.