汪小七、笪洁琼、Aileen编译

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

分享一些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


大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

入门数据集生成器验证曲线网格搜索机器学习PythonSciKit-Learn
2
相关数据
网格搜索技术

网格搜索是一项模型超参数优化技术,常用于优化三个或者更少数量的超参数,本质是一种穷举法。对于每个超参数,使用者选择一个较小的有限集去探索。然后,这些超参数笛卡尔乘积得到若干组超参数。网格搜索使用每组超参数训练模型,挑选验证集误差最小的超参数作为最好的超参数。

逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

欠拟合技术

使用太少参数,以致于不能很好的拟合数据,称为拟合不足(欠拟合)现象

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

梯度提升技术

梯度提升是用于回归和分类问题的机器学习技术,其以弱预测模型(通常为决策树)的集合的形式产生预测模型。 它像其他增强方法一样以阶段式方式构建模型,并且通过允许优化任意可微损失函数来推广它们。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

独热编码技术

独热编码是将分类变量转换为可提供给机器学习算法更好地进行预测的形式的过程。 一种稀疏向量,其中:一个元素设为 1;所有其他元素均设为 0。 one-hot 编码常用于表示拥有有限个可能值的字符串或标识符。例如,假设某个指定的植物学数据集记录了 15000 个不同的物种,其中每个物种都用独一无二的字符串标识符来表示。在特征工程过程中,您可能需要将这些字符串标识符编码为 one-hot 向量,向量的大小为 15000。

推荐文章
暂无评论
暂无评论~