自学脚手架——“Data-Driven Science and Engineering” by steven L. brunton(Chapter 5.0 - 5.4)

5.0 Overview

  • Clustering and Classification
ClusteringClassification
思路将数据分成多个组;
探索每个组的数据是否有联系
从已经分组的数据中去学习;
把新数据放到已经分好的组中去
学习类型无监督,无需标签进行训练有监督,需要标签进行训练
典型算法K-Means,DBSCAN,层次聚类,光谱聚类决策树,贝叶斯,逻辑回归
算法输出聚类结果是不确定的;
不一定总是能够反映数据的真实分类;
同样的聚类,根据不同的业务需求;
可能是一个好结果,也可能是一个坏结果
分类结果是确定的
分类的优劣是客观的
不是根据业务或算法需求决定
  • 相关资料:

聚类的基本概念-聚类与分类的区别

5.1 Feature Selection and Data Mining

  • Code 5.1

load fisheriris;
x1=meas(1:50,:); % setosa
x2=meas(51:100,:); % versicolor
x3=meas(101:150,:); % virginica

plot3(x1(:,1),x1(:,2),x1(:,4),’go’), hold on
plot3(x2(:,1),x2(:,2),x2(:,4),’mo’)
plot3(x3(:,1),x3(:,2),x3(:,4),’ro’)

其中meas为数据库里面的数据矩阵,而非函数。

  • Figure 5.2

图像不是左侧或者右侧一整个做处理,而是每个狗头或者猫头做处理。

  • Figure 5.3

注意反演出来的每个图形是32行,为何?因为economic的SVD?

为何出来的是猫耳朵,而不是狗耳朵,只是因为狗耳朵的特征不明显?那狗鼻子呢?

  • Figure 5.5

为何 V \mathbf{V} V矩阵的列代表权重?那 U \mathbf{U} U呢?

对于轮廓,edge的提取能力并不强?

5.2 Supervised versus Unsupervised Learning

  • Unsupervised和supervised之间的区别是,面对还没有分类的数据,后者需要先做标签,这个标签代表了人的一种直接的感觉标准或者其他标准,然后根据这些标签,然后去分类剩下的数据。然而前者是直接利用统计方法或者其他方法进行分类,其分类的标准不再是人的感觉或者其他标准(已有的数据标签),而是根据分类方法本身的分类标准,当然这个也是人为决定的。所以Unsupervised和supervised是相对的概念,而非绝对的对立概念。

  • open bounded set

在(5.1)中:

Supervised and unsupervised learning can be stated mathematically. Let

D ⊂ R n (5.1) \mathcal{D}\subset \mathbb{R}^{n} \tag{5.1} DRn(5.1)

so that D is an open bounded set of dimension n.

其中加粗的地方强调了有界的开集或开有界集(open bounded set):

  • 如果A中的每一个点都有一个以该点为中心的邻域包含于A,则称A是度量空间X中的一个开集。
  • 满足 x 2 + y 2 = r 2 x^{2}+y^{2}=r^{2} x2+y2=r2的点着绿色。满足 x 2 + y 2 < r 2 x^{2}+y^{2}<r^{2} x2+y2<r2的点着黄色。黄色的点形成了开集。黄色和绿色的点的并集是闭集。

为何不能是闭集呢?

5.3 Unsupervised Learning: k-means Clustering

  • 注意k-means clustering可以看作是一类问题,即:

