| 查看: 6865 | 回复: 16 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
jixiaw银虫 (正式写手)
|
[交流]
[转载]主成分分析,聚类分析,因子分析的基本思想以及他们各自的优缺点 已有16人参与
|
||
| 主成分分析就是将多项指标转化为少数几项综合指标,用综合指标来解释多变量的方差- 协方差结构。综合指标即为主成分。所得出的少数几个主成分,要尽可能多地保留原始变量的信息,且彼此不相关。因子分析是研究如何以最少的信息丢失,将众多原始变量浓缩成少数几个因子变量,以及如何使因子变量具有较强的可解释性的一种多元统计分析方法。聚类分析是依据实验数据本身所具有的定性或定量的特征来对大量的数据进行分组归类以了解数据集的内在结构,并且对每一个数据集进行描述的过程。其主要依据是聚到同一个数据集中的样本应该彼此相似,而属于不同组的样本应该足够不相似。三种分析方法既有区别也有联系,本文力图将三者的异同进行比较,并举例说明三者在实际应用中的联系,以期为更好地利用这些高级统计方法为研究所用有所裨益。二、基本思想的异同 (一) 共同点主成分分析法和因子分析法都是用少数的几个变量(因子) 来综合反映原始变量(因子) 的主要信息,变量虽然较原始变量少,但所包含的信息量却占原始信息的85 %以上,所以即使用少数的几个新变量,可信度也很高,也可以有效地解释问题。并且新的变量彼此间互不相关,消除了多重共线性。这两种分析法得出的新变量,并不是原始变量筛选后剩余的变量。在主成分分析中,最终确定的新变量是原始变量的线性组合,如原始变量为x1 ,x2 ,. . . ,x3 ,经过坐标变换,将原有的p个相关变量xi 作线性变换,每个主成分都是由原有p 个变量线性组合得到。在诸多主成分Zi 中,Z1 在方差中占的比重最大,说明它综合原有变量的能力最强,越往后主成分在方差中的比重也小,综合原信息的能力越弱。因子分析是要利用少数几个公共因子去解释较多个要观测变量中存在的复杂关系,它不是对原始变量的重新组合,而是对原始变量进行分解,分解为公共因子与特殊因子两部分。公共因子是由所有变量共同具有的少数几个因子;特殊因子是每个原始变量独自具有的因子。对新产生的主成分变量及因子变量计算其得分,就可以将主成分得分或因子得分代替原始变量进行进一步的分析,因为主成分变量及因子变量比原始变量少了许多,所以起到了降维的作用,为我们处理数据降低了难度。聚类分析的基本思想是: 采用多变量的统计值,定量地确定相互之间的亲疏关系,考虑对象多因素的联系和主导作用,按它们亲疏差异程度,归入不同的分类中一元,使分类更具客观实际并能反映事物的内在必然联系。也就是说,聚类分析是把研究对象视作多维空间中的许多点,并合理地分成若干类,因此它是一种根据变量域之间的相似性而逐步归群成类的方法,它能客观地反映这些变量或区域之间的内在组合关系[3 ]。聚类分析是通过一个大的对称矩阵来探索相关关系的一种数学分析方法,是多元统计分析方法,分析的结果为群集。对向量聚类后,我们对数据的处理难度也自然降低,所以从某种意义上说,聚类分析也起到了降维的作用。 (二) 不同之处主成分分析是研究如何通过少数几个主成分来解释多变量的方差一协方差结构的分析方法,也就是求出少数几个主成分(变量) ,使它们尽可能多地保留原始变量的信息,且彼此不相关。它是一种数学变换方法,即把给定的一组变量通过线性变换,转换为一组不相关的变量(两两相关系数为0 ,或样本向量彼此相互垂直的随机变量) ,在这种变换中,保持变量的总方差(方差之和) 不变,同时具有最大方差,称为第一主成分;具有次大方差,称为第二主成分。依次类推。若共有p 个变量,实际应用中一般不是找p 个主成分,而是找出m (m < p) 个主成分就够了,只要这m 个主成分能反映原来所有变量的绝大部分的方差。主成分分析可以作为因子分析的一种方法出现。因子分析是寻找潜在的起支配作用的因子模型的方法。因子分析是根据相关性大小把变量分组,使得同组内的变量之间相关性较高,但不同的组的变量相关性较低,每组变量代表一个基本结构,这个基本结构称为公共因子。对于所研究的问题就可试图用最少个数的不可测的所谓公共因子的线性函数与特殊因子之和来描述原来观测的每一分量。通过因子分析得来的新变量是对每个原始变量进行内部剖析。因子分析不是对原始变量的重新组合,而是对原始变量进行分解,分解为公共因子和特殊因子两部分。具体地说,就是要找出某个问题中可直接测量的具有一定相关性的诸指标,如何受少数几个在专业中有意义、又不可直接测量到、且相对独立的因子支配的规律,从而可用各指标的测定来间接确定各因子的状态。因子分析只能解释部分变异,主成分分析能解释所有变异。 聚类分析算法是给定m 维空间R 中的n 个向量,把每个向量归属到k 个聚类中的某一个,使得每一个向量与其聚类中心的距离最小。聚类可以理解为: 类内的相关性尽量大,类间相关性尽量小。聚类问题作为一种无指导的学习问题,目的在于通过把原来的对象集合分成相似的组或簇,来获得某种内在的数据规律。从三类分析的基本思想可以看出,聚类分析中并没于产生新变量,但是主成分分析和因子分析都产生了新变量。三、数据标准化的比较主成分分析中为了消除量纲和数量级,通常需要将原始数据进行标准化,将其转化为均值为0方差为1 的无量纲数据。而因子分析在这方面要求不是太高,因为在因子分析中可以通过主因子法、加权最小二乘法、不加权最小二乘法、重心法等很多解法来求因子变量,并且因子变量是每一个变量的内部影响变量,它的求解与原始变量是否同量纲关系并不太大,当然在采用主成分法求因子变量时,仍需标准化。不过在实际应用的过程中,为了尽量避免量纲或数量级的影响,建议在使用因子分析前还是要进行数据标准化。在构造因子变量时采用的是主成分分析方法,主要将指标值先进行标准化处理得到协方差矩阵,即相关矩阵和对应的特征值与特征向量,然后构造综合评价函数进行评价。聚类分析中如果参与聚类的变量的量纲不同会导致错误的聚类结果。因此在聚类过程进行之前必须对变量值进行标准化,即消除量纲的影响。不同方法进行标准化,会导致不同的聚类结果要注意变量的分布。如果是正态分布应该采用z 分数法。四、应用中的优缺点比较 (一) 主成分分析 1、优点首先它利用降维技术用少数几个综合变量来代替原始多个变量,这些综合变量集中了原始变量的大部分信息。其次它通过计算综合主成分函数得分,对客观经济现象进行科学评价。再次它在应用上侧重于信息贡献影响力综合评价。 2、缺点当主成分的因子负荷的符号有正有负时,综合评价函数意义就不明确。命名清晰性低。 (二) 因子分析 1、优点第一它不是对原有变量的取舍,而是根据原始变量的信息进行重新组合,找出影响变量的共同因子,化简数据;第二,它通过旋转使得因子变量更具有可解释性,命名清晰性高。 2、缺点在计算因子得分时,采用的是最小二乘法,此法有时可能会失效。 (三) 聚类分析 1、优点聚类分析模型的优点就是直观,结论形式简明。 2、缺点在样本量较大时,要获得聚类结论有一定困难。由于相似系数是根据被试的反映来建立反映被试间内在联系的指标,而实践中有时尽管从被试反映所得出的数据中发现他们之间有紧密的关系,但事物之间却无任何内在联系,此时,如果根据距离或相似系数得出聚类分析的结果,显然是不适当的,但是,聚类分析模型本身却无法识别这类错误。 |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
请问社科规划办官网上的“项目查询模块”与“项目申报模块”的账号密码一样吗?
已经有3人回复
用NBS溴化时溶剂除了CCl4外还有什么
已经有9人回复
40+中年人失业后,还能找到好工作吗?
已经有15人回复
二审4个多月了还是Awaiting Reviewer Scores
已经有5人回复
申请科研项目纯靠实力能成功吗?
已经有12人回复
极限拉扯,如何抉择
已经有15人回复
jiawenqi111
新虫 (初入文坛)
- 应助: 1 (幼儿园)
- 金币: 15.3
- 帖子: 14
- 在线: 5.1小时
- 虫号: 2755592
- 注册: 2013-10-26
- 专业: 自然语言理解与机器翻译
★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小木虫: 金币+0.5, 给个红包,谢谢回帖
|
借着楼主的这个话题,最近做的项目中用到了这几个算法(实际上是调用了大数据机器学习算法的开源接口spark的ml库)我也总结一番。 先说说聚类相关的内容。 (一)k-means算法 首先是k-means算法,k-means算法是聚类分析中使用最广泛的算法之一。它把n个样本根据它们的属性特征分为k个聚类,也常被称作k个簇,以便使得所获得的聚类满足:同一聚类(同一个簇)中的样本相似度较高;而不同聚类(不同簇)中的样本相似度较小。 1、k-means算法的基本过程如下所示: (1)任意选择k个初始中心c_{1},c_{2},...,c_{k} 。 (2)计算X中的每个样本与这些中心的距离;并根据最小距离重新对相应样本进行划分; (3)重新计算每个中心对象 C_{i} 的值 (4)计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则重复步骤(2),(3)。 2、k-means算法的缺点,k-means算法虽然简单快速,但是存在下面的缺点: 聚类中心的个数K需要事先给定,但在实际中K值的选定是非常困难的,很多时候我们并不知道给定的数据集应该分成多少个类别才最合适。 k-means算法需要随机地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。 第一个缺陷我们很难在k-means算法以及其改进算法中解决,但是我们可以通过k-means++算法来解决第二个缺陷。 (二)k-means++算法 1、k-means++算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽可能的远。它选择初始聚类中心的步骤是: (1)从输入的数据点集合中随机选择一个点作为第一个聚类中心 c_{1} ; (2)对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x),并根据概率选择新的聚类中心 c_{i} 。 (3)重复过程(2)直到找到k个聚类中心。 2、第(2)步中,依次计算每个数据点与最近的种子点(聚类中心)的距离,依次得到D(1)、D(2)、...、D(n)构成的集合D,其中n表示数据集的大小。在D中,为了避免噪声,不能直接选取值最大的元素,应该选择值较大的元素,然后将其对应的数据点作为种子点(聚类中心)。 3、那么如何选择值较大的元素呢,下面是spark中实现的思路: 求所有的距离和Sum(D(x)) 取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先用Sum(D(x))乘以随机值Random得到值r,然后用currSum += D(x),直到其currSum > r,此时的点就是下一个“种子点”。 为什么用这样的方式呢?我们换一种比较好理解的方式来说明。把集合D中的每个元素D(x)想象为一根线L(x),线的长度就是元素的值。将这些线依次按照L(1)、L(2)、...、L(n)的顺序连接起来,组成长线L。L(1)、L(2)、…、L(n)称为L的子线。 根据概率的相关知识,如果我们在L上随机选择一个点,那么这个点所在的子线很有可能是比较长的子线,而这个子线对应的数据点就可以作为种子点。 (三)二分k-means算法 1、二分k-means算法是分层聚类(Hierarchical clustering)的一种,分层聚类是聚类分析中常用的方法。 分层聚类的策略一般有两种: 聚合。这是一种自底向上的方法,每一个观察者初始化本身为一类,然后两两结合 分裂。这是一种自顶向下的方法,所有观察者初始化为一类,然后递归地分裂它们 二分k-means算法是分裂法的一种。 2、二分k-means算法是k-means算法的改进算法,相比k-means算法,它有如下优点: 二分k-means算法可以加速k-means算法的执行速度,因为它的相似度计算少了 能够克服k-means收敛于局部最小的缺点 二分k-means算法的一般流程如下所示: (1)把所有数据初始化为一个簇,将这个簇分为两个簇。 (2)选择满足条件的可以分解的簇。选择条件综合考虑簇的元素个数以及聚类代价(也就是误差平方和SSE) (3)使用k-means算法将可分裂的簇分为两簇。 (4)一直重复(2)(3)步,直到满足迭代结束条件。 以上过程隐含着一个原则是:因为聚类的误差平方和能够衡量聚类性能,该值越小表示数据点越接近于它们的质心,聚类效果就越好。 所以我们就需要对误差平方和最大的簇进行再一次的划分,因为误差平方和越大,表示该簇聚类越不好,越有可能是多个簇被当成一个簇了,所以我们首先需要对这个簇进行划分。 (三)高斯混合模型 顾名思义,就是数据可以看作是从多个高斯分布中生成出来的。从中心极限定理可以看出,高斯分布这个假设其实是比较合理的。 为什么我们要假设数据是由若干个高斯分布组合而成的,而不假设是其他分布呢?实际上不管是什么分布,只K取得足够大,这个XX Mixture Model就会变得足够复杂,就可以用来逼近任意连续的概率密度分布。只是因为高斯函数具有良好的计算性能,所GMM被广泛地应用。 每个GMM由K个高斯分布组成,每个高斯分布称为一个组件(Component),这些组件线性加成在一起就组成了GMM的概率密度函数。如果我们要从GMM分布中随机地取一个点,需要两步: 随机地在这K个组件之中选一个,每个组件被选中的概率实际上就是它的系数pi_k; 选中了组件之后,再单独地考虑从这个组件的分布中选取一个点。 怎样用GMM来做聚类呢?其实很简单,现在我们有了数据,假定它们是由GMM生成出来的,那么我们只要根据数据推出GMM的概率分布来就可以了,然后GMM的K个组件实际上就对应了K个聚类了。 再说说PCA算法: (四)在机器学习领域中,我们对原始数据进行特征提取,有时会得到比较高维的特征向量。在这些向量所处的高维空间中,包含很多的冗余和噪声。我们希望通过降维的方式来寻找数据内部的特性,从而提升特征表达能力,降低训练复杂度CA(principal components analysis), 即主成分分析,旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。 PCA的求解方法: 对样本进行中心化处理 求样本的协方差矩阵 对协方差矩阵进行特征值分解,将特征值从大到小排列 取前k大的特征值对应的特征向量 最后通过向量内积映射将n维样本向量映射到k维 就先总结这么多吧,回复不能编辑公式,有些总结的比较含糊。。 |

17楼2018-01-23 13:17:25
nvchaoyan
木虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 21732.5
- 散金: 73
- 红花: 1
- 帖子: 177
- 在线: 674.6小时
- 虫号: 596689
- 注册: 2008-09-09
- 性别: GG
- 专业: 种群生态学
2楼2011-08-23 16:59:35
gqh25
木虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 4333.4
- 散金: 65
- 红花: 3
- 帖子: 237
- 在线: 178.6小时
- 虫号: 856724
- 注册: 2009-09-25
- 性别: GG
- 专业: 食品科学基础
3楼2011-09-02 08:20:59
4楼2011-09-15 10:11:49










回复此楼
人鱼禾斗