发布网友 发布时间:2022-04-25 11:39
共3个回答
热心网友 时间:2024-06-04 02:56
当你的特征数量p过多,甚至多过数据量N的时候,降维是必须的。为什么是必须的?有个东西叫curse of dimensionality,维度越高,你的数据在每个特征维度上的分布就越稀疏,这对机器学习算法基本都是灾难性的。你说特征数量过多,砍一点就行了嘛?但是对不起,就有这样的问题存在,砍不了。你要研究某个罕见病跟什么基因有关?基因很多哦,人类已知的基因有几千个,可是病例通常也就几百个,有时连几百个都没有……当你的特征有比较明显的自相关的时候,也可以考虑降维。自相关会让很多模型的效果变差,主要是线性模型。这些模型效果不好,但是算的快,很多时候很有用。先降维再算会好的多。还有的应用跟降维没多大关系,纯粹只是去杂音而已。这是一个典型的应用:分析篮球攻防组合的表现。就是给定一个篮球进攻球员,和他的对位防守球员,求出在一次进攻中这名进攻球员的(1)出手概率(2)如果出手,得分期望,根据篮球知识,我们容易知道,如果一个人防“射手A”防的好,但是防“突破手B”防的差,那他防“射手C”也防的好的可能性大过防“突破手D”防的好的可能性。于是这里有必要把进攻球员(防守球员也类似)做个相似度出来,根据这个相似度再来构建模型(比如可以用Bayes Net)。相似度怎么构建?PCA就可以了,把选手的出手位置的分布做成特征,然后PCA之,取前若干维的相似度即可。(为啥不直接用出手位置的分布来做呢?效果不好呗,去掉杂音会好的多,而且PCA出来的还是正交的,可以直接求距离)。
热心网友 时间:2024-06-04 03:00
在机器学习中,如果都能够挑选出少而精的特征了,那PCA等降维算法确实没有必要。但一些情况下原始数据维度非常高,然而我们又没有办法想出有效的特征,这个时候就需要用PCA等工具来降低数据的维度,使得数据可以用于统计学习的算法。我之前所在的一个研究小组就把PCA用在了文字数据上。文字数据处理 (vectorize) 后一个样本的每一维对应这一个词。然而可以想象在一个文本数据集中,总的不同的词的个数是非常多的,因此样本维度常常上万。这样高维度的数据如果直接用来训练统计学习的算法得到的模型通常不具有统计学上的显著性。因此,我们将sparse PCA应用在原始数据上,找到不同的词之间的线性相关性,将高相关的词合并为一个特征,这就是所谓的话题模型 (topic modeling)。
热心网友 时间:2024-06-04 02:59
如果不降维,将导致 数据分布在一个极小的区域内。也叫维度灾难。比如说,球的体积是 v 正比于 R^3。在R/2的同心球,体积正比于(R/2)^3。同心小球是全球的体积八分之一。如果是多维球,球的大部分体积 分布在球表面内侧的“很薄”的一层,比如千/万维的话....所以要降维。不降维,高维特征没啥用,比如人脸识别...PCA是无类别信息,不知道样本属于哪个类,用PCA,通常对全体数据操作。LDA有类别信息,投影到类内间距最小and类间间距最大...也有一些算法,先用PCA搞一遍,再用LDA搞一遍,也有相反。反正有论文是这么搞的,至于是不是普适,要看具体问题。