arg min ⁡ μ j ∑ j = 1 k ∑ x j ∈ D j ′ ∣ ∣ x j − μ j ∣ ∣ 2 \argmin_{\mathbf{\mu}_{j}}\sum_{j=1}^{k}\sum_{\mathbf{x}_{j}\in\mathcal{D}'_{j}}||\mathbf{x}_{j}-\mathbf{\mu}_{j}||^{2} μjargminj=1kxjDj∣∣xjμj2

而Lloyd算法是解决这个问题的一种算法,更多时候会把两个名词等价

  • idx = kmeans(X,k) 执行 k 均值聚类,以将 n×p 数据矩阵 X 的观测值划分为 k 个聚类,并返回包含每个观测值的簇索引的 n×1 向量 (idx)。X 的行对应于点,列对应于变量。

    默认情况下,kmeans 使用欧几里德距离平方度量,并用 k-means++ 算法进行簇中心初始化。
  • idx = kmeans(X,k,Name,Value) 进一步按一个或多个 Name,Value 对组参数所指定的附加选项返回簇索引。

    例如,指定余弦距离、使用新初始值重复聚类的次数或使用并行计算的次数。
  • [idx,C] = kmeans(___) 在 k×p 矩阵 C 中返回 k 个簇质心的位置。
  • [idx,C,sumd] = kmeans(___) 在 k×1 向量 sumd 中返回簇内的点到质心距离的总和。
  • [idx,C,sumd,D] = kmeans(___) 在 n×k 矩阵 D 中返回每个点到每个质心的距离。
  • Lloyd算法的执行如下:
    1)选择 k 个初始簇中心(质心)。例如,随机选择 k 个观测值或使用 k-means ++ 算法进行簇中心初始化。
    2)计算所有观测值到每个质心的点到簇质心的距离。
    3)有两种方法可以继续(由 OnlinePhase 指定):
    a. 批量更新 - 将每个观测值分配给离质心最近的簇。
    b. 在线更新 - 只要将观测值重新分配给另一质心可减少簇内点到质心距离平方和的总和,就对该观测值执行此分配。
    4)计算每个簇中观测值的平均值,以获得 k 个新质心位置。
    5)重复步骤 2 到 4,直到簇分配不变,或达到最大迭代次数。
  • kmeans 使用两阶段迭代算法来最小化点到质心的距离总和,该距离总和覆盖所有 k 个簇。
    1)第一阶段使用批量更新,其中每次迭代都包括一次性将点重新分配给其最近邻的簇质心,然后重新计算簇质心。此阶段有时候不会收敛至局部最小值解。也就是说,将任一点移至不同簇都会增加总距离的数据分区。尤其是对小数据集来说,更容易出现这种情况。批量更新阶段速度很快,但在该阶段逼近的解可能只能作为第二阶段的起点。

    2)第二阶段使用在线更新即只要单独重新分配点可减少距离的总和,则进行重新分配,并在每次重新分配后重新计算簇质心。此阶段中的每次迭代都对所有点进行一次遍历。此阶段会收敛至一个局部最小值,尽管可能存在总距离更低的其他局部最小值。一般情况下,需要穷尽选择起始点才能求解全局最小值,但是,使用具有随机起始点的几个副本通常也会得到全局最小值解。

k-means++ 算法使用启发式方法找到 k 均值聚类的质心种子。根据 Arthur 和 Vassilvitskii 的研究(见相关资料),k-means++ 改进了 Lloyd 算法的运行时间和最终解的质量。

k-means++ 算法按如下方式选择种子,假设簇数为 k:

1)从数据集 X 中随机均匀选择一个观测值。所选观测值是第一个质心,表示为 c 1 c_{1} c1

2)计算从每个观测值到 c 1 c_{1} c1的距离。将 c j c_{j} cj和观测值 m 之间的距离表示为 d ( x m , c j ) d(x_{m},c_{j}) d(xm,cj)

3)从 X 中随机选择下一个质心 c 2 c_{2} c2,概率为:

d 2 ( x m , c 1 ) ∑ j = 1 n d 2 ( x j , c 1 ) \frac{d^{2}(x_{m},c_{1})}{\sum_{j=1}^{n}d^{2}(x_{j},c_{1})} j=1nd2(xj,c1)d2(xm,c1)

4)要选择中心 j,请执行以下操作:

a. 计算从每个观测值到每个质心的距离,并将每个观测值分配给其最近的质心。

b. 对于 m = 1、…、n 和 p = 1、…、j - 1,从 X 中随机选择质心 j,概率为

d 2 ( x m , c p ) ∑ { h ; x h ∈ C p } d 2 ( x h , c p ) \frac{d^{2}(x_{m},c_{p})}{\sum_{\{h;x_{h}\in C_{p}\}}d^{2}(x_{h},c_{p})} {h;xhCp}d2(xh,cp)d2(xm,cp)

其中 C p C_{p} Cp是最接近质心 c p c_{p} cp的所有观测值的集合,而 x m x_{m} xm属于 C p C_{p} Cp

也就是说,选择每个后续中心时,其选择概率与它到已选最近中心的距离成比例。

5)重复步骤 4,直到选择了 k 个质心。

Arthur 和 Vassilvitskii :通过对几个簇方向的模拟研究证明,在计算簇内点到质心距离平方和时,k-means++ 相比 Lloyd 算法能更快地收敛至更低的总和。

  • 相关资料:

Arthur, David, and Sergi Vassilvitskii. “K-means++: The Advantages of Careful Seeding.” SODA ‘07: Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms. 2007, pp. 1027–1035.

5.4 Unsupervised Hierarchical Clustering: Dendrogram

