【机器学习】降维算法的优劣

欢迎阅读我们的现代机器学习算法的第2部分。在这一部分中,我们将介绍降维的方法,进一步分为特征选择和特征提取。通常,这些任务很少单独执行。相反,他们经常预处理步骤以支持其他任务。

如果你错过了第1部分,你可以在这里查看。它解释了我们的分类算法方法,它涵盖了“三大”机器学习任务:

  1. 回归
  2. 分类
  3. 聚类

在这部分中,我们将介绍:

  1. 特征选择
  2. 特征提取

我们还将在未来的专用指南中介绍其他任务,如密度估算和异常检测。

 

维度的诅咒

在机器学习中,“维度”仅指数据集中的要素(即输入变量)的数量。

当特征数量相对于数据集中的观测数量非常大时,某些  算法很难训练有效的模型。这被称为“维度诅咒”,它尤其适用于  依赖于距离计算的聚类算法。

Dimensionality Reduciton

一个Quora的用户提供了维度,我们将在这里借用诅咒一个很好的比喻:

假设你有一条100码长的直线,你在它的某处丢了一分钱。找到它并不难。沿着这条线走,需要两分钟。

现在让我们说你的每边都有一个100码的方形,你在它的某处丢了一分钱。这将是相当困难的,就像搜索两个足球场粘在一起。这可能需要数天时间。

现在一个100码宽的立方体。这就像搜索一个足球场大小的30层建筑。啊。

通过空间搜索的难度得到了很多,你有更多的维度困难。

在本指南中,我们将介绍降低维度的两种主要方法:特征选择和特征提取。

4.特征选择

功能选择用于过滤数据集中的不相关或冗余功能。特征选择和提取之间的关键区别在于特征选择保留了原始特征的子集,而特征提取创建了全新特征。

需要明确的是,一些监督算法已经具有  内置特征选择,例如正则化回归和随机森林。通常,我们建议从这些算法开始,如果它们适合您的任务。它们在第1部分中有所涉及。

作为独立任务,特征选择可以是无监督的(例如,方差阈值)或监督的(例如遗传算法)。如果需要,您还可以组合多种方法。

 

4.1.方差阈值

方差阈值移除其值从观察到观察没有太大变化的特征(即它们的方差低于阈值)。这些功能几乎没有价值。

例如,如果您有一个公共健康数据集,其中96%的观察结果是针对35岁男性的,那么可以消除“年龄”和“性别”特征,而不会造成重大信息损失。

由于方差取决于比例,因此您应始终首先规范化功能。

  • 优势:  应用方差阈值基于可靠的直觉:不会发生太大变化的功能也不会添加太多信息。这是在建模过程开始时降低维度的简单且相对安全的方法。
  • 缺点:  如果您的问题确实需要减少维数,那么应用方差阈值很少就足够了。此外,您必须手动设置或调整方差阈值,这可能很棘手。我们建议从保守(即较低)阈值开始。
  • 实现: Python / R.

 

4.2.相关阈值

相关阈值删除与其他特征高度相关的特征(即,其值与另一个特征的变化非常相似)。这些功能提供冗余信息。

例如,如果您将具有“Floor Area(Sq.Ft。)”和“Floor Area(Sq.Meters)”的房地产数据集作为单独的功能,则可以安全地删除其中一个。

你应该删除哪一个?那么,你首先要计算所有成对相关性。然后,如果一对要素之间的相关性高于给定阈值,则删除与其他要素具有较大平均绝对相关性的那个。

  • 优势:应用相关阈值也基于可靠的直觉:类似的功能提供冗余信息。某些算法对相关要素不健壮,因此删除它们可以提高性能。
  • 缺点:  同样,您必须手动设置或调整相关阈值,这可能很棘手。另外,如果将阈值设置得太低,则可能会丢失有用信息。只要有可能,我们更喜欢内置特征选择超过相关阈值的算法。即使对于没有内置特征选择的算法,主成分分析(PCA)通常也是更好的选择。
  • 实现: Python / R.

 

4.3.遗传算法(GA)

遗传算法(GA)是一类可以适应不同目的的算法。它们是受进化生物学和自然选择启发的搜索算法,结合了突变和交叉以有效地穿越大型解空间。这是GA背后的直觉的一个很好的介绍

遗传算法自然选择

在机器学习中,GA有两个主要用途。第一个是  优化,例如找到神经网络的最佳权重。

