当前位置: 首页 > news >正文

新手学做网站pdf手搜索网站做淘宝客

新手学做网站pdf手,搜索网站做淘宝客,物流软件app前十名,惠州城乡建设部网站降维意味着我们在不丢失太多信息的情况下减少数据集中的特征数量#xff0c;降维算法属于无监督学习的范畴#xff0c;用未标记的数据训练算法。 尽管降维方法种类繁多#xff0c;但它们都可以归为两大类:线性和非线性。 线性方法将数据从高维空间线性投影到低维空间(因此…降维意味着我们在不丢失太多信息的情况下减少数据集中的特征数量降维算法属于无监督学习的范畴用未标记的数据训练算法。 尽管降维方法种类繁多但它们都可以归为两大类:线性和非线性。 线性方法将数据从高维空间线性投影到低维空间(因此称为线性投影)。例子包括PCA和LDA。 非线性方法提供了一种执行非线性降维(NLDR)的方法。我们经常使用NLDR来发现原始数据的非线性结构。当原始数据不可线性分离时NLDR很有用。在某些情况下非线性降维也被称为流形学习。 本文整理了10个常用的非线性降维技术可以帮助你在日常工作中进行选择 1、核PCA 你们可能熟悉正常的PCA这是一种线性降维技术。核PCA可以看作是正态主成分分析的非线性版本。 常规主成分分析和核主成分分析都可以进行降维。但是核PCA能很好地处理线性不可分割的数据。因此核PCA算法的主要用途是使线性不可分的数据线性可分同时降低数据的维数! 我们先创建一个非常经典的数据 import matplotlib.pyplot as pltplt.figure(figsize[7, 5])from sklearn.datasets import make_moonsX, y make_moons(n_samples100, noiseNone, random_state0)plt.scatter(X[:, 0], X[:, 1], cy, s50, cmapplasma)plt.title(Linearly inseparable data)这两种颜色代表线性上不可分割的两类。我们不可能在这里画一条直线把这两类分开。 我们先使用常规PCA。 import numpy as npfrom sklearn.decomposition import PCApca PCA(n_components1)X_pca pca.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(X_pca[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(First component after linear PCA)plt.xlabel(PC1)可以看到这两个类仍然是线性不可分割的现在我们试试核PCA。 import numpy as npfrom sklearn.decomposition import KernelPCAkpca KernelPCA(n_components1, kernelrbf, gamma15)X_kpca kpca.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(X_kpca[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.axvline(x0.0, linestyledashed, colorblack, linewidth1.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 MDSmds MDS(n_components, metric)mds_transformed mds.fit_transform(X)metric 超参数区分了两种类型的MDS算法:metric和non-metric。如果metricTrue则执行metric MDS。否则执行non-metric MDS。 我们将两种类型的MDS算法应用于以下非线性数据。 import numpy as npfrom sklearn.manifold import MDSmds MDS(n_components1, metricTrue) # Metric MDSX_mds mds.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(X_mds[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(Metric MDS)plt.xlabel(Component 1)import numpy as npfrom sklearn.manifold import MDSmds MDS(n_components1, metricFalse) # Non-metric MDSX_mds mds.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(X_mds[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(Non-metric MDS)plt.xlabel(Component 1)可以看到MDS后都不能使数据线性可分所以可以说MDS不适合我们这个经典的数据集。 3、Isomap IsomapIsometric Mapping在保持数据点之间的地理距离即在原始高维空间中的测地线距离或者近似的测地线距离在低维空间中也被保持。Isomap的基本思想是通过在高维空间中计算数据点之间的测地线距离通过最短路径算法比如Dijkstra算法然后在低维空间中保持这些距离来进行降维。在这个过程中Isomap利用了流形假设即假设高维数据分布在一个低维流形上。因此Isomap通常在处理非线性数据集时表现良好尤其是当数据集包含曲线和流形结构时。 import matplotlib.pyplot as pltplt.figure(figsize[7, 5])from sklearn.datasets import make_moonsX, y make_moons(n_samples100, noiseNone, random_state0)import numpy as npfrom sklearn.manifold import Isomapisomap Isomap(n_neighbors5, n_components1)X_isomap isomap.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(X_isomap[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(First component after applying Isomap)plt.xlabel(Component 1)就像核PCA一样这两个类在应用Isomap后是线性可分的! 4、Locally Linear EmbeddingLLE 与Isomap类似LLE也是基于流形假设即假设高维数据分布在一个低维流形上。LLE的主要思想是在局部邻域内保持数据点之间的线性关系并在低维空间中重构这些关系。 from sklearn.manifold import LocallyLinearEmbeddinglle LocallyLinearEmbedding(n_neighbors5,n_components1)lle_transformed lle.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(lle_transformed[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(First component after applying LocallyLinearEmbedding)plt.xlabel(Component 1)只有2个点其实并不是这样我们打印下这个数据 可以看到数据通过降维变成了同一个数字所以LLE降维后是线性可分的但是却丢失了数据的信息。 5、Spectral Embedding Spectral Embedding是一种基于图论和谱理论的降维技术通常用于将高维数据映射到低维空间。它的核心思想是利用数据的相似性结构将数据点表示为图的节点并通过图的谱分解来获取低维表示。 from sklearn.manifold import SpectralEmbeddingsp_emb SpectralEmbedding(n_components1, affinitynearest_neighbors)sp_emb_transformed sp_emb.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(sp_emb_transformed[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)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 TSNEtsne TSNE(1, learning_rateauto, initpca)tsne_transformed tsne.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(tsne_transformed[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)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 DictionaryLearningdict_lr DictionaryLearning(n_components1)dict_lr_transformed dict_lr.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(dict_lr_transformed[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)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 FastICAica FastICA(n_components1, whitenunit-variance)ica_transformed dict_lr.fit_transform(X)plt.figure(figsize[7, 5])plt.scatter(ica_transformed[:, 0], np.zeros((100,1)), cy, s50, cmapplasma)plt.title(First component after applying FastICA)plt.xlabel(Component 1)10、Autoencoders (AEs) 到目前为止我们讨论的NLDR技术属于通用机器学习算法的范畴。而自编码器是一种基于神经网络的NLDR技术可以很好地处理大型非线性数据。当数据集较小时自动编码器的效果可能不是很好。 自编码器我们已经介绍过很多次了所以这里就不详细说明了。 总结 非线性降维技术是一类用于将高维数据映射到低维空间的方法它们通常适用于数据具有非线性结构的情况。 大多数NLDR方法基于最近邻方法该方法要求数据中所有特征的尺度相同所以如果特征的尺度不同还需要进行缩放。 另外这些非线性降维技术在不同的数据集和任务中可能表现出不同的性能因此在选择合适的方法时需要考虑数据的特征、降维的目标以及计算资源等因素。 https://avoid.overfit.cn/post/0d7e9cf08e72486faf46fe341e96e468
http://www.w-s-a.com/news/345557/