文中的Dendrogram特指Hierarchical Clustering Dendrogram

文中的Figure 5.13提供了建立逐层的树状图的过程,但是没有提示并列层级的建立过程,这样会造成一定误解,以为每一层级都是有一定阈值,实际上并不是的:

为何同一层级有不同的高度?
最右边第一层级为何比左侧第二层级还高?层级的阈值怎么定?

下面引用wiki中的说明:

  • Agglomerative clustering example

对于上述点,计算其欧几里得距离:
1)计算所有点的距离,得到某两个点的最小距离,比如bc两点最近(假设两者最近),则在树状图中首先画出两点:

2)然后计算两个点的中点,代替原先的点当作新的点,然后计算所有点的距离(或者计算这个新点与所有点的距离),这次应该是de两点(或者bc=de,此时可以同时写下四个点,即下图),现在在图中已经得到:

3)然后计算de两个点的中点,代替原先的点当作新的点,然后计算所有点的距离(或者计算这个新点与所有点的距离),比较得到最小两点的距离,这次应该是de的中点和f,现在在图中已经得到:

4)然后计算de中点和f两个点的中点,代替原先的点当作新的点,然后计算所有点的距离(或者计算这个新点与所有点的距离),比较得到最小两点的距离,这次应该是def的中点和bc中点的距离最小,现在在图中已经得到:

5)然后计算def中点和bc两个点的中点,代替原先的点当作新的点,然后计算所有点的距离(或者计算这个新点与所有点的距离),比较得到最小两点的距离,这次应该是bcdef的中点和a点的距离最小,现在在图中已经得到:

于是我们发现树状图的建造过程是一个距离排序的过程

对比上图与Figure 5.13,Figure 5.14可以发现线的画法有些不同,后者可以用高度代表距离大小,如下图:

另外注意在上述建造树状图的过程中使用的是中点作为新的点,然后其代表了自身的集团(cluster),然后用这个中点去计算与其他点的欧几里得距离。在实用中,这是可以有其他选择的(5.14):

  • Euclidean distance ∣ ∣ x j − x k ∣ ∣ 2 ||\mathbf{x}_{j}-\mathbf{x}_{k}||_{2} ∣∣xjxk2
  • Squared Euclidean distance ∣ ∣ x j − x k ∣ ∣ 2 2 ||\mathbf{x}_{j}-\mathbf{x}_{k}||_{2}^{2} ∣∣xjxk22
  • Manhattan distance ∣ ∣ x j − x k ∣ ∣ 1 ||\mathbf{x}_{j}-\mathbf{x}_{k}||_{1} ∣∣xjxk1
  • Maximum distance ∣ ∣ x j − x k ∣ ∣ ∞ ||\mathbf{x}_{j}-\mathbf{x}_{k}||_{\infty} ∣∣xjxk
  • Mahalanobis distance ( x j − x k ) T C − 1 ( x j − x k ) \sqrt{\left(\mathbf{x}_{j}-\mathbf{x}_{k}\right)^{T}\mathbf{C}^{-1}\left(\mathbf{x}_{j}-\mathbf{x}_{k}\right)} (xjxk)TC1(xjxk)

    where C − 1 \mathbf{C}^{-1} C1 is the covariance matrix.
  • Manhattan distance

taxicab geometry(出租车几何)是一种几何形式,通常的距离函数或欧几里得几何度规被一个新的度规取代,在这个度规中两点之间的距离是它们的笛卡尔坐标的绝对差的和。taxicab metric(出租车度规)也被称为rectilinear distance(直线距离), L 1 L_{1} L1 distance, L 1 L^{1} L1 distance 或 ℓ 1 \ell _{1} 1 norm,snake dstance,city block distance,Manhattan distanceManhattan length,后者的名字暗指the island of Manhattan上大多数街道的网格布局,这使得一辆汽车在行政区的两个十字路口之间可以走的最短路径的长度等于两个路口的出租车几何距离。

自18世纪以来,几何已经被用于回归分析,今天经常被称为LASSO。几何解释可以追溯到19世纪的非欧几里得几何,是赫尔曼·闵可夫斯基(Hermann Minkowski)的作品。

在两维空间中的,存在两点 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_{1},y_{1}),(x_{2},y_{2}) (x1,y1),(x2,y2)两点之间距离,taxicab distance为:

∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_{1}-x_{2}|+|y_{1}-y_{2}| x1x2+y1y2

也就是说,它是两组坐标之差的绝对值之和。

