Questions tagged «dimensionality-reduction»

指的是将数据所涵盖的大量变量或维数减少为较少维数,同时保留有关数据的尽可能多信息的技术。突出的方法包括PCA,MDS,Isomap等。技术的两个主要子类:特征提取和特征选择。



11
向孩子解释“维数的诅咒”
我听过很多次关于维数诅咒的信息,但是我仍然无法理解这个主意,因为它全是模糊的。 任何人都可以用最直观的方式来解释这一点,就像您向孩子解释时一样,这样我(和其他困惑的我)才能永远理解这一点? 编辑: 现在,让我们说孩子以某种方式听说了聚类(例如,他们知道如何聚成玩具:))。尺寸的增加如何使玩具聚类的工作更加困难? 例如,他们过去只考虑玩具的形状和玩具的颜色(一种颜色的玩具),但现在还需要考虑玩具的尺寸和重量。为什么孩子很难找到类似的玩具? 编辑2 为了便于讨论,我需要通过以下方式进行澄清:“为什么孩子很难找到类似的玩具”-我的意思也是为什么在高维空间中会丢失距离的概念?

4
PCA和方差比例说明
通常,用第一个主成分来解释像PCA这样的分析中的方差分数是什么意思?有人可以直观地解释这一点,但也可以就主成分分析(PCA)给出“解释方差”的精确数学定义吗?XXx 对于简单的线性回归,总是将最佳拟合线的r平方描述为所解释的方差的比例,但我也不知道该怎么做。这里的方差比例是否只是点与最佳拟合线的偏差的延伸?

2
ZCA美白和PCA美白有什么区别?
我对ZCA增白和普通增白感到困惑(通过将主成分除以PCA特征值的平方根获得)。我所知道的, xZCAwhite=UxPCAwhite,xZCAwhite=UxPCAwhite,\mathbf x_\mathrm{ZCAwhite} = \mathbf U \mathbf x_\mathrm{PCAwhite},其中是PCA特征向量。UU\mathbf U ZCA美白有什么用途?普通美白和ZCA美白有什么区别?

6
分解类别变量具有多个级别的原则方法?
有哪些技术可用于将多个类别折叠(或合并)成几个类别,以便在统计模型中将它们用作输入(预测变量)? 考虑像大学生专业这样的变量(由本科生选择的学科)。它是无序的和绝对的,但它可能具有许多不同的层次。假设我想在回归模型中使用major作为预测变量。 按原样使用这些级别进行建模会导致各种问题,因为存在的问题太多了。使用它们会丢弃很多统计精度,并且结果难以解释。我们很少对特定专业感兴趣-我们更可能对广泛的专业类别(子组)感兴趣。但是,并不总是很清楚如何将这些级别划分为这些更高级别的类别,或者甚至要使用多少个更高级别的类别。 对于典型数据,我很乐意使用因子分析,矩阵分解或离散的潜在建模技术。但是专业是互斥的类别,因此我不愿意在任何事情上利用它们的协方差。 此外,我自己并不关心主要类别。我关心产生与我的回归结果相关的更高层次的类别。在二元结果的情况下,对我而言,这建议使用诸如线性判别分析(LDA)之类的方法来生成可最大化判别性能的高级类别。但是LDA是一种受限制的技术,感觉像是肮脏的数据正在挖给我。而且,任何连续的解决方案都将难以解释。 同时,在这种情况下,基于协方差的东西(如多重对应分析(MCA))在我看来是令人怀疑的,因为互斥的虚拟变量之间存在内在的依赖关系-它们更适合用于研究多个类别变量,而不是研究多个类别变量相同的变量。 编辑:要清楚,这是关于折叠类别(不选择它们),并且类别是预测变量或自变量。事后看来,这个问题似乎是“正规化所有事物并让上帝整理出它们的合适时机”。很高兴看到这个问题对很多人都感兴趣!

