数据可视化——多维缩放(MultiDimensional Scaling)

      在上一篇博文《主成分分析》中,遗留了一个问题,即“降维后得到的主成分分量含义(或者说其代表什么意思)是什么?”,我在一本书上看到过一个例子,这里就用该例子对遗留问题做些说明。

”     

       Huba et al.(1981).收集了1684位洛杉矶学生消费13种合法和不合法兴奋性物质的数据,这些物质有:香烟、啤酒、红酒、酒精、可卡因、镇定剂、用于达到高潮的药房药剂、吗啡和其它鸦片制剂、大麻、麻药、吸入性麻醉剂、迷幻药和安非他明。

       Huba等人把使用药的情况定为:1(从未尝试),2(用过一次),3(用过几次),4(用过好多次),5(经常使用)。按照这些变量的顺序,得到的第一主成分为a,第二主成分为b。将a和b分别表示成原先13中变量(即13中兴奋性物质)的线性组合(没错,这里实际上就是用一组新的基去表示原样本数据矩阵,而我们可以用原变量去表示这一组新的基),得到a的权为(0.278,0.286,0.265,0.318,0.208,0.293,0.176,0.202,0.339,0.329,0.276,0.248,0.329),b的权为(0.280,0.396,0.392,0.325,-0.288,-0.259,-0.189,-0.315,0.163,-0.050,-0.169,-0.329,-0.232).可以看到,成分a给每个变量的权值大致相等,因此我们可以认为a表示的含义是:衡量学生使用这些兴奋性物质的频繁程度,而对于成分b,它对于合法兴奋性物质的权值为正,而对于非法兴奋性物质的权值为负,因此可以认为b表示的含义为:当我们控制总体兴奋性物质的使用量,判断学生使用的兴奋性物质是合法还是非法的。                                                                                                                                                                                                                                                                                                                      ”


       不管是主成分分析(PCA)还是多维缩放(MDS),目的都是为了将高维数据更好的在低维空间(二维或三维)中可视化,但是二者的适用情况还是有所区别。以二维为例,主成分分析只适用于被测量变量所跨越区域的二维线性子空间内的数据,举个例子,在下图中(该图引用于https://blog.csdn.net/lyl771857509/article/details/79435402),尽管在原始的空间中,数据呈三维分布,但是实际上绝大部分数据点实际上分布于一个平面(二维空间)内,也即是对于具有这样特征的测量数据适合用主成分分析,提取两个主成分。

                                                                    数据可视化——多维缩放(MultiDimensional Scaling)_第1张图片

       而多维缩放方法,其出发点就是尽量在二维空间中保持原数据空间中各样点间距离不变,这个是多维缩放方法的核心。这里先说一下“距离”一词的定义,我们常用的距离为欧里几德距离(欧式距离),对于n维向量ab,其欧式距离即为:    ||a-b||=\sqrt{(a_{1}-b_{1})^{2}+...+(a_{n}-b_{n})^{2}}  。两个样点间的距离即表示其测量结果间的相似性(接近程度),因此多维缩放一般用在心理测试和市场调查等领域中。下面对自己在多维缩放——主坐标方法上的一些理解进行些阐述

        首先,我们从一个n\times p的数据矩阵 X 可以得到一个n\times n的数据矩阵B=XX^{T},在矩阵X中,第i个对象与第j个对象间的欧式距离的平方为

                                                                      d_{ij}^{2}=\sum_{k=1}^{p}(x_{ik}-x_{jk})^{2}                                                                     (1)

公式(1)用矩阵B中的元素表示为

                                                                     d^{2}_{ij}=b_{ii}+b_{jj}-2b_{ij}                                                                        (2)

       现在我们不妨做如下思考:如果给定一个距离矩阵D(该矩阵中实际上保存着原始样本数据点之间的距离 d_{ij},是一个实对称矩阵),我们能不能通过公式(2)得到矩阵B,进而得到矩阵X?实际上如果不加上其它条件约束的话,这样是做不到的,因为整体平移和旋转样点是不改变样点间距离的,也就是说我们可以得到无数个满足要求的矩阵B。但是在二维空间中,我们可以定义这样一个充分条件:数据去中心化,也即是说,在p维空间中的矩阵X中,对每一个变量,所有的样本对象满足条件

                                                                   \sum_{i=1}^{n}x_{ik}=0,k=0,1...p                                                                    (3)

       这样在二维空间中,平移和旋转都被约束了,就可以得到唯一的矩阵BX,由公式(3),我们可以得到公式(4)基(5)

                                       \sum_{i=1}^{n}b_{ij}=\sum_{i=1}^{n}x_{i}x^{T}_{j}=\sum_{i=1}^{n}\sum_{k=1}^{p}x_{ik}x_{jk}=\sum_{k=1}^{p}(\sum_{i=1}^{n}x_{ik})x_{jk}=0                                    (4)

                                                                             \sum_{j=1}^{n}b_{ij}=0                                                                               (5)                

      接下来的任务就是用包含d_{ij}的表达式来表示b_{ii} ,b_{jj},b_{ij},由公式(4)、(5)可得

                                                            \sum_{i=1}^{n} d^{2}_{ij}=\sum_{i=1}^{n}(b_{ii}+b_{jj}-2b_{ij})=tr(B)+nb_{jj}                                     (6) 

                                                            \sum_{j=1}^{n} d^{2}_{ij}=\sum_{j=1}^{n}(b_{ii}+b_{jj}-2b_{ij})=tr(B)+nb_{ii}                                      (7) 

                                     \sum_{i=1}^{n}\sum_{j=1}^{n} d^{2}_{ij}=\sum_{i=1}^{n}\sum_{j=1}^{n}(b_{ii}+b_{jj}-2b_{ij})=\sum_{i=1}^{n}(tr(B)+nb_{ii})=2ntr(B)                   (8) 

       其中tr(B)为矩阵B的迹基于公式(6)、公式(7)、公式(8),我们做如下引入如下新符号,并记为:

                                                                           dist^{2}_{i.}=\frac{1}{n}\sum_{j=1}^{n}d^{2}_{ij}                                                                      (9)

                                                                          dist^{2}_{j.}=\frac{1}{n}\sum_{i=1}^{n}d^{2}_{ij}                                                                      (10)

                                                                         dist^{2}_{..}=\frac{1}{n^{2}}\sum_{i=1}^{n}\sum_{j=1}^{n}d^{2}_{ij}                                                                (11)

      由公式(10)、公式(11)、公式(12)可以得到

                                                                         tr(B)=\frac{n}{2}dist^{2}_{..}                                                                           (12)

                                                                        b_{ii}=\frac{1}{n}(n dist^{2}_{i.}-\frac{n}{2}dist^{2}_{..})                                                           (13)

                                                                        b_{jj}=\frac{1}{n}(n dist^{2}_{j.}-\frac{n}{2}dist^{2}_{..})                                                          (14)

      最终可以得到

                                                               b_{ij}=\frac{1}{2}(dist^{2}_{i.}+dist^{2}_{j.}-dist^{2}_{..}-d^{2}_{ij})                                                  (15)

      公式(15)就是由原始样本数据的距离矩阵D得到矩阵B的变换公式,这样就得到了矩阵B,接着我们对矩阵B进行特征值分解,得到

 

                                                                                 B=V \Lambda V^{T}

                                             

     \Lambda是由矩阵B的特征值生成的对角矩阵,V是特征向量作为列的矩阵,将原始数据降维到p维空间时,  矩阵X为     

                                                                               X=V_{p}\Lambda ^{\frac{1}{2}}_{p}       

      这样就得到了降维后的数据矩阵X。

     本文中介绍的只是多维缩放中的一种方法——主坐标法,实际上多维缩放还有其它的方法,如标距法(metric),该方法我暂时还没有完全弄明白,所以先不写出来,感兴趣的同学可以先从博文https://blog.csdn.net/u010705209/article/details/53518772?utm_source=itdadao&utm_medium=referral了解一下该方法,该方法更加通用一些,缓解了必须通过投影来得到样点在空间中的布局问题。

    最后提出自己的一点疑问,我看到有的文章中说多维缩放方法可以降维到三维空间(也即是p取3)中,但是其用到的充分条件依然是本文中所说的:数据去中心化,那这样该如何约束旋转操作、得到唯一的矩阵B呢?

                                         

 

 

          

 

 

 

你可能感兴趣的:(算法与模型)