一般的,在n维实空间中,假设有两个向量 p , q \mathbf{p},\mathbf{q} p,q,其taxicab distance d 1 d_{1} d1为:

d 1 ( p , q ) = ∣ ∣ p − q ∣ ∣ 1 = ∑ i = 1 n ∣ p i − q i ∣ d_{1}(\mathbf{p},\mathbf{q})=||\mathbf{p}-\mathbf{q}||_{1}=\sum_{i=1}^{n}|p_{i}-q_{i}| d1(p,q)=∣∣pq1=i=1npiqi

其中 ( p , q ) (\mathbf{p},\mathbf{q}) (p,q)中的向量分别为:

p = ( p 1 , p 2 , … , p n )    a n d    q = ( q 1 , q 2 , … , q n ) \mathbf{p}=(p_{1},p_{2},\dots,p_{n})\ \ and\ \ \mathbf{q}=(q_{1},q_{2},\dots,q_{n}) p=(p1,p2,,pn)  and  q=(q1,q2,,qn)

  • Mahalanobis distance

简介

Mahalanobis distance(马氏距离)是点P和分布D之间的距离的量度,由 P.C.Mahalanobis 在1936年提出。这是测量P点与D的均值有多少个标准差的多维推广,P点在D的均值处的距离为零,随着P沿各主成分轴(principal component)远离均值而增长。如果这些轴的每一个被重新缩放到单位方差,那么马氏距离对应于转换空间中的标准欧氏距离。因此,马氏距离是无单位的,尺度不变的,并考虑到了数据集的相关性。

数学定义

考虑观测量 x ⃗ = ( x 1 , x 2 , x 3 , … , x N ) T \vec{x}=(x_{1},x_{2},x_{3},\dots,x_{N})^{T} x =(x1,x2,x3,,xN)T,其均值为 μ ⃗ = ( μ 1 , μ 2 , μ 3 , … , μ N ) T \vec{\mu}=(\mu_{1},\mu_{2},\mu_{3},\dots,\mu_{N})^{T} μ =(μ1,μ2,μ3,,μN)T,非奇异协方差矩阵(nonsingular covariance matrix)为 S \mathbf{S} S,则其Mahalanobis distance为:

D M ( x ⃗ ) = ( x ⃗ − μ ⃗ ) T S − 1 ( x ⃗ − μ ⃗ ) D_{M}(\vec{x})=\sqrt{(\vec{x}-\vec{\mu})^{T}\mathbf{S}^{-1}(\vec{x}-\vec{\mu})} DM(x )=(x μ )TS1(x μ )

Mahalanobis distance(or “generalized squared interpoint distance” for its squared value)也可以定义为具有相同分布的两个随机向量 x ⃗ \vec{x} x y ⃗ \vec{y} y 之间的不相似性度量,对应的协方差矩阵 S \mathbf{S} S为:

d ( x ⃗ , y ⃗ ) = ( x ⃗ − y ⃗ ) T S − 1 ( x ⃗ − y ⃗ ) d(\vec{x},\vec{y})=\sqrt{(\vec{x}-\vec{y})^{T}\mathbf{S}^{-1}(\vec{x}-\vec{y})} d(x ,y )=(x y )TS1(x y )

因为 S \mathbf{S} S是非奇异协方差矩阵,它是正定的(positive definite),正定矩阵的逆 S − 1 \mathbf{S}^{-1} S1也是正定的。这解释了为什么可以取平方根,因为所有值都是正的。

若协方差矩阵为单位矩阵,则马氏距离简化为欧氏距离。如果协方差矩阵是对角线的,那么得到的距离度量称为标准化的欧氏距离(standardized Euclidean distance):

d ( x ⃗ , y ⃗ ) = ∑ i = 1 N ( x i − y i ) 2 s i 2 d(\vec{x},\vec{y})=\sqrt{\sum_{i=1}^{N}\frac{\left(x_{i}-y_{i}\right)^{2}}{s_{i}^{2}}} d(x ,y )=i=1Nsi2(xiyi)2

其中 s i s_{i} si为采样集合中 x i x_{i} xi y i y_{i} yi的标准差。

在数据所跨空间的全秩线性变换下(full-rank linear transformations of the space spanned by the data),马氏距离保持不变。这意味着,如果数据有一个非平凡的零空间(nullspace),那么可以在将数据(非退化的,non-degenerately)投影到数据的适当维数的任何空间之后计算Mahalanobis distance。

直观解释