相关文章:

  • 摄影网站源码wordpress内涵段子
  • 实验一 电子商务网站建设与维护图片做网站
  • 网站策划书模板大全中国建设部官方网站资格证查询
  • vps绑定多个网站创意咨询策划公司
  • 做qq图片的网站网页制作与网站建设江西
  • 做爰全过程的视频网站网络文化经营许可证怎么办
  • 常德市网站建设网站开发用哪个软件好
  • 网站文章怎么更新时间重庆勘察设计网
  • 外卖网站设计企业网站优化做法
  • 专业的营销型网站制作wordpress版权年份
  • 程序员会搭建非法网站吗怎么把wordpress字去掉
  • 牡丹江营商环境建设监督局网站中国档案网站建设的特点
  • 网站欣赏网站欣赏知名企业网站搭建
  • 书店网站建设可行性分析为大型企业设计网络营销方案
  • 北京教育云平台网站建设中国服装设计网站
  • 网络公司专业做网站豌豆荚app下载
  • 网站建设属于什么岗位济宁网站建设_云科网络
  • wordpress网站监测fwa 网站 欣赏
  • 用jsp做的可运行的网站推广网络
  • 电商网站设计论文wordpress子文件夹建站
  • 临沂网站优化如何如何做公司的网站建设
  • 建设部网站 光纤到户沈阳网页设计兼职
  • 企业网站建设作用宁波企业网站推广效果好
  • wordpress课件站模板做网站的公司 贵阳
  • 低价格网站建设网站建设中的板块名称
  • 青岛网站建设华夏h5链接是什么意思
  • 贸易公司如何做网站百度做的网站一般在什么后台
  • 东莞网站设计方案广州做服装电商拿货的网站
  • 部队网站建设设计dede个人网站模板
  • 个人网站怎么自己备案重庆怎样网站推广