第二个是监督功能选择。在该用例中,“基因”代表个体特征,“有机体”代表候选特征集。“群体”中的每个生物体在健康分数上进行分级,例如在保持集上的模型表现。最适合的生物存活并繁殖,重复直到种群在几代后收敛于解决方案。

  • 优势:遗传算法可以从非常高维的数据集中有效地选择特征,其中穷举搜索是不可行的。当您需要预处理没有内置功能选择的算法(例如最近邻居)的数据时,以及必须保留原始功能(即不允许PCA)时,GA可能是您最好的选择。这些情况可能出现在需要透明且可解释的解决方案的业务/客户端设置中。
  • 缺点: GA为您的实施增加了更高级别的复杂性,并且在大多数情况下它们不值得麻烦。如果可能,使用PCA或直接使用具有内置功能选择的算法更快更简单。
  • 实现: Python / R.

 

4.4.荣誉奖:逐步搜索

逐步搜索是一种基于顺序搜索的监督特征选择方法,它有两种风格:前向和后向。对于前向逐步搜索,您可以从没有任何功能开始。然后,您将使用每个候选功能训练一个1特征模型,并保持版本具有最佳性能。您将继续一次添加一项功能,直到您的性能改进停滞不前。

向后逐步搜索是相同的过程,只是颠倒过来:从模型中的所有功能开始,然后一次删除一个,直到性能开始大幅下降。

我们完全出于历史原因注意到这个算法。尽管许多教科书将逐步搜索列为有效选项,但它几乎总是低于其他监督方法,例如正则化。逐步搜索有许多已  记录的缺陷,其中最致命的一个是它是一种  贪婪的算法,不能解释每个变化的未来影响。我们不推荐这种方法。

 

5.特征提取

特征提取用于创建一组新的,较小的特征,仍然可以捕获大部分有用信息。同样,特征选择保留原始特征的子集,而特征提取创建新特征。

与特征选择一样,一些算法已经具有  内置特征提取。最好的例子是深度学习,它通过每个隐藏的神经层提取原始输入数据的越来越有用的表示。我们在这个覆盖1部分

作为一项独立任务,特征提取可以是无监督(即PCA)或监督(即LDA)。

 

5.1.主成分分析(PCA)

主成分分析(PCA)是一种无监督算法,可创建原始特征的线性组合。新功能是正交的,这意味着它们是不相关的。此外,它们按照“解释的方差”的顺序排列。第一个主成分  (PC1)解释了数据集中的最大方差,PC2解释了第二大方差,依此类推。

PCA示例

因此,您可以通过根据累积解释的方差限制要保留的主要组件的数量来减少维度。例如,您可能决定只保留所需的主要组件,以达到90%的累积解释方差。

在执行PCA之前,应始终规范化数据集,因为转换取决于比例。如果不这样做,那么最大规模的功能将主导您的新主要组件。

  • 优势:  PCA是一种多功能技术,在实践中运作良好。它实现起来快速而简单,这意味着您可以使用和不使用PCA轻松测试算法来比较性能。此外,PCA提供了多种变体和扩展(即内核PCA,稀疏PCA等)来解决特定的障碍。
  • 缺点:  新的主要组成部分不可解释,在某些情况下可能是一个交易破坏者。此外,您仍必须手动设置或调整累积解释方差的阈值。
  • 实现: Python / R.

 

5.2.线性判别分析(LDA)

线性判别分析(LDA) - 不要与潜在的Dirichlet分配混淆 - 也会创建原始特征的线性组合。然而,与PCA不同,LDA不会最大化解释的方差。相反,它最大化了类之间的可分离性

因此,LDA是一种监督方法,只能用于标记数据。那么哪个更好:LDA和PCA?那么,结果将因问题而异,并且 适用第1部分中的相同“无免费午餐”定理。

LDA转换还取决于比例,因此您应首先规范化数据集。

  • 优势:  LDA受到监督,可以(但不总是)提高提取特征的预测性能。此外,LDA提供变化(即二次LDA)来解决特定的障碍。
  • 缺点:  与PCA一样,新功能不易解释,您仍必须手动设置或调整要保留的组件数量。LDA还需要标记数据,这使其更具情境性。
  • 实现: Python / R.

 

5.3.自动编码

自动编码器是经过训练以重建其原始输入的神经网络。例如,训练图像自动编码器以再现原始图像,而不是将图像分类为狗或猫。

那么这有什么用呢?那么,关键是要构建隐藏层,使其具有比输入/输出层更少的神经元。因此,该隐藏层将学习产生原始图像的较小表示。