考虑估计n维欧几里得空间中一个测试点属于一个集合的概率的问题,其中我们已知的样本点肯定属于这个集合。我们的第一步是找到采样点的质心。直观地说,问题中的点越靠近质心,它就越有可能属于这个集合。然而,我们还需要知道集合是分布在大范围内还是小范围内,这样我们才能决定到中心的给定距离是否值得注意。最简单的方法是估计样本点到质心的距离的标准差。如果测试点与质心之间的距离小于一个标准差,那么我们可以得出结论,测试点很可能属于集合。距离越远,测试点越有可能不属于集合。

这种直观的方法可以通过定义测试点和集合之间的标准化距离来量化为:

∣ ∣ x − μ ∣ ∣ 2 σ \frac{||x-\mu||_{2}}{\sigma} σ∣∣xμ2

其中包括: t e s t p o i n t − s a m p l e   m e a n s t a n d a r d   d e v i a t i o n \frac{testpoint-sample\ mean}{standard\ deviation} standard deviationtestpointsample mean。把这个代入正态分布我们就能推导出测试点属于这个集合的概率。上述方法的缺点是我们假设样本点围绕质心呈球形分布。如果分布绝对是非球形的,例如椭球形,那么我们就会认为测试点属于集合的概率不仅取决于到质心的距离,还取决于方向。在椭球轴较短的方向上,测试点必须离椭球中心较近;在椭球轴较长的方向上,测试点可以离椭球中心较远。在数学基础上,通过建立样本的协方差矩阵,可以估计出最能代表集合概率分布的椭球。马氏距离是测试点到质心的距离除以椭球在测试点方向上的宽度。

与正态分布的关系

一个标准正态分布,其观测量 x ⃗ \vec{x} x 的概率密度可以用Mahalanobis distance表示为:

Pr ⁡ [ x ⃗ ] d x ⃗ = 1 det ⁡ ( 2 π S ) exp ⁡ ( − ( x ⃗ − μ ⃗ ) T S − 1 ( x ⃗ − μ ⃗ ) 2 ) d x ⃗ = 1 det ⁡ ( 2 π S ) exp ⁡ ( − d 2 2 ) d x ⃗ \begin{aligned} \Pr[\vec{x}]d\vec{x}&=\frac{1}{\sqrt{\det(2\pi \mathbf{S})}}\exp\left(-\frac{(\vec{x}-\vec{\mu})^{T}\mathbf{S}^{-1}(\vec{x}-\vec{\mu})}{2}\right)d\vec{x}\\ &=\frac{1}{\sqrt{\det(2\pi \mathbf{S})}}\exp\left(-\frac{d^{2}}{2}\right)d\vec{x} \end{aligned} Pr[x ]dx =det(2πS) 1exp(2(x μ )TS1(x μ ))dx =det(2πS) 1exp(2d2)dx

另外 d 2 d^{2} d2 χ 2 \chi^{2} χ2分布(chi-squared distribution),其中 n n n为正态分布的维数。

其他形式

由于样本均值和协方差矩阵对异常值非常敏感,因此在计算马氏距离时,通常也会使用其他计算数据多元位置(multivariate location)和离散度(scatter of data)的方法。最小协方差行列式方法(Minimum Covariance Determinant approach)估计多元位置(multivariate location),和从具有最小方差-协方差矩阵行列式(the smallest variance-covariance matrix determinant)的拥有 h h h个数据点的子集中获得的离散度。最小体积椭球方法(The Minimum Volume Ellipsoid approach)类似于协方差最小行列式的方法( Minimum Covariance Determinant approach),它使用的一个子集大小为 h h h数据点,但最低椭球体积估计多元位置和椭球体的散射体积最小,只封装了 h h h数据点。每种方法对数据分布的定义各不相同,因此产生不同的马氏距离。最小协方差行列式和最小体积椭球方法对于包含异常值的样本更稳健,而样本均值和协方差矩阵对于小而有偏的数据集更可靠。

  • nonsingular covariance matrix
  • nonsingular matrix

在线性代数中,一个 n × n n\times n n×n的方阵A被称为可逆的(invertible,也被称为nonsingular(非奇异的)或nondegenerate(非退化的)),如果存在一个 n × n n\times n n×n的方阵B,使:

A B = B A = I n \mathbf{AB} = \mathbf{BA} = \mathbf{I} _{n} AB=BA=In

其中 I n \mathbf{I}_{n} In表示 n × n n\times n n×n单位矩阵,所用的乘法是普通矩阵乘法。如果是这样,那么矩阵B是唯一由A决定的,称为A的逆,用 A − 1 \mathbf{A}^{-1} A1表示。

