数据降维的作用PCA与LDA

来源:互联网 发布:我国大数据市场规模 编辑:程序博客网 时间:2024/05/17 22:46
1.   当你的特征数量p过多,甚至多过数据量N的时候,降维是必须的。
为什么是必须的?有个东西叫curse of dimensionality,维度越高,你的数据在每个特征维度上的分布就越稀疏,这对机器学习算法基本都是灾难性的
你说特征数量过多,砍一点就行了嘛?但是对不起,就有这样的问题存在,砍不了。
你要研究某个罕见病跟什么基因有关?基因很多哦,人类已知的基因有几千个,可是病例通常也就几百个,有时连几百个都没有……

2.  特征有比较明显的自相关的时候,也可以考虑降维。
自相关会让很多模型的效果变差,主要是线性模型。这些模型效果不好,但是算的快,很多时候很有用。先降维再算会好的多。

3. 还有的应用跟降维没多大关系,纯粹只是去杂音而已。这是一个典型的应用:
分析篮球攻防组合的表现。就是给定一个篮球进攻球员,和他的对位防守球员,求出在一次进攻中这名进攻球员的(1)出手概率(2)如果出手,得分期望
根据篮球知识,我们容易知道,如果一个人防“射手A”防的好,但是防“突破手B”防的差,那他防“射手C”也防的好的可能性大过防“突破手D”防的好的可能性。于是这里有必要把进攻球员(防守球员也类似)做个相似度出来,根据这个相似度再来构建模型(比如可以用Bayes Net)。
相似度怎么构建?PCA就可以了,把选手的出手位置的分布做成特征,然后PCA之,取前若干维的相似度即可。(为啥不直接用出手位置的分布来做呢?效果不好呗,去掉杂音会好的多,而且PCA出来的还是正交的,可以直接求距离)

4. PCA是无类别信息,不知道样本属于哪个类,用PCA,通常对全体数据操作。
LDA有类别信息,投影到类内间距最小and类间间距最大...

5. 你的特征相互间有相关性而且分布上是椭圆的,这会带来复杂性,会更容易造成模型过拟合
PCA用一组正交基重构你的表达,然后还把分布拉圆,这就相当于找到了数据的结构性,利用这些先验去简化问题。这对模型来说是帮了大忙。
你可以试试把一个椭圆分布的样本集直接塞给SVM;再白化后(拉成圆)试试。

6. 至于降维,你也可以不降维啊。当你确定信息量少的那些维度对你的问题确实没帮助,降维肯定是好的,这又使问题简化了,而且去掉这些没用信息可以防过拟合。但是信息少往往不意味着没用,有时候信息少的那部分信息甚至是关键信息。举个例子,比如你招人打篮球,只看身高这一项,普通人的身高是集中分布在一段里的,而且天赋异禀的身高只有极少数,而这极少数恰好是你需要的。

7. 两个算法的原理是不一样的,pca是选择投影后使得数据方差最大的方向来投影,假设就是方差越大,信息量越多,pca是一种无监督算法,没有类别信息,而lda是选择投影后使得类内方差小而类间方差大的方向来投影,用到了类别信息,所以选择用哪种算法来降维应该是根据具体的目的和场景来的,如果你的目的就是分类,那么显然lda的选择标准更合理,如果你没有类别信息(无监督),那就只能选pca,总之,两者选择投影的方向的标准是不一样的,看哪个和你的需要更契合。

8. 我们可以知道,但特征量维数大于3时,我们几乎不能对数据进行可视化。所以,有时为了对数据进行可视化,我们需要对其进行降维。我们可以找到2个或3个具有代表性的特征量,他们(大致)可以概括其他的特征量。


0 0
原创粉丝点击