机器学习中的十种非线性降维技术对比总结

降维是指在减少数据集特征数量的同时,尽可能保留数据的主要信息。降维算法属于无监督学习,通过未标记数据来训练算法。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

机器学习中的十种非线性降维技术对比总结

尽管降维方法种类繁多,但它们都可以归为两大类:线性和非线性。

线性方法将数据从高维空间线性投影到低维空间(因此称为线性投影)。例子包括PCA和LDA。

非线性方法是执行非线性降维的一种途径,通常用于发现原始数据的非线性结构。当原始数据不容易线性分离时,非线性降维方法就显得尤为重要。在某些情况下,非线性降维也被称为流形学习,这种方法能够更有效地处理高维数据,并帮助揭示数据的潜在结构。通过非线性降维,我们可以更好地理解数据之间的关系,发现数据中隐藏的模式和规律,为进一步的数据分析和应用提供有力支持。

机器学习中的十种非线性降维技术对比总结

本文整理了10个常用的非线性降维技术,可以帮助你在日常工作中进行选择

1、核PCA

你们可能熟悉正常的PCA,这是一种线性降维技术。核PCA可以看作是正态主成分分析的非线性版本。

主成分分析和核主成分分析都可用于降维,但核PCA在处理线性不可分数据方面更为有效。核PCA的主要优势在于将非线性可分的数据转化为线性可分,同时减少数据维度。核PCA通过引入核技巧,能够捕捉数据中的非线性结构,从而提高数据的分类性能。因此,核PCA在处理复杂数据集时具有更强的表现力和泛化能力。

我们先创建一个非常经典的数据:

import matplotlib.pyplot as plt plt.figure(figsize=[7, 5])  from sklearn.datasets import make_moons X, y = make_moons(n_samples=100, noise=None, random_state=0)  plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='plasma') plt.title('Linearly inseparable data')

机器学习中的十种非线性降维技术对比总结

这两种颜色代表线性上不可分割的两类。我们不可能在这里画一条直线把这两类分开。