不可逆的方阵称为奇异的或退化的。一个方阵是奇异的当且仅当它的行列式为0。奇异矩阵是罕见的,因为如果一个方阵的元素是从数轴或复平面上的任何有限区域中随机选择的,那么矩阵奇异的概率为0,也就是说,它“几乎不”是奇异的。

  • Covariance matrix

简介

在概率论和统计学中,covariance matrix(协方差矩阵,也称为auto-covariance matrix(自协方差矩阵)、dispersion matrix(色散矩阵)、variance matrix(方差矩阵)或variance-covariance matrix(方差协方差矩阵))是一个方阵,给出给定随机向量的每一对元素之间的协方差。任何协方差矩阵都是对称的,正半定的(positive semi-definite,即存在 a T K X X a ≥ 0 , a ∈ R n \mathbf{a}^{T}\mathbf{K}_{\mathbf{XX}}\mathbf{a}\geq 0,\mathbf{a}\in\mathbb{R}^{n} aTKXXa0,aRn),它的主对角线包含方差(即每个元素与自身的协方差)。直观地说,协方差矩阵将方差的概念推广到多个维度。例如,二维空间中随机点集合的变化不能被单个数字完全描述, x x x y y y方向中的变化也不会包含所有必要的信息;一个 2 × 2 2\times 2 2×2的矩阵将是必要的,以充分表征二维变化。一个随机向量 X \mathbf{X} X的协方差矩阵通常用 K X X \mathbf{K}_{\mathbf{X}\mathbf{X}} KXX Σ \Sigma Σ表示。

数学定义

X \mathbf{X} X Y \mathbf{Y} Y用于表示随机向量,而非粗体 X i X_{i} Xi Y i Y_{i} Yi用于表示标量随机变量。

如果列向量中的元素为随机数:

X = ( X 1 , X 2 , … , X n ) T \mathbf{X}=(X_{1},X_{2},\dots,X_{n})^{T} X=(X1,X2,,Xn)T

每一个都有有限的方差和期望值,那么协方差矩阵 K X X \mathbf{K}_{\mathbf{XX}} KXX是这样一个矩阵:它的每一项 ( i , j ) (i,j) (i,j)为:

K X i X j = c o v [ X i , X j ] = E ⁡ [ ( X i − E ⁡ [ X i ] ) ( X j − E ⁡ [ X j ] ) ] \mathbf{K}_{\mathbf{X}_{i}\mathbf{X}_{j}}=\mathrm{cov}[X_{i},X_{j}]=\operatorname {E}[(X_{i}-\operatorname {E}[X_{i}])(X_{j}-\operatorname {E}[X_{j}])] KXiXj=cov[Xi,Xj]=E[(XiE[Xi])(XjE[Xj])]

还可以记作:
K X X = v a r ( X ) = c o v ( X ) = E ⁡ [ ( X − E ⁡ [ X ] ) ( X − E ⁡ [ X ] ) T ] \mathbf{K}_{\mathbf{X}\mathbf{X}}=\mathrm{var}(\mathbf{X})=\mathrm{cov}(\mathbf{X})=\operatorname {E}[(\mathbf{X}-\operatorname {E}[\mathbf{X}])(\mathbf{X}-\operatorname {E}[\mathbf{X}])^{T}] KXX=var(X)=cov(X)=E[(XE[X])(XE[X])T]
其中操作符 E \mathbf{E} E表示其参数的期望值(平均值)。其也常被称为方差-协方差矩阵,因为对角线项实际上是方差。

通过比较,两个向量之间的cross-covariance matrix(交叉协方差矩阵)的符号为:

K X Y = c o v ( X , Y ) = E ⁡ [ ( X − E ⁡ [ X ] ) ( Y − E ⁡ [ Y ] ) T ] \mathbf{K}_{\mathbf{X}\mathbf{Y}}=\mathrm{cov}(\mathbf{X},\mathbf{Y})=\operatorname {E}[(\mathbf{X}-\operatorname {E}[\mathbf{X}])(\mathbf{Y}-\operatorname {E}[\mathbf{Y}])^{T}] KXY=cov(X,Y)=E[(XE[X])(YE[Y])T]

基本性质

