Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >特征工程(六): 非线性特征提取和模型堆叠

特征工程(六): 非线性特征提取和模型堆叠

作者头像
机器学习AI算法工程
发布于 2019-10-28 08:57:24
发布于 2019-10-28 08:57:24
1.3K0
举报
当在数据一个线性子空间像扁平饼时 PCA 是非常有用的。但是如果数据形成更复杂的形状呢?一个平面(线性子空间)可以推广到一个 流形 (非线性子空间),它可以被认为是一个被各种拉伸和滚动的表面。

如果线性子空间是平的纸张,那么卷起的纸张就是非线性流形的例子。你也可以叫它瑞士卷。(见图 7-1),一旦滚动,二维平面就会变为三维的。然而,它本质上仍是一个二维物体。换句话说,它具有低的内在维度,这是我们在“直觉”中已经接触到的一个概念。如果我们能以某种方式展开瑞士卷,我们就可以恢复到二维平面。这是非线性降维的目标,它假定流形比它所占据的全维更简单,并试图展开它。

关键是,即使当大流形看起来复杂,每个点周围的局部邻域通常可以很好地近似于一片平坦的表面。换句话说,他们学习使用局部结构对全局结构进行编码。非线性降维也被称为非线性嵌入,或流形学习。非线性嵌入可有效地将高维数据压缩成低维数据。它们通常用于 2-D 或 3-D 的可视化。

然而,特征工程的目的并不是要使特征维数尽可能低,而是要达到任务的正确特征。在这一章中,正确的特征是代表数据空间特征的特征。

聚类算法通常不是局部结构化学习的技术。但事实上也可以用他们这么做。彼此接近的点(由数据科学家使用某些度量可以定义的“接近度”)属于同一个簇。给定聚类,数据点可以由其聚类成员向量来表示。如果簇的数量小于原始的特征数,则新的表示将比原始的具有更小的维度;原始数据被压缩成较低的维度。

与非线性嵌入技术相比,聚类可以产生更多的特征。但是如果最终目标是特征工程而不是可视化,那这不是问题。

我们将提出一个使用 k 均值聚类算法来进行结构化学习的思想。它简单易懂,易于实践。与非线性流体降维相反,k 均值执行非线性流形特征提取更容易解释。如果正确使用它,它可以是特征工程的一个强大的工具。

k 均值聚类

k 均值是一种聚类算法。聚类算法根据数据在空间中的排列方式来分组数据。它们是无监督的,因为它们不需要任何类型的标签,使用算法仅基于数据本身的几何形状来推断聚类标签。

聚类算法依赖于 度量 ,它是度量数据点之间的紧密度的测量。最流行的度量是欧几里德距离或欧几里得度量。它来自欧几里得几何学并测量两点之间的直线距离。我们对它很熟悉,因为这是我们在日常现实中看到的距离。

曲面拼接聚类

应用聚类一般假定存在自然簇,即在其他空的空间中存在密集的数据区域。在这些情况下,有一个正确的聚类数的概念,人们已经发明了聚类指数用于测量数据分组的质量,以便选择k。

然而,当数据像如图 7-2(c)那样均匀分布时,不再有正确的簇数。在这种情况下,聚类算法的作用是矢量量化,即将数据划分成有限数量的块。当使用量化矢量而不是原始矢量时,可以基于可接受的近似误差来选择簇的数目。

从视觉上看,k 均值的这种用法可以被认为是如图 7-3 那样用补丁覆盖数据表面。如果在瑞士卷数据集上运行 k 均值,这确实是我们所得到的。例 7-2 使用sklearn生成瑞士卷上的嘈杂数据集,将其用 k 均值聚类,并使用 Matplotlib 可视化聚类结果。数据点根据它们的簇 ID 着色。

在这个例子中,我们在瑞士卷表面上随机生成 1500 个点,并要求 k 均值用 100 个簇来近似它。我们提出 100 这个数字,因为它看起来相当大,使每一簇覆盖了相当小的空间。结果看起来不错;簇群确实是很小的的,并且流体的不同部分被映射到不同的簇。不错!但我们完成了吗?

问题是,如果我们选择一个太小的K,那么从多元学习的角度来看,结果不会那么好。图 7-5 显示了 k 均值用 10 个簇在瑞士卷的输出。我们可以清楚地看流体的完全的部分都被映射到相同的簇(例如黄色、紫色、绿色和品红簇)的数据。

如果数据在空间中均匀分布,则选择正确的k就被归结为球填充问题。在D维中,可以拟合半径约为R1/rD次幂的球。每个 k 均值聚类是一个球面,半径是用质心表示球面中的点的最大误差。因此,如果我们愿意容忍每个数据点R的最大逼近误差,那么簇的数目是O((1/R)^D),其中D是数据的原始特征空间的维数。