我们先使用常规PCA。

 import numpy as np from sklearn.decomposition import PCA  pca = PCA(n_components=1) X_pca = pca.fit_transform(X)  plt.figure(figsize=[7, 5]) plt.scatter(X_pca[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after linear PCA') plt.xlabel('PC1')

机器学习中的十种非线性降维技术对比总结

可以看到,这两个类仍然是线性不可分割的,现在我们试试核PCA。

 import numpy as np from sklearn.decomposition import KernelPCA  kpca = KernelPCA(n_components=1, kernel='rbf', gamma=15) X_kpca = kpca.fit_transform(X)  plt.figure(figsize=[7, 5]) plt.scatter(X_kpca[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.axvline(x=0.0, linestyle='dashed', color='black', linewidth=1.2) plt.title('First component after kernel PCA') plt.xlabel('PC1')

机器学习中的十种非线性降维技术对比总结

这两个类变成了线性可分的,核PCA算法使用不同的核将数据从一种形式转换为另一种形式。核PCA是一个两步的过程。首先核函数暂时将原始数据投影到高维空间中,在高维空间中,类是线性可分的。然后算法将该数据投影回n_components超参数(我们想要保留的维数)中指定的较低维度。

sklearn中有四个核选项:linear’, ‘poly’, ‘rbf’ and ‘sigmoid’。如果我们将核指定为“线性”,则将执行正常的PCA。任何其他核将执行非线性PCA。rbf(径向基函数)核是最常用的。

2、多维尺度变换(multidimensional scaling, MDS)

多维尺度变换是另一种非线性降维技术,它通过保持高维和低维数据点之间的距离来执行降维。例如,原始维度中距离较近的点在低维形式中也显得更近。

要在Scikit-learn我们可以使用MDS()类。

 from sklearn.manifold import MDS  mds = MDS(n_components, metric) mds_transformed = mds.fit_transform(X)

metric 超参数区分了两种类型的MDS算法:metric和non-metric。如果metric=True,则执行metric MDS。否则,执行non-metric MDS。

我们将两种类型的MDS算法应用于以下非线性数据。

 import numpy as np from sklearn.manifold import MDS  mds = MDS(n_components=1, metric=True) # Metric MDS X_mds = mds.fit_transform(X)  plt.figure(figsize=[7, 5]) plt.scatter(X_mds[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('Metric MDS') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

 import numpy as np from sklearn.manifold import MDS  mds = MDS(n_components=1, metric=False) # Non-metric MDS X_mds = mds.fit_transform(X)  plt.figure(figsize=[7, 5]) plt.scatter(X_mds[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('Non-metric MDS') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

可以看到MDS后都不能使数据线性可分,所以可以说MDS不适合我们这个经典的数据集。

3、Isomap

Isomap(Isometric Mapping)在保持数据点之间的地理距离,即在原始高维空间中的测地线距离或者近似的测地线距离,在低维空间中也被保持。Isomap的基本思想是通过在高维空间中计算数据点之间的测地线距离(通过最短路径算法,比如Dijkstra算法),然后在低维空间中保持这些距离来进行降维。在这个过程中,Isomap利用了流形假设,即假设高维数据分布在一个低维流形上。因此,Isomap通常在处理非线性数据集时表现良好,尤其是当数据集包含曲线和流形结构时。

 import matplotlib.pyplot as plt plt.figure(figsize=[7, 5])  from sklearn.datasets import make_moons X, y = make_moons(n_samples=100, noise=None, random_state=0)  import numpy as np from sklearn.manifold import Isomap  isomap = Isomap(n_neighbors=5, n_components=1) X_isomap = isomap.fit_transform(X)  plt.figure(figsize=[7, 5]) plt.scatter(X_isomap[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying Isomap') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

就像核PCA一样,这两个类在应用Isomap后是线性可分的!

4、Locally Linear Embedding(LLE)

与Isomap类似,LLE也是基于流形假设,即假设高维数据分布在一个低维流形上。LLE的主要思想是在局部邻域内保持数据点之间的线性关系,并在低维空间中重构这些关系。

Calliper 文档对比神器 Calliper 文档对比神器

文档内容对比神器

Calliper 文档对比神器 28 查看详情 Calliper 文档对比神器

 from sklearn.manifold import LocallyLinearEmbedding lle = LocallyLinearEmbedding(n_neighbors=5,n_components=1) lle_transformed = lle.fit_transform(X) plt.figure(figsize=[7, 5]) plt.scatter(lle_transformed[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying LocallyLinearEmbedding') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

只有2个点,其实并不是这样,我们打印下这个数据

机器学习中的十种非线性降维技术对比总结

可以看到数据通过降维变成了同一个数字,所以LLE降维后是线性可分的,但是却丢失了数据的信息。

5、Spectral Embedding

Spectral Embedding是一种基于图论和谱理论的降维技术,通常用于将高维数据映射到低维空间。它的核心思想是利用数据的相似性结构,将数据点表示为图的节点,并通过图的谱分解来获取低维表示。

 from sklearn.manifold import SpectralEmbedding sp_emb = SpectralEmbedding(n_components=1, affinity='nearest_neighbors') sp_emb_transformed = sp_emb.fit_transform(X) plt.figure(figsize=[7, 5]) plt.scatter(sp_emb_transformed[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying SpectralEmbedding') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

6、t-Distributed Stochastic Neighbor Embedding (t-SNE)

t-SNE的主要目标是保持数据点之间的局部相似性关系,并在低维空间中保持这些关系,同时试图保持全局结构。

from sklearn.manifold import TSNE tsne = TSNE(1, learning_rate='auto', init='pca') tsne_transformed = tsne.fit_transform(X) plt.figure(figsize=[7, 5]) plt.scatter(tsne_transformed[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying TSNE') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

t-SNE好像也不太适合我们的数据。

7、Random Trees Embedding

Random Trees Embedding是一种基于树的降维技术,常用于将高维数据映射到低维空间。它利用了随机森林(Random Forest)的思想,通过构建多棵随机决策树来实现降维。

Random Trees Embedding的基本工作流程:

构建随机决策树集合:首先,构建多棵随机决策树。每棵树都是通过从原始数据中随机选择子集进行训练的,这样可以减少过拟合,提高泛化能力。提取特征表示:对于每个数据点,通过将其在每棵树上的叶子节点的索引作为特征,构建一个特征向量。每个叶子节点都代表了数据点在树的某个分支上的位置。降维:通过随机森林中所有树生成的特征向量,将数据点映射到低维空间中。通常使用降维技术,如主成分分析(PCA)或t-SNE等,来实现最终的降维过程。

Random Trees Embedding的优势在于它的计算效率高,特别是对于大规模数据集。由于使用了随机森林的思想,它能够很好地处理高维数据,并且不需要太多的调参过程。

RandomTreesEmbedding使用高维稀疏进行无监督转换,也就是说,我们最终得到的数据并不是一个连续的数值,而是稀疏的表示。所以这里就不进行代码展示了,有兴趣的看看sklearn的sklearn.ensemble.RandomTreesEmbedding

8、Dictionary Learning

Dictionary Learning是一种用于降维和特征提取的技术,它主要用于处理高维数据。它的目标是学习一个字典,该字典由一组原子(或基向量)组成,这些原子是数据的线性组合。通过学习这样的字典,可以将高维数据表示为一个更紧凑的低维空间中的稀疏线性组合。

Dictionary Learning的优点之一是它能够学习出具有可解释性的原子,这些原子可以提供关于数据结构和特征的重要见解。此外,Dictionary Learning还可以产生稀疏表示,从而提供更紧凑的数据表示,有助于降低存储成本和计算复杂度。

 from sklearn.decomposition import DictionaryLearning  dict_lr = DictionaryLearning(n_components=1) dict_lr_transformed = dict_lr.fit_transform(X) plt.figure(figsize=[7, 5]) plt.scatter(dict_lr_transformed[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying DictionaryLearning') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

9、Independent Component Analysis (ICA)

Independent Component Analysis (ICA) 是一种用于盲源分离的统计方法,通常用于从混合信号中估计原始信号。在机器学习和信号处理领域,ICA经常用于解决以下问题:

盲源分离:给定一组混合信号,其中每个信号是一组原始信号的线性组合,ICA的目标是从混合信号中分离出原始信号,而不需要事先知道混合过程的具体细节。特征提取:ICA可以被用来发现数据中的独立成分,提取数据的潜在结构和特征,通常在降维或预处理过程中使用。

ICA的基本假设是,混合信号中的各个成分是相互独立的,即它们的统计特性是独立的。这与主成分分析(PCA)不同,PCA假设成分之间是正交的,而不是独立的。因此ICA通常比PCA更适用于发现非高斯分布的独立成分。

 from sklearn.decomposition import FastICA  ica = FastICA(n_components=1, whiten='unit-variance') ica_transformed = dict_lr.fit_transform(X) plt.figure(figsize=[7, 5]) plt.scatter(ica_transformed[:, 0], np.zeros((100,1)), c=y, s=50, cmap='plasma') plt.title('First component after applying FastICA') plt.xlabel('Component 1')

机器学习中的十种非线性降维技术对比总结

10、Autoencoders (AEs)

到目前为止,我们讨论的NLDR技术属于通用机器学习算法的范畴。而自编码器是一种基于神经网络的NLDR技术,可以很好地处理大型非线性数据。当数据集较小时,自动编码器的效果可能不是很好。

机器学习中的十种非线性降维技术对比总结

自编码器我们已经介绍过很多次了,所以这里就不详细说明了。

总结

非线性降维技术是一类用于将高维数据映射到低维空间的方法,它们通常适用于数据具有非线性结构的情况。

大多数NLDR方法基于最近邻方法,该方法要求数据中所有特征的尺度相同,所以如果特征的尺度不同,还需要进行缩放。

另外这些非线性降维技术在不同的数据集和任务中可能表现出不同的性能,因此在选择合适的方法时需要考虑数据的特征、降维的目标以及计算资源等因素。

以上就是机器学习中的十种非线性降维技术对比总结的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/426178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 11:52:39
下一篇 2025年11月7日 11:53:37

相关推荐

  • Microsoft Teams如何设置访客权限 Microsoft Teams外部协作的安全管理

    首先登录Microsoft 365管理中心启用Teams访客访问功能,接着在Azure AD中配置目录范围与信息可见性限制,最后通过敏感度标签、审核日志、DLP策略及文件共享设置实施沟通与内容安全管控,实现外部协作的安全管理。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 D…

    2025年12月6日 科技
    000
  • Linux下安装SQLServer2019的方法

    可以直接参考官方文档:https://www.php.cn/link/32824c14387bff0a269b11c976c1d0d0 安装SQL Server 首先,下载 SQL Server 2019 (15.x) 的 Red Hat 存储库配置文件: sudo curl -o /etc/yum…

    2025年12月4日
    000
  • Linux实现自动挂载autofs的方法详解

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 目录 实现自动挂载-autofs autofs工具简单使用 autofs配置详细说明 自动挂载资源有两种格式 优化Linux系统性能 安装Tuned 选择调整配置文件 检查系统推荐的调整配置文件…

    2025年12月4日
    000
  • 构建AI智能体:决策树的核心机制(一):刨根问底鸢尾花分类中的参数推理计算

    ​一、初识决策树 想象一个生活中的场景,我们去水果店买一个西瓜,该怎么判断一个西瓜是不是又甜又好的呢?我们可能会问自己一系列问题: 首先看看它的纹路清晰吗?如果“是”,那么它可能是个好瓜。如果“否“,那我们可能会问下一个问题:敲起来声音清脆吗? 如果“是”,那么它可能还是个不错的瓜。如果“否“,那我…

    2025年12月2日 科技
    000
  • DeepSeek怎样用代码解释器绘函数图_DeepSeek用代码解释器绘函数图【函数绘图】

    首先确保导入numpy和matplotlib库,然后定义函数表达式并生成x、y坐标点,接着调用plt.plot()绘制曲线并添加标签和网格,最后使用plt.show()显示图像或plt.savefig()保存为文件。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSe…

    2025年12月2日 科技
    000
  • ICCV 2023揭晓:ControlNet、SAM等热门论文斩获奖项

    在法国巴黎举行了国际计算机视觉大会ICCV(International Conference on Computer Vision)本周开幕 作为全球计算机视觉领域顶级的学术会议,ICCV 每两年召开一次。 ICCV的热度一直以来都与CVPR不相上下,屡创新高 在今天的开幕式上,ICCV官方公布了今…

    2025年12月2日 科技
    000
  • Kubernetes调试终极武器: K8sGPT

    随着人工智能和机器学习技术的不断发展,企业和组织开始积极探索创新战略,以利用这些技术来提升竞争力。 K8sGPT[2]是该领域内功能强大的工具之一,它是基于k8s的GPT模型,兼具k8s编排的优势和GPT模型出色的自然语言处理能力。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使…

    2025年12月2日 科技
    000
  • 人工智能如何将数据中心转变为可持续性的动力

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 数据中心历来是许多技术进步的支柱,现在面临的不仅仅是基础设施提供商的问题。人工智能的快速发展凸显了数据中心迫切需要更加敏捷、创新和协作,为这个新时代提供动力。 人工智能和机器学习的蓬勃发展,加上…

    2025年12月2日 科技
    000
  • 腾讯AI开放平台如何申请API密钥_腾讯AI开放平台API密钥申请全过程

    首先需注册并登录腾讯AI开放平台,然后创建应用获取AppID和AppKey,接着为应用开通所需AI能力,最后在项目中安全配置API密钥以完成调用准备。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 如果您尝试在腾讯AI开放平台调用AI能力,…

    2025年12月2日 科技
    000
  • AI视频智能拆条怎么操作_AI长视频智能拆条功能与使用技巧

    一、使用AI浏览器可一键自动拆条,系统分析画面、语音和字幕生成片段;二、专业平台支持基础或自定义模式拆条,通过设置In/Out时间精准分割;三、开发者可通过OpenAPI调用SubmitSegmentationJob接口实现批量自动化处理;四、手动创建项目可在时间轴上精确定位入点和出点,逐段提取集锦…

    2025年12月2日 科技
    000
  • gemini2怎么调整模型温度_gemini2模型温度调整参数详尽说明

    调整Gemini 2模型输出的关键是设置temperature参数,通过API或Google AI Studio可调节其值(0.0–2.0)以控制随机性,结合topP参数协同优化生成效果。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 如果…

    2025年12月2日 科技
    000
  • 快过 ChatGPT,蚂蚁灵光 AI 助手上线 4 天下载突破 100 万

    蚂蚁灵光上线 4 天下载量突破 100 万,冲上 App Store 中国区免费榜第六,灵光首个百万下载速度超过 ChatGPT、Sora2、DeepSeek 等全球主流 AI 产品。 11 月 18 日,蚂蚁集团官宣推出全模态通用 AI 助手“灵光”,首批上线三大功能 ——“灵光对话”、“灵光闪应…

    2025年12月2日
    000
  • StableDiffusion怎样用负面提示剔杂色_StableDiffusion用负面提示剔杂色【负面提示】

    通过设置负面提示可有效减少StableDiffusion生成图像中的杂色与噪声。1、在Negative Prompt栏输入noise、blurry、artifacts等词汇,抑制常见杂质;2、使用通用词组如low quality、jpeg artifacts提升整体质量;3、针对特定色斑添加具体颜色…

    2025年12月2日 科技
    000
  • 构建AI智能体:决策树的核心机制(二):抽丝剥茧简化专业术语推理最佳分裂点

    ​一、决策树回顾 在大家读这篇文章前,如果对决策树还没有什么概念,可以先看看前一篇《构建ai智能体:决策树的核心机制(一):刨根问底鸢尾花分类中的参数推理计算》,先简单回顾一下决策树:通过提出一系列问题,对数据进行层层筛选,最终得到一个结论(分类或预测),每一个问题都是关于某个特征的判断,而每个答案…

    2025年12月2日 科技
    000
  • 如何通过人工智能(AI)和机器学习应对零售劳动力和执行方面的挑战

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 斑马技术大中华区技术总监 程宁 面对不断增长的需求,零售团队人员数量及具体运营执行是否能及时匹%ignore_a_1%,正成为零售商们不得不面临的挑战。零售团队人员的短缺将使商店难以正常运营。当…

    2025年12月2日
    000
  • 支持跨语言、人声狗吠互换,仅利用最近邻的简单语音转换模型有多神奇

    AI 参与的语音世界真神奇,既可以将一个人的语音换成任何其他人的语音,也可以与动物之间的语音互换。 我们知道,语音转换的目标是将源语音转换为目标语音,并保持内容不变。最近的任意到任意(any-to-any)语音转换方法提高了自然度和说话者相似度,但复杂性却大大增加了。这意味着训练和推理的成本变得更高…

    2025年12月1日 科技
    000
  • 微软AR/VR专利提出使用时间复用谐振驱动产生双极性电源

    (映维网Nweon 2023年07月05日)XR头显的面部追踪方案可用于感知用户皮肤的微小运动。在一个示例方案中,头显可配备位于不同位置的多个感测天线的电路。天线信号可以馈入LC谐振电路,并由LC驱动器驱动至谐振。LC谐振电路的输出可以馈入感测放大器,为模数转换器ADC提供合适的信号,而ADC可以将…

    2025年12月1日 科技
    000
  • 用于数据增强的十个Python库

    数据增强是人工智能和机器学习领域的一项关键技术。它涉及到创建现有数据集的变体,提高模型性能和泛化。python是一种流行的ai和ml语言,它提供了几个强大的数据增强库。在本文中,我们将介绍数据增强的十个python库,并为每个库提供代码片段和解释。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索…

    2025年12月1日 科技
    000
  • 机器学习算法中的特征筛选问题

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 机器学习算法中的特征筛选问题 在机器学习领域中,特征筛选是一个非常重要的问题,它的目标是从大量的特征中选择出对预测任务最有用的特征。通过特征筛选可以降低维度,减少计算复杂度,提高模型的准确性和解…

    2025年12月1日 科技
    000
  • 解决不均衡数据集的分类方法有哪些?

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在机器学习领域,不平衡数据集是一种常见问题,指的是训练数据集中不同类别的样本数量差异很大。例如,在二分类问题中,正样本数量远远小于负样本数量。这会导致训练出的模型更倾向于预测数量更多的类别,而忽…

    2025年12月1日 科技
    000

发表回复

登录后才能评论
关注微信