对于 K X Y = v a r ( X , Y ) = E ⁡ [ ( X − E ⁡ [ X ] ) ( Y − E ⁡ [ Y ] ) T ] \mathbf{K}_{\mathbf{X}\mathbf{Y}}=\mathrm{var}(\mathbf{X},\mathbf{Y})=\operatorname {E}[(\mathbf{X}-\operatorname {E}[\mathbf{X}])(\mathbf{Y}-\operatorname {E}[\mathbf{Y}])^{T}] KXY=var(X,Y)=E[(XE[X])(YE[Y])T] μ X = E ⁡ [ X ] \mu_{\mathbf{X}}=\operatorname{E}[\mathbf{X}] μX=E[X],其中 X = ( X 1 , X 2 , … , X n ) T \mathbf{X}=(X_{1},X_{2},\dots,X_{n})^{T} X=(X1,X2,,Xn)T为n维随机变量:

1) K X X = E ⁡ ( X X T ) − μ X μ X T \mathbf{K}_{\mathbf{XX}}=\operatorname{E}(\mathbf{XX}^{\mathrm{T}})-\mu_{\mathbf{X}}\mu_{\mathbf{X}}^{\mathrm{T}} KXX=E(XXT)μXμXT

2) K X X \mathbf{K}_{\mathbf{XX}} KXX is positive-semidefinite, i.e. a T K X X a ≥ 0 , a ∈ R n \mathbf{a}^{T}\mathbf{K}_{\mathbf{XX}}\mathbf{a}\geq 0,\mathbf{a}\in\mathbb{R}^{n} aTKXXa0,aRn

3) K X X \mathbf{K}_{\mathbf{XX}} KXX is symmetric, i.e. K X X T = K X X \mathbf{K}_{\mathbf{XX}}^{\mathrm{T}}=\mathbf{K}_{\mathbf{XX}} KXXT=KXX

4)For any constant (i.e. non-random) m × n m\times n m×n matrix A \mathbf{A} A and constant m × 1 m\times 1 m×1 vector a \mathbf{a} a, one has v a r ( A X + a ) = A v a r ( X ) A T \mathrm{var}(\mathbf{AX+a})=\mathbf{A}\mathrm{var}(\mathbf{X})\mathbf{A}^{\mathrm{T}} var(AX+a)=Avar(X)AT

5)If Y \mathbf{Y} Y is another random vector with the same dimension as X \mathbf{X} X, then v a r ( X + Y ) = v a r ( X ) + c o v ( X , Y ) + c o v ( Y , X ) + v a r ( Y ) \mathrm{var}(\mathbf{X}+\mathbf{Y})=\mathrm{var}(\mathbf{X})+\mathrm{cov}(\mathbf{X,Y})+\mathrm{cov}(\mathbf{Y,X})+\mathrm{var}(\mathbf{Y}) var(X+Y)=var(X)+cov(X,Y)+cov(Y,X)+var(Y) where c o v ( X , Y ) \mathrm{cov}(\mathbf{X,Y}) cov(X,Y) is the cross-covariance matrix of X \mathbf{X} X and Y \mathbf{Y} Y.

与正态分布(jointly normally distributed)或椭圆分布的关系(elliptically distributed)

如果一个n维列向量 X \mathbf{X} X的随机变量是联合正态分布(jointly normally distributed),或更一般的椭圆分布(elliptically distributed),那么它的概率密度函数 f ( X ) \mathrm{f}(\mathbf{X}) f(X)可以表述为的协方差矩阵 Σ \mathbf{\Sigma} Σ

f ( X ) = ( 2 π ) − n / 2 ∣ Σ ∣ − 1 / 2 exp ⁡ ( − 1 2 ( X − μ ) T Σ − 1 ( X − μ ) ) \mathrm{f}(\mathbf{X})=(2\pi)^{-n/2}|\mathbf{\Sigma}|^{-1/2}\exp\left(-\frac{1}{2}(\mathbf{X}-\mu)^{\mathrm{T}}\mathbf{\Sigma}^{-1}(\mathbf{X}-\mu)\right) f(X)=(2π)n/2Σ1/2exp(21(Xμ)TΣ1(Xμ))

其中 μ = E ⁡ [ X ] \mu=\operatorname{E}[\mathbf{X}] μ=E[X] ∣ Σ ∣ |\mathbf{\Sigma}| Σ Σ \mathbf{\Sigma} Σ的行列式。

  • Code 5.8