3
PCA是否适用于布尔(二进制)数据类型?
我想降低高阶系统的维数,并捕获最好在2维或1维场上的大多数协方差。我了解这可以通过主成分分析来完成,并且我在许多情况下都使用了PCA。但是,我从未将其与布尔数据类型一起使用,并且我想知道使用此集合进行PCA是否有意义。因此,例如,假设我有定性或描述性指标,并且如果该指标对该维度有效,那么我将分配“ 1”,否则将分配“ 0”(二进制数据)。因此,例如,假设您要比较《白雪公主》中的七个小矮人。我们有: Doc,Dopey,Bashful,Grumpy,Sneezy,Sleepy和Happy,您想根据自己的特质来安排它们,方法如下: ⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜d Ø Çd ø p ë ÿ乙一个小号ħ ˚Fü 升ģ ř ü 米p ÿ小号ñ Ë É žÿ小号升Ë È p ÿH一个p p ÿ大号一个ç 吨ö 小号Ë 我 Ñ 吨ø 升é ř 一个Ñ 吨1个01个1个01个1个一^ h ø Ñ ø - [R [R ö 升升 0001个1个01个甲吨ħ 升é 吨我Ç1个01个1个1个00w ^Ë 一升吨ħ ÿ1个01个1个000⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟(Lactose IntolerantA …

2
t-SNE何时会引起误解?
引用其中一位作者的话: t分布随机邻居嵌入(t-SNE)是一项降维技术(获奖),特别适合于高维数据集的可视化。 听起来不错,但这是作者的话题。 作者的另一句话(关于上述比赛): 您从这场比赛中收获了什么? 在开始对数据进行预测之前,请始终先对数据进行可视化处理!通常,可视化(例如我制作的可视化)可以洞悉数据分布,从而可以帮助您确定尝试哪种类型的预测模型。 信息必须1 被丢失-这是一个降维技术毕竟。但是,由于这是可视化时使用的一种很好的技术,因此丢失的信息的价值不及突出显示的信息(通过缩小为2或3维,使其可见/可理解)。 所以我的问题是: tSNE什么时候是适合该工作的工具? 什么样的数据集导致它不起作用, 它看起来可以回答什么样的问题,但实际上却不能回答? 在上面的第二个引用中,建议始终可视化您的数据集,是否应该始终使用tSNE进行可视化? 我希望可以反过来最好地回答这个问题,即回答:什么时候tSNE是适合该工作的工具? 提醒我不要依赖tSNE告诉我将如何轻松地对数据进行分类(分为几类-一个判别模型)令人误解的例子是,对于下面的两个图像,生成模型2更糟第一个/左边的可视化数据的准确性为53.6%,第二个/右边的可视化数据的准确性为67.2%。 1 我对此可能是错的,我可能会坐下来,稍后再尝试一个证明/计数器示例 2 请注意,生成模型与判别模型并不相同,但这是我给出的示例。

3
为什么不将t-SNE用作聚类或分类的降维技术?
在最近的一项作业中,我们被告知在MNIST数字上使用PCA将尺寸从64(8 x 8图像)减小到2。然后,我们不得不使用高斯混合模型对数字进行聚类。仅使用2个主要成分的PCA不会产生不同的聚类,因此该模型无法产生有用的分组。 但是,使用带有2个组件的t-SNE,可以更好地分离群集。当将高斯混合模型应用于t-SNE组件时,会产生更多不同的簇。 在下面的图像对中,可以看到具有2个分量的PCA和具有2个分量的t-SNE的差异,其中将变换应用于MNIST数据集。 我已经读到t-SNE仅用于高维数据的可视化(例如在此答案中),但是鉴于其产生的簇不同,为什么不将其用作降维技术,然后将其用于分类模型或一个独立的群集方法?

1
在因素分析/ PCA中进行旋转的直观原因是什么?如何选择合适的旋转?
我的问题 在因子分析(或PCA中的组件)中进行因子轮换的直观原因是什么? 我的理解是,如果变量几乎均等地加载到顶部组件(或因子)中,那么显然很难区分这些组件。因此,在这种情况下,可以使用旋转来更好地区分组件。它是否正确? 轮换会有什么结果?这会影响什么? 如何选择合适的旋转度?有正交旋转和倾斜旋转。如何在这些之间进行选择,这种选择的含义是什么? 请用最少的数学方程式直观地解释。分散的答案中很少有数学上很繁重的内容,但出于直观原因和经验法则,我正在寻找更多答案。

1
PCA如何帮助进行k均值聚类分析?
背景:我想根据城市的社会经济特征将其分为几类,包括住房单位密度,人口密度,绿地面积,房价,学校/保健中心/日托中心的数量等。我想了解居住区可以分为多少不同的组,以及它们的独特特征。这些信息可以促进城市规划。 根据一些示例(请参阅此博客文章:Delta Aircraft的PCA和K-means聚类),我发现进行分析的方法是: 首先做PCA分析。 根据PCA结果确定唯一组(集群)的数量(例如,使用“弯头”方法,或者选择解释总方差的80%到90%的组件数量)。 确定聚类数后,应用k均值聚类进行分类。 我的问题: PCA组件的数量似乎与聚类分析有关。的确如此,例如,如果我们发现5个PCA组件解释了所有功能的90%以上的变化,那么我们将应用k-均值聚类并得到5个聚类。那么这5个组是否恰好对应于PCA分析中的5个组成部分? 换句话说,我想我的问题是:PCA分析和k均值聚类之间有什么联系? 更新: 感谢Emre,xeon和Kirill的投入。所以目前的答案: 在进行聚类分析之前进行PCA对于减少维数作为特征提取器并可视化/显示聚类也很有用。 聚类后​​进行PCA可以验证聚类算法(参考:内核主成分分析)。 有时会应用PCA来降低聚类之前数据集的维数。然而,Yeung&Ruzzo(2000)指出,使用PC代替原始变量进行聚类并不一定能改善聚类质量。特别是,前几台PC(包含数据的大部分变化)不一定捕获大多数群集结构。 杨,杨怡和Walter L. Ruzzo。对基因表达数据进行聚类的主成分分析的实证研究。华盛顿大学计算机科学与工程系技术报告,2000年。(pdf) 在进行两步聚类分析之前,似乎需要PCA 。基于Ibes(2015),其中使用PCA中确定的因素进行了聚类分析。 Ibes,DorothyC。城市公园系统的多维分类和公平性分析:一种新颖的方法和案例研究应用。 《景观与城市规划》,第137卷,2015年5月,第122–137页。

1
大型稀疏矩阵上的降维(SVD或PCA)
/ edit:现在可以进行进一步跟进,您可以使用irlba :: prcomp_irlba / edit:跟进我自己的帖子。 irlba现在具有“中心”和“比例”自变量,可用于计算主成分,例如: pc <- M %*% irlba(M, nv=5, nu=0, center=colMeans(M), right_only=TRUE)$v 我Matrix想在机器学习算法中使用大量稀疏的功能: library(Matrix) set.seed(42) rows <- 500000 cols <- 10000 i <- unlist(lapply(1:rows, function(i) rep(i, sample(1:5,1)))) j <- sample(1:cols, length(i), replace=TRUE) M <- sparseMatrix(i, j) 因为此矩阵有很多列,所以我想将其维数减少到更易于管理的程度。我可以使用出色的irlba软件包执行SVD并返回前n个主要成分(此处显示5个;我可能会在实际数据集中使用100或500): library(irlba) pc <- irlba(M, nu=5)$u 但是,我已经读过在执行PCA之前,应该将矩阵居中(从每一列中减去列均值)。这在我的数据集上很难做到,而且会破坏矩阵的稀疏性。 对未缩放的数据执行SVD,并将其直接输入到机器学习算法中有多“糟糕”?在保留矩阵稀疏性的同时,是否有任何有效的方法可以缩放此数据? / edit:B_miner引起我注意的“ …

5
如何在机器学习中处理分层/嵌套数据
我将用一个例子来解释我的问题。假设您要根据以下属性预测个人的收入:{年龄,性别,国家/地区,城市}。你有一个像这样的训练数据集 train <- data.frame(CountryID=c(1,1,1,1, 2,2,2,2, 3,3,3,3), RegionID=c(1,1,1,2, 3,3,4,4, 5,5,5,5), CityID=c(1,1,2,3, 4,5,6,6, 7,7,7,8), Age=c(23,48,62,63, 25,41,45,19, 37,41,31,50), Gender=factor(c("M","F","M","F", "M","F","M","F", "F","F","F","M")), Income=c(31,42,71,65, 50,51,101,38, 47,50,55,23)) train CountryID RegionID CityID Age Gender Income 1 1 1 1 23 M 31 2 1 1 1 48 F 42 3 1 1 2 62 M 71 4 …
29 regression  machine-learning  multilevel-analysis  correlation  dataset  spatial  paired-comparisons  cross-correlation  clustering  aic  bic  dependent-variable  k-means  mean  standard-error  measurement-error  errors-in-variables  regression  multiple-regression  pca  linear-model  dimensionality-reduction  machine-learning  neural-networks  deep-learning  conv-neural-network  computer-vision  clustering  spss  r  weighted-data  wilcoxon-signed-rank  bayesian  hierarchical-bayesian  bugs  stan  distributions  categorical-data  variance  ecology  r  survival  regression  r-squared  descriptive-statistics  cross-section  maximum-likelihood  factor-analysis  likert  r  multiple-imputation  propensity-scores  distributions  t-test  logit  probit  z-test  confidence-interval  poisson-distribution  deep-learning  conv-neural-network  residual-networks  r  survey  wilcoxon-mann-whitney  ranking  kruskal-wallis  bias  loss-functions  frequentist  decision-theory  risk  machine-learning  distributions  normal-distribution  multivariate-analysis  inference  dataset  factor-analysis  survey  multilevel-analysis  clinical-trials 

4
如何在R中进行降维
我有一个矩阵,其中a(i,j)告诉我我浏览过页面j的次数。有27K个人和95K页。我想在页面空间中有一些“尺寸”或“方面”,它们对应于经常一起查看的页面集。我的最终目标是能够计算出个人浏览过1维,2维等页面的频率。 我已经阅读了有关主成分分析和单值分解的R文档,并执行了这些命令,但是我不确定如何继续。 如何使用降维方法来做到这一点?还是这确实是一个聚类问题,而我应该研究聚类算法? 非常感谢您的见解〜l

2
为什么Python的scikit-learn LDA无法正常工作,它如何通过SVD计算LDA?
我使用来自scikit-learn机器学习库(Python)的线性判别分析(LDA)进行降维,并对结果有些好奇。我现在想知道LDA scikit-learn正在做什么,以便使结果看起来不同于例如手动方法或R中完成的LDA。如果有人可以在这里给我一些见解,那将是非常不错的。 基本上最令人担忧的是,该图scikit-plot显示了两个变量之间的相关性,其中应该有一个相关性0。 为了进行测试,我使用了虹膜数据集,前两个线性判别式如下所示: IMG-1。通过scikit-learn进行LDA 这基本上与我在scikit-learn 文档中找到的结果一致。 现在,我逐步进行了LDA,并得到了不同的预测。我尝试了不同的方法,以了解发生了什么事情: IMG-2。基于原始数据的LDA(无中心,无标准化) 如果我先对数据进行标准化(z分数归一化;单位方差),这将是分步方法。我只用均值中心进行了相同的操作,这应该导致相同的相对投影图像(并且确实如此)。 IMG-3。均值居中或标准化后的逐步LDA IMG-4。R中的LDA(默认设置) 我将数据居中的IMG-3中的LDA(这将是首选方法)看起来也与我在R中执行LDA的人在帖子中找到的LDA完全相同 参考代码 我不想将所有代码粘贴到这里,但是我将其作为IPython笔记本上传到这里,该笔记本分为我用于LDA投影的几个步骤(请参见下文)。 步骤1:计算d维平均向量mi=1ni∑x∈Dinxkmi=1ni∑x∈Dinxk\mathbf m_i = \frac{1}{n_i} \sum\limits_{\mathbf x \in D_i}^n \; \mathbf x_k 步骤2:计算散点矩阵 2.1类内散布矩阵由以下等式计算:SWSWS_W SW=∑i=1cSi=∑i=1c∑x∈Din(x−mi)(x−mi)TSW=∑i=1cSi=∑i=1c∑x∈Din(x−mi)(x−mi)TS_W = \sum\limits_{i=1}^{c} S_i = \sum\limits_{i=1}^{c} \sum\limits_{\mathbf x \in D_i}^n (\mathbf x - \mathbf m_i)\;(\mathbf x - \mathbf m_i)^T 2.2类间散布矩阵由以下公式计算: 其中是整体平均值。SBSBS_B SB=∑i=1cni(mi−m)(mi−m)TSB=∑i=1cni(mi−m)(mi−m)TS_B …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.