对于 k 均值来说,均匀分布是最坏的情况。如果数据密度不均匀,那么我们将能够用更少的簇来表示更多的数据。一般来说,很难知道数据在高维空间中是如何分布的。我们可以保守的选择更大的 K。但是它不能太大,因为K将成为下一步建模步骤的特征数量。

用于分类的 k 均值特征化

当使用 k 均值作为特征化过程时,数据点可以由它的簇成员(分类变量群组成员的稀疏独热编码)来表示,我们现在来说明。

如果目标变量也是可用的,那么我们可以选择将该信息作为对聚类过程的提示。一种合并目标信息的方法是简单地将目标变量作为 k 均值算法的附加输入特征。由于目标是最小化在所有输入维度上的总欧氏距离,所以聚类过程将试图平衡目标值和原始特征空间中的相似性。可以在聚类算法中对目标值进行缩放以获得更多或更少的关注。目标的较大差异将产生更多关注分类边界的聚类。

k 均值特征化

聚类算法分析数据的空间分布。因此,k 均值特征化创建了一个压缩的空间索引,该数据可以在下一阶段被馈送到模型中。这是模型堆叠(stacking)的一个例子。

例 7-3 显示了一个简单的 k 均值特征。它被定义为可以训练数据和变换任何新数据的类对象。为了说明在聚类时使用和不使用目标信息之间的差异,我们将特征化器应用到使用sklearnmake——moons 函数(例 7-4)生成的合成数据集。然后我们绘制簇边界的 Voronoi 图。图 7-6 展示出了结果的比较。底部面板显示没有目标信息训练的集群。注意,许多簇跨越两个类之间的空空间。顶部面板表明,当聚类算法被给定目标信息时,聚类边界可以沿着类边界更好地对齐。

让我们测试 k 均值特征分类的有效性。例 7-5 对 k 均值簇特征增强的输入数据应用 Logistic 回归。比较了与使用径向基核的支持向量机(RBF SVM)、K 近邻(KNN)、随机森林(RF)和梯度提升树(GBT)的结果。随机森林和梯度提升树是最流行的非线性分类器,具有最先进的性能。RBF 支持向量机是欧氏空间的一种合理的非线性分类器。KNN 根据其 K 近邻的平均值对数据进行分类。(请参阅“分类器概述”来概述每个分类器。)

分类器的默认输入数据是数据的 2D 坐标。Logistic 回归也给出了簇成员特征(在图 7-7 中标注为“k 均值的 LR”)。作为基线,我们也尝试在二维坐标(标记为“LR”)上进行逻辑回归。

可选择的密集化

与独热簇相反,数据点也可以由其逆距离的密集向量表示到每个聚类中心。这比简单的二值化簇保留了更多的信息,但是现在表达是密集的。这里有一个折衷方案。一个热集群成员导致一个非常轻量级的稀疏表示,但是一个可能需要较大的K来表示复杂形状的数据。反向距离表示是密集的,这对于建模步骤可能花费更昂贵,但是这可以需要较小的K

稀疏和密集之间的折衷是只保留最接近的簇的p的逆距离。但是现在P是一个额外的超参数需要去调整。(现在你能理解为什么特征工程需要这么多的步骤吗?),天下没有免费的午餐。

使用 k 均值将空间数据转换为模型堆叠的一个例子,其中一个模型的输入是另一个模型的输出。堆叠的另一个例子是使用决策树类型模型(随机森林或梯度提升树)的输出作为线性分类器的输入。堆叠已成为近年来越来越流行的技术。非线性分类器训练和维护是昂贵的。堆叠的关键一点是将非线性引入特征,并且使用非常简单的、通常是线性的模型作为最后一层。该特征可以离线训练,这意味着可以使用昂贵的模型,这需要更多的计算能力或内存,但产生有用的特征。顶层的简单模型可以很快地适应在线数据的变化分布。这是精度和速度之间的一个很好的折衷,这经常被应用于需要快速适应改变数据分布的应用,比如目标广告。

可能会问 k 均值特化步骤中的目标变量是否也会导致这样的问题。答案是“是的”,但并不像桶计数(Bin-counting)计算的那么多。如果我们使用相同的数据集来学习聚类和建立分类模型,那么关于目标的信息将泄漏到输入变量中。因此,对训练数据的精度评估可能过于乐观,但是当在保持验证集或测试集上进行评估时,偏差会消失。此外,泄漏不会像桶计数那么糟糕(参见“桶计数”),因为聚类算法的有损压缩将抽象掉一些信息。要格外小心防止泄漏,人们可以始终保留一个单独的数据集来导出簇,就像在桶计数下一样。