Y3=[X1(1:50,:); X2(1:50,:)];
Y2 = pdist(Y3,’euclidean’); %计算元素之间两两距离;
Z = linkage(Y2,’average’); %使用Agglomerative hierarchical cluster tree将距离进行编码;
thresh=0.85*max(Z(:,3));
[H,T,O]=dendrogram(Z,100,’ColorThreshold’,thresh); %将hierarchical cluster tree表示出来;

  • pdist函数
    D = pdist(X) 返回 X 中成对观测值之间的欧几里德距离。

    D = pdist(X,Distance) 使用 Distance 指定的方法返回距离。

    D = pdist(X,Distance,DistParameter) 使用 Distance 和 DistParameter 指定的方法返回距离。仅当 Distance 是 ‘seuclidean’、‘minkowski’ 或 ‘mahalanobis’ 时,您才能指定 DistParameter。
  • linkage
    Z = linkage(X) returns a matrix Z that encodes a tree containing hierarchical clusters of the rows of the input data matrix X.

    Z = linkage(X,method) creates the tree using the specified method, which describes how to measure the distance between clusters.
  • dendrogram
    dendrogram(tree) generates a dendrogram plot of the hierarchical binary cluster tree. A dendrogram consists of many U-shaped lines that connect data points in a hierarchical tree. The height of each U represents the distance between the two data points being connected.
    1) If there are 30 or fewer data points in the original data set, then each leaf in the dendrogram corresponds to one data point.
    2)If there are more than 30 data points, then dendrogram collapses lower branches so that there are 30 leaf nodes. As a result, some leaves in the plot correspond to more than one data point.

    dendrogram(tree,P) generates a dendrogram plot with no more than P leaf nodes. If there are more than P data points in the original data set, then dendrogram collapses the lower branches of the tree. As a result, some leaves in the plot correspond to more than one data point.

    H = dendrogram() generates a dendrogram plot and returns a vector of line handles. You can use any of the input arguments from the previous syntaxes.

    [H,T,outperm] = dendrogram(___) also returns a vector containing the leaf node number for each object in the original data set, T, and a vector giving the order of the node labels of the leaves as shown in the dendrogram, outperm.
    1)It is useful to return T when the number of leaf nodes, P, is less than the total number of data points, so that some leaf nodes in the display correspond to multiple data points.
    2)The order of the node labels given in outperm is from left to right for a horizontal dendrogram, and from bottom to top for a vertical dendrogram.
  • ColorThreshold
    Threshold for unique colors in the dendrogram plot, specified as the comma-separated pair consisting of ‘ColorThreshold’ and either ‘default’ or a scalar value in the range (0,max(tree(:,3))). If ColorThreshold has the value T, then dendrogram assigns a unique color to each group of nodes in the dendrogram whose linkage is less than T.

1)If ColorThreshold has the value ‘default’, then the threshold, T, is 70% of the maximum linkage, 0.7*max(tree(:,3)).

2)If you do not specify a value for ColorThreshold, or if you specify a threshold outside the range (0,max(tree(:,3))), then dendrogram uses only one color for the dendrogram plot.

注意linkagedendrogram函数需要搭配使用。
注意树的高度代表了距离的大小。
注意leaf node的意思是节点之下没有分支的节点,即最底层的节点。
注意其实在linkage函数本身已经有pdist函数的功能,所以后者在程序中多余。

在实际使用中还有一个常用函数:

  • cluster
    T = cluster(Z,‘Cutoff’,C) defines clusters from an agglomerative hierarchical cluster tree Z. The input Z is the output of the linkage function for an input data matrix X. cluster cuts Z into clusters, using C as a threshold for the inconsistency coefficients (or inconsistent values) of nodes in the tree. The output T contains cluster assignments of each observation (row of X).
  • example
X = rand(20000,3);
Z = linkage(X,'ward');
c = cluster(Z,'Maxclust',4);
scatter3(X(:,1),X(:,2),X(:,3),10,c)

注意这个cluster函数必须与linkage函数配合使用

  • Figrue 5.15

这张图并没有给定横坐标和纵坐标的表示,但是通过观察,横坐标应该为点排序之后的序号(使用dendrogram函数或者optimalleaforder函数),前50个点为绿色集合内的,后50个点为紫色集合内的。如果要达到文章中所说的效果,纵坐标应该是点到绿色集合质心(中心)的距离,但是纵坐标的值尚无法解释。

注意到Figure 5.14中树状图红色集团的最右侧为离质心应该比较远的距离,如果横坐标的序号与Figure 5.15相同,则相对应Figure 5.15中间红线左侧的很高的矩形正是表示这一事实,即Figure 5.15表示的就是每个点离第一个集团中心的距离。

  • Figure 5.16

注意其与Figure 5.14相同,不过用不同的颜色重新代表了新的聚类集团,集团的划分需要根据不同的threshold(详见dendrogram函数中的ColorThreshold选项)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值