机器学习中必知必会的 8 种降维技术,最后一款超硬核!
Posted Python学习与数据挖掘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中必知必会的 8 种降维技术,最后一款超硬核!相关的知识,希望对你有一定的参考价值。
欢迎关注 ,专注Python、数据分析、数据挖掘、好玩工具!
探索性数据分析是数据科学模型开发管道的重要组成部分。数据科学家将大部分时间花在数据清洗、特征工程和执行其他数据整理技术上。降维是数据科学家在执行特征工程时使用的技术之一。
降维是将高维数据集转换为可比较的低维空间的过程,真实的数据集通常有很多冗余特征,降维技术可用于去除这些冗余特征或将n维数据集转换为2维或3维进行可视化。
在本文中,我们将讨论8种降维技术,它们可以用于各种用例来降低数据集的维度。
1. 缺失值
真实的数据集通常包含大量缺失记录,这可能是由于记录数据时数据损坏或保存失败造成的。我们可以尝试各种数据插补技术来填补缺失的记录,但这仅在特征缺失数量有限时有效。
如果缺失特征值的数量大于指定的阈值,则最好从训练数据中删除该特征。我们可以删除所有缺失特征记录大于阈值(比如50%)的特征,从而降低数据的维度。
上述缺失值解释图像是使用themissingno包为titanic数据生成的。特征“Age”和“Cabin”有大量缺失记录,最终,它们可以从训练样本中去除。
2.相关性滤波器
一个或多个特征的相关性较高说明其具有相似的变化趋势且可能包含相似的信息,它会破坏自变量的统计显著性,我们可以删除与其他独立特征相关的特征,还可以删除与目标类标签不相关的特征。
有多种技术可以计算独立特征之间的相关性,包括 Pearson、Spearman、Kendall、卡方检验等。
上述相关矩阵热图(针对titanic数据集)是使用df.corr()函数计算的。
3.方差滤波器
只有一个特征类别的分类特征或方差很小的数值特征变量,这些特征不会对我们的模型有一定的提升,可以从训练样本中删除。
函数DataFrame.var()可以计算 Pandas 数据帧的所有特征的方差。DataFrame.value_counts()函数可以计算每个特征的分布。
4.前向/后向特征选择
前向特征选择技术是一种选择最佳特征集的包装技术。这是一个循序渐进的过程,特征是根据上一步的推断来选择的。前向特征选择技术的步骤是:
- 1.使用每个特征分别训练机器学习模型,并测量每个模型的性能。
- 2.获取性能最佳的特征并使用其余特征重新训练单个模型。
- 3.重复这个过程并一次添加一个特征,产生性能最佳的特征被保留。
- 4.重复步骤 2 和 3,直到模型的性能没有明显的改善。
后向特征选择技术类似于前向特征选择,但工作方式正好相反,最初选择所有特征,并在每一步中删除最冗余的特征。
5.主成分分析
主成分分析 (PCA) 是一种非常古老的降维技术。PCA 通过保留特征的方差将特征向量投影到低维空间,它找到最大方差的方向以获得最佳特征列表。
PCA 可用于将非常高维的数据投影到所需的维度。PCA算法的步骤是:
- 标准化数据集
- 计算标准化数据集的协方差矩阵
- 计算协方差矩阵的特征值和特征向量
- 取特征向量与具有高特征值的特征向量的点积。
6.t-SNE
t-SNE(t-分布式随机邻域嵌入)是一种降维技术,主要用于数据可视化。t-SNE将高维的数据集转换为可以进一步可视化的二维或三维向量。
t-SNE 的性能优于 PCA,因为它保留了数据的局部结构,并通过保留邻域局部结构将每个数据点从较高维度嵌入到较低维度空间。
更多内容可以查看:https://distill.pub/2016/misread-tsne/
7.UMAP
UMAP(Uniform Manifold Approximation)是一种新的降维技术,它是一种非常有效的可视化和可伸缩降维算法,其工作方式与 t-SNE 类似,但是它保留了更多全局结构、具有优越的运行性能、更好的可扩展性。
更多详情:https://umap-learn.readthedocs.io/en/latest/basic_usage.html
8.自动编码器(Auto Encoder )
自动编码器(Auto Encoder )是一种基于单层感知器的降维方法。它有两个组成部分:压缩(编码器)和扩展(解码器)。输入层和输出层的节点数量相同,而中间层的神经元数量少于输入层和输出层。
数据集被传递到自动编码器神经网络模型,并被编码到较低维度的隐藏层。然后它尝试从简化的编码中生成尽可能接近其原始输入的表示。中间层是减少到可比较的较低维度的向量。
总结
在本文中,我们讨论了基于特征选择的降维方法、基于组件的降维技术、基于投影的方法,最后是基于神经网络的自动编码器。
ISOMAP 是另一种基于投影的降维方法,其工作方式类似于 UMAP 和 t-SNE。SVD 和 ISO 是其他一些基于组件的降维技术。
技术交流
欢迎转载、收藏、有所收获点赞支持一下!
目前开通了技术交流群,群友超过2000人,添加方式如下:
如下方式均可,添加时最好方式为:来源+兴趣方向,方便找到志同道合的朋友
- 方式一、发送如下图片至微信,进行长按识别,回复加群;
- 方式二、直接添加小助手微信号:pythoner666,备注:来自CSDN
- 方式三、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
以上是关于机器学习中必知必会的 8 种降维技术,最后一款超硬核!的主要内容,如果未能解决你的问题,请参考以下文章