自动编码器图

由于您使用输入图像作为目标输出,因此自动编码器被视为无人监督。它们可以直接使用(例如图像压缩)或按顺序堆叠(例如深度学习)。

  • 优势:自动编码器是神经网络,这意味着它们可以很好地处理某些类型的数据,例如图像和音频数据。
  • 缺点:自动编码器是神经网络,这意味着他们需要更多的数据来训练。它们不用作通用维数降低算法。
  • 实现: Python / R.

 

结束语

我们刚刚通过现代的降维方法进行旋风式探索,分为特征选择和特征提取。

我们将为您提供第1部分中的相同分离建议。

  1. 实践,实践,实践。抓住数据集并在铁热的时候打击。
  2. 掌握基础知识。例如,首先理解PCA和LDA之间的差异比深入研究LDA与二次LDA的细微差别更有成效。
  3. 请记住,更好的数据优于更高级的算法。我们重复了很多,但这是真实的真相!

原文:https://elitedatascience.com/dimensionality-reduction-algorithms

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BAT机器学习面试1000题320主要涵盖了一些机器学习中的基础知识和概念。其中包括了监督学习、无监督学习、强化学习、深度学习、特征工程、模型评估与选择、模型调优等方面的内容。 首先,监督学习是机器学习中最常见的一类任务,通过给定的输入和输出数据来训练模型,然后利用该模型进行预测。常用的监督学习算法包括线性回归、逻辑回归、决策树、支持向量机等。 无监督学习是指在没有标签的情况下,通过对数据的内在结构和统计特性的学习来进行模式识别和数据聚类等任务。常用的无监督学习算法包括聚类、降维、关联规则等。 强化学习是一种通过试错探索来进行学习的方法,代理在与环境互动的过程中,通过选择行动和接受奖励来最大化累计奖励。常用的强化学习算法包括Q-learning、Deep Q Network等。 深度学习是机器学习领域的一个重要分支,其核心思想是通过构建多层神经网络模型来进行模式识别、分类和预测等任务。常用的深度学习算法包括卷积神经网络、循环神经网络、生成对抗网络等。 特征工程是指对原始数据进行处理和转换,以提取出更有用的特征来训练模型。常用的特征工程方法包括特征选择、特征提取、特征组合等。 模型评估与选择是判断模型性能优劣的重要步骤,常用的评估指标包括准确率、召回率、精确率、F1值等。 模型调优是通过对超参数进行调整来优化模型性能的过程,常用的调优方法包括网格搜索、随机搜索、贝叶斯优化等。 以上是对BAT机器学习面试1000题320的简要回答,涉及到了机器学习中的基础知识和概念,这些知识点对于从事机器学习相关工作的求职者来说是必备的。同时,深入理解这些知识点也有助于在实际工作中更好地应用机器学习算法。 ### 回答2: BAT是中国三大科技巨头,分别指百度、阿里巴巴和腾讯。面试1000题320则是针对机器学习领域的一个面试题库。回答这个问题时,可以从以下几个方面进行阐述: 首先,机器学习是目前计算机科学领域的热门方向,被广泛应用于各个行业和领域。因此,BAT公司作为科技巨头,对机器学习岗位有着很高的需求。面试1000题320是一套比较全面、深入的机器学习面试题库,用于选拔和评估面试者的技术能力和知识深度。 其次,回答这个问题时可以提到,这套题库对于机器学习领域的知识体系做了很好的总结和覆盖。通过解答这些问题,不仅可以考察面试者对于基础理论的理解和掌握程度,还能够测试面试者在实际问题中应用机器学习算法的能力。 再次,回答这个问题时可以强调面试1000题320的重要性和价值。这套题库是基于BAT公司多年实践经验总结而成,对于应聘者来说,通过学习和解答这些问题,可以更好地准备面试,提高竞争力,增加成功的机会。 最后,回答这个问题时可以提到,虽然这套题库有很多问题,但对于机器学习这个领域来说,知识是源源不断的,所以并不仅限于这1000题320。应聘者应该有持续学习的态度,随时关注最新的研究进展和业界动态,保持自身的知识更新和技术成长。 总之,BAT机器学习面试1000题320是一套全面、深入的面试题库,对于应聘者来说具有重要的指导和培训价值。通过学习和解答这些问题,可以更好地准备机器学习领域的面试,并提高竞争力和成功的机会。但同时也要注意,持续学习和跟进最新的研究进展才能在这个领域中不断成长和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值