k 均值特化对有实数、有界的数字特征是有用的,这些特征构成空间中密集区域的团块。团块可以是任何形状,因为我们可以增加簇的数量来近似它们。(与经典的类别聚类不同,我们不关心真正的簇数;我们只需要覆盖它们。)

k 均值不能处理欧几里得距离没有意义的特征空间,也就是说,奇怪的分布式数字变量或类别变量。如果特征集包含这些变量,那么有几种处理它们的方法:

  1. 仅在实值的有界数字特征上应用 k 均值特征。
  2. 定义自定义度量(参见第?章以处理多个数据类型并使用 k 中心点算法。(k 中心点类似于 k 均值,但允许任意距离度量。)
  3. 类别变量可以转换为装箱统计(见“桶计数”),然后使用 K 均值进行特征化。

结合处理分类变量和时间序列的技术,k 均值特化可以自适应的处理经常出现在客户营销和销售分析中的丰富数据。所得到的聚类可以被认为是用户段,这对于下一个建模步骤是非常有用的特征。

我们将在下一章中讨论的深度学习,是通过将神经网络层叠在一起,将模型堆叠提升到一个全新的水平。ImageNet 挑战的两个赢家使用了 13 层和 22 层神经网络。就像 K 均值一样,较低层次的深度学习模型是无监督的。它们利用大量可用的未标记的训练图像,并寻找产生良好图像特征的像素组合.

https://github.com/apachecn/feature-engineering-for-ml-zh/blob/master/docs/7.%E9%9D%9E%E7%BA%BF%E6%80%A7%E7%89%B9%E5%BE%81%E6%8F%90%E5%8F%96%E5%92%8C%E6%A8%A1%E5%9E%8B%E5%A0%86%E5%8F%A0.md

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
特征工程系列之非线性特征提取和模型堆叠
当在数据一个线性子空间像扁平饼时 PCA 是非常有用的。但是如果数据形成更复杂的形状呢?一个平面(线性子空间)可以推广到一个 流形 (非线性子空间),它可以被认为是一个被各种拉伸和滚动的表面。
墨明棋妙27
2022/09/23
1.4K0
机器学习算法地图2021版
为了帮助大家理清机器学习的知识脉络,建立整体的知识结构,2018年SIGAI推出过机器学习算法地图,纸质版和电子版的阅读量超过10万。两年之后,我们对算法地图进行了优化升级,使得它的结构更为合理清晰,内容更为简洁。下面先看算法地图2021版的整图
SIGAI学习与实践平台
2021/03/22
1.1K0
机器学习算法地图2021版
深度学习500问——Chapter02:机器学习基础(5)
例:有两个外形完全相同的箱子,1号箱有99只白球,1只黑球;2号箱子有1只白球,99只黑球。在一次实验中,取出的是黑球,请问从哪个箱子中取出的?
JOYCE_Leo16
2024/03/19
1470
深度学习500问——Chapter02:机器学习基础(5)
机器学习算法地图
很多同学在学机器学习和深度学习的时候都有一个感受:所学的知识零散、不系统,缺乏整体感,这是普遍存在的一个问题。在这里,SIGAI对常用的机器学习和深度学习算法进行了总结,整理出它们之间的关系,以及每种算法的核心点,各种算法之间的比较。由此形成了一张算法地图,以帮助大家更好的理解和记忆这些算法。
SIGAI学习与实践平台
2018/07/05
1.4K1
机器学习算法地图
机器学习中的目标函数总结
几乎所有的机器学习算法都归结为求解最优化问题。有监督学习算法在训练时通过优化一个目标函数而得到模型,然后用模型进行预测。无监督学习算法通常通过优化一个目标函数完成数据降维或聚类。强化学习算法在训练时通过最大化奖励值得到策略函数,然后用策略函数确定每种状态下要执行的动作。多任务学习、半监督学习的核心步骤之一也是构造目标函数。一旦目标函数确定,剩下的是求解最优化问题,这在数学上通常有成熟的解决方案。因此目标函数的构造是机器学习中的中心任务。
SIGAI学习与实践平台
2021/01/05
1.5K0
机器学习中的目标函数总结
常用机器学习算法汇总(中)
上一篇文章介绍了线性回归、逻辑回归、决策树和随机森林四种算法,本文会继续介绍四种算法--SVM、朴素贝叶斯、KNN 以及 kmean 算法,其中最后一种是无监督学习的聚类算法,前面三种也是非常常见的算法,特别是 SVM,在 2012 年 AlexNet 网络的成功之前,一直都是图像分类中非常常用的分类算法。
kbsc13
2019/08/16
6110
机器学习模型从理论到实战|【007-K均值聚类(K-Means)】新闻主题分类
今日推荐:线性分类器全解析:Logistic 回归、Softmax 回归、感知器和支持向量机
远方2.0
2024/12/03
2160
机器学习模型从理论到实战|【007-K均值聚类(K-Means)】新闻主题分类
AI人工智能面试题
监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如:分类;
zhangjiqun
2024/12/14
1570
AI人工智能面试题
「Workshop」第十一期:降维
前言:主要是从理解降维和用R实现降维这两个层面上来阐述,具体的算法还需要感兴趣的小伙伴另外了解。
王诗翔呀
2020/08/10
1.4K0
「Workshop」第十一期:降维
算法工程师-机器学习面试题总结(3)
FM(因子分解机)模型和逻辑回归是两种常见的预测建模方法,它们在一些方面有不同的优缺点
机器学习AI算法工程
2023/09/04
9750
算法工程师-机器学习面试题总结(3)
特征工程(五): PCA 降维
本章标志着进入基于模型的特征工程技术。在这之前,大多数技术可以在不参考数据的情况下定义。对于实例中,基于频率的过滤可能会说“删除所有小于n的计数“,这个程序可以在没有进一步输入的情况下进行数据本身。 另一方面,基于模型的技术则需要来自数据的信息。例如,PCA 是围绕数据的主轴定义的。 在之前的技术中,数据,功能和模型之间从来没有明确的界限。从这一点前进,差异变得越来越模糊。这正是目前关于特征学习研究的兴奋之处。
机器学习AI算法工程
2019/10/28
1.1K0
特征工程(五): PCA 降维
特征工程之数据预处理(下)
上篇文章介绍了如何处理缺失值和图片数据扩充的问题,这篇文章会介绍另外两种情况,处理异常值和类别不平衡的问题。
kbsc13
2019/08/16
1.1K0
非监督学习
想比于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式。非监督学习主要包含两大类学习方法:数据聚类和特征变量关联。其中,聚类算法往往是通过多次迭代来找到数据的最优分割,而特征变量关联则是利用各种相关性分析来找到变量之间的关系。
全栈程序员站长
2022/06/29
4700
Python机器学习笔记:不得不了解的机器学习面试知识点(1)[通俗易懂]
  机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因此将机器学习中常见的原理性问题记录下来,保持对各个机器学习算法原理和特点的熟练度。
全栈程序员站长
2022/09/07
3590
Python机器学习笔记:不得不了解的机器学习面试知识点(1)[通俗易懂]
​特征工程系列:特征预处理(上)
关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~
石晓文
2019/08/29
1.4K0
​特征工程系列:特征预处理(上)
​特征工程系列:特征预处理(上)
关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~
木东居士
2019/08/08
1K0
​特征工程系列:特征预处理(上)
5 大常用机器学习模型类型总结
本文介绍了 5 大常用机器学习模型类型:集合学习算法,解释型算法,聚类算法,降维算法,相似性算法,并简要介绍了每种类型中最广泛使用的算法模型。我们希望本文可以做到以下三点: 1、应用性。 涉及到应用问题时,知识的普适性显然非常重要。所以我们希望通过给出模型的一般类别,让你更好地了解这些模型应当如何应用。 2、相关性。 本文并不包括所有的机器学习模型,比如Naïve Bayes(朴素贝叶斯)和SVM这种传统算法,在本文中将会被更好的算法所取代。 3、可消化性。对于数学基础较薄弱的读者而言,过多地解释算法会让
张俊红
2022/03/29
3K0
【算法】聚类算法
小编邀请您,先思考: 1 有哪些算法可以聚类?各自有什么特点? 2 聚类算法的效果如何评价? 1 定义 聚类是数据挖掘中的概念,就是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。 2 聚类过程 数据准备:包括特征标准化和降维; 特征选择:从最初的特征中选择最有效的特征,并将其存储于向量中; 特征提取:通过对所选择的特征进行转换形成新的突出特征;
陆勤_数据人网
2018/03/27
1.8K0
【算法】聚类算法
【深度学习】六大聚类算法快速了解
本文将从简单高效的 K 均值聚类开始,依次介绍均值漂移聚类、基于密度的聚类、利用高斯混合和最大期望方法聚类、层次聚类和适用于结构化数据的图团体检测。我们不仅会分析基本的实现概念,同时还会给出每种算法的优缺点以明确实际的应用场景。
Twcat_tree
2023/11/24
8410
【深度学习】六大聚类算法快速了解
数据挖掘十大经典算法
数据挖掘十大经典算法 一、 C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足; 2) 在树构造过程中进行剪枝; 3) 能够完成对连续属性的离散化处理; 4) 能够对不完整数据进行处理。 C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的
用户1737318
2018/06/05
1.2K0
相关推荐
特征工程系列之非线性特征提取和模型堆叠
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档