20数据判别分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20数据判别分析相关的知识,希望对你有一定的参考价值。

参考技术A

Mahalanobis 距离
定义:马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系并且是尺度无关,即独立于测量尺度。 对于一个均值为 μ,协方差矩阵为 Σ 的多变量向量,其马氏距离公式为:

距离判别
将距离判别中的算法编写成名为 discriminiant.distance 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本属于X1 类,“2” 代表属于 X2 类。
距离判别主要用到了 mahalanobis() 函数,格式为:
mahalanobis(data,center,cov)
data:样本数据构成的向量或矩阵
center:样本中心
cov:样本协方差

通过与原始样本对比,可以看出样本 11 12 和 16 被判错

样本 11 12 19 25 27 30 32 被判错

Bayes 判别
将Bayes 判别中的算法编写成名为 discriminiant.bayes 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,rate 是损失比和先验概率的乘积,默认为 1 ,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本 属于X1 类,“2” 代表属于 X2 类。

样本 12 19 25 27 28 35 被判错

样本 11 12 25 30 32 被判错

Fisher 判别
Fisher (费歇儿)判别的准则要求类内方差尽量小、类间方差尽量大。将 Fisher 判别中的算法编写成名为 discriminiant.fisher 的函数,函数中,输入变量 TrnX1,TrnX2 分别表示 X1 类和 X2 类的训练样本,格式可以是矩阵、数据框,输入变量 TstX 是测试样本,格式是矩阵、数据框或向量,var.equal 是逻辑变量,TRUE 表示协方差阵相同,默认为不同,函数输出以 “1” 和“2” 构成的一维矩阵,“1” 代表测试样本 属于X1 类,“2” 代表属于 X2 类。

样本 11 12 19 25 27 30 32 被判错

三种判别法的对比
1 、距离判别法与 Fisher 判别法未对总体的分布提出特定的要求,而 Bayes 判别法要求总体的分布明确。
2 、在正态等协差阵的条件下,Bayes 判别法(不考虑先验概率的影响)等价于距离判别准则和 Fisher 线性判别法。
3 、当 K 个总体的均值向量共线性较高时,Fisher 判别法可用较少的判别函数进行判别。
4 、距离判别法和 Fisher 判别法的不足是没有考虑各总体出现的概率大小,也给不出预测的后验概率及错判率的估计,以及错判之后的损失。而这些不足恰是 Bayes 的优点。但是若给定的先验概率不符合客观实际时,Bayes 判别法也可能会导致错误的结论。

当不同类样本的协方差矩阵相同时,我们可以在 R 中使用 MASS 包的 lda 函数实现线性判别。利用 table 函数建立混淆矩阵,比对真实类别和预测类别。

线性判对率

Bayes 判对率

一元线性判别分析( LDA 技术)
运用 Bayes 定理进行分类,假设观测分成 K 类,K>=2,即定性响应变量 Y 可以取 k 个不同的无序值。设为 πk 为一个随机选择的观测来自第 k 类的先验概率 (prior),记为 πk=P(Y=k)。设 f(X)=Pr(X=x|Y=k)为表示第 k 类观测的 X 的概率密度。
贝叶斯定理公式:

由于 Smarket 数据集中数据较多我们采用 lda 函数,选取 Lag1、Lag2 变量样本进行分析,将 2005 年前的数据作为训练样本,2005 年的数据作为测试样本。

Group means 对每类每个变量计算平均,是用来估计参数 μ 。通过 Group means 矩阵可看出:当股票下跌时,前两天的投资回报率会趋向于正;当股票上涨时,前两天的投资回报率会趋向于负。Coefficients of linear discriminants 则是线性模型的系数,说明当 -0.642Log-0.513Log 很大时,LDA分类器预测上涨;-0.642Log-0.513Log 很小时,预测下跌。

聚类分析和判别分析

13聚类分析和判别分析

==================================

聚类分析

什么是聚类分析?

聚类:数据对象的集合

在同一集群内彼此相似

与其他集群中的对象不同

==================================

聚集分析

将一组数据对象分组为群集,即为分组

聚类是无监督的分类:没有预定义的类。

典型应用

作为了解数据分布的独立工具。

作为其它算法的预处理步骤

=================================

什么是好的聚类?

良好的聚类方法将产生高质量的簇,

类内相似性

类间相似性

聚类结果的质量取决于相似性度量,即相似性要求高聚类的质量就差。

聚类方法的质量也通过它发现一些或全部隐藏模式的能力来测量,即是否在组中发现隐藏模式如果有隐藏模式则聚类效果差。

====================================

测度聚类质量

不同/相似度量:相似性用距离函数表示,距离函数通常是度量:d(ij)

对于布尔变量、范畴变量、序数变量、区间缩放变量和比率变量,距离函数的定义通常有很大的不同。

权重应该根据应用程序和数据语义与不同的变量相关联。

很难定义足够相似足够好”--答案通常是高度主观的。

聚类方法

 技术图片

 

 

数据结构

数据矩阵

 技术图片

 

 

相异矩阵

 技术图片

 

 

==========================================

分区算法:基本概念

分区方法:N个对象的数据库D的分区构造成一组K个簇

给定一个k,找到一个k簇的分区,以优化所选的分区准则。

全局最优:彻底枚举所有分区

启发式方法:K-meank-medoid算法

k-means:每个群集由群集的中心表示

K-medoidPAM(围绕medoid的分区):每个集群由集群中的一个对象表示

==========================================

K-means聚类

基本思路:使用集群中心(表示)表示集群。

将数据元素分配给收敛集群(中心)

目标:尽量减少平方误差(类内差异)

 技术图片

给定kk-均值算法分四个步骤实现:

将对象划分为k个非空子集

计算种子点作为当前分区的群集的质心(质心为中心,即群集的平均点)

 技术图片

使用最近的种子点将每个对象分配给群集

回到步骤2,当不再有新的任务时停止

就是在已知要分为4类之后,将K=4,随便找到4个点,计算每个原始点的到这四个点中心的距离,选择距离最近的点归类,这就有4类点,再在这些点内部计算每一点的质心,这就有了新的4个点,再对所有点计算到这四个点的距离,然后比较,以此类推。

 技术图片

 

 

================================

流程:

初始化1

指定组k的数目:

例如,k=4

选择4个点(随机)

 技术图片

 

 

每个点根据4个距离分配到最近的集群。

 技术图片

 

 

迭代直到装置收敛

 

 

============================================

关于k-means方法的评述

优点:相对高效:O(TKN),其中n#对象,k#集群,t#迭代。通常,kt<n

注释:通常以局部最佳状态终止。

全局最优的方法包括:确定性退火和遗传算法。

缺点:

仅在均值被定义时才适用,而不适用于分类数据

需要预先指定k,集群的数目。

无法处理噪声数据和异常值。

不适合发现具有非凸形状的簇

=================================================

处理数值数据的方法:k-means

 技术图片

 

 

类似于K的聚类方法

一些不同于K-means算法的不同在于

对于原始K-means值的选择

不同计算

计算集群均值的策略

处理分类数据K-modes

 技术图片

用模式替换均值

使用新的不同的措施来处理分类对象。

使用基于频率的方法来更新群集模式

分类数据和数值数据的混合:K-prototype

 技术图片

===========================================

K-medoid聚类方法

在集群中找到有代表性的对象,称为medoid

PAM围绕MeDOID进行分区

使用真实对象代表群集,

任意选择k表示对象

对于每对非选定的对象h和选定的对象i,计算总交换成本TCIDH

对于每对ih,

如果TCIDH<0,则将I替换为H

然后将每个非选定对象分配给最相似的具有代表性的对象。

重复步骤2-3,直到没有变化

即若K=2,则选择原始数据中的某两个点作为原始medoids,计算每个点到该点的距离,形成两个簇,再选择一个非之前的点作为medoid,如果花费得到改善则将medoid值替换为改点,如果没有得到改善则不变。

从一组初始的medoid开始,如果它改善了所产生的聚类的总距离,则迭代地将其中一个medoid替换为非medoid之一

PAM有效地适用于小型数据集,但对于大型数据集,PAM不能很好地进行扩展

CLARA

CLARANS:随机抽样

===========================================

PAM的评论

在存在噪声和异常值的情况下,pamk均值更健壮,因为Medoid受异常值或其他极值的影响小于k-means

PAM有效地适用于小型数据集,但对于大型数据集,PAM不能很好地扩展。

因为迭代次数较多,每个迭代的O(k(n-k)2)

其中n是数据的个数k是簇的个数

===========================================

CLARA集群大型应用程序

它绘制数据集的多个样本,对每个样本应用PAM,并给出最佳的聚类作为输出。

优点:处理比PAM更大的数据集。

劣势:效率取决于样本量。

-如果样本被偏置,则基于样本的良好聚类不一定代表整个数据集的良好聚类

即将原来的所有样本划分为更小单元,即单个样本来进行PAM

=======================================

分层群聚

使用距离矩阵作为聚类准则。此方法不需要将群集k的数目作为输入,而是需要一个终止条件。

 技术图片

给定一组待聚类的项目和NxN距离(或相似度)矩阵,基本过程分层聚类是这样的:

  1. 首先,将每个项分配给它自己的集群,这样如果您有N个项,那么您现在就有N个集群,每个集群只包含一个项。
  2. 找到最接近(最相似)的集群,并将它们合并到一个集群中,这样现在就少了一个集群。
  3. 计算新集群和每个旧集群之间的距离(相似之处)。
  4. 重复步骤2和步骤3,直到所有项目聚集成一个大小为N的集群。

就像哈弗曼树得到的过程一样。

========================================

簇间距离

单点距离:点间最小距离

完全点距离:最大点间距离

平均点距离:点间平均距离

质心距离:质心距离

===============================

合并或连接规则-计算距离

================================

距离测量:明可夫斯基度规

假设两个对象xy都有p特性:

 技术图片

 

 

明可夫斯基度规技术图片

 

 

=====================================

常用的Minkowski度量

R=2时是欧几里得距离:

R=1时是曼哈顿距离

R=正无穷是(sup”距离),即数据集合中取最大值。

 技术图片

 

 

============================================

当所有特征都是二进制时,曼哈顿距离被称为Hamming距离。

17个条件下基因表达水平(1-高,0-低)

 技术图片

 

 

即二进制的01+10=11=5

=========================================

其他相似指数

权重距离:技术图片

Sop距离:技术图片

 

内积:技术图片

皮尔逊相关系数

斯皮尔曼等级相关系数

==========================================

系统树图

一种树数据结构,它说明了层次聚类技术。

每个级别显示该级别的群集

叶子-个体群集

-一个群集

i级的群集是i+1群集的联盟

 技术图片

 

 

==========================================

聚类级别

 技术图片

 

 

凝聚实例

首先计算各点之间的距离,然后将距离最小的相组合,以此类推,直到根节点。

 技术图片

 

 

单链路、完全链接和平均链接群集

 技术图片

 

 

 

==========================================================

聚簇分析中的问题

大量的聚类算法

许多距离/相似性度量

哪种聚类算法运行得更快,使用的内存更少

到底有多少

这些簇稳定吗?

这些集群(簇)有意义吗?

=======================================================

统计显着性检验不是一个典型的统计测试

聚类分析是不同算法的集合根据定义良好的相似性规则将对象放入聚类

聚类分析方法大多是在没有先验假设的情况下使用,但还处于探索阶段。

事实上,集群分析发现"最重要的解决方案是可能的。"

统计学显著性检验在此不合适,即使在报告p水平的情况下(如在K-均值聚类中)

========================================

判别分析,判别式分析DA

DA用于通过距离度量来标识对象组之间的边界。

例如:

一些昆虫属于什么种类,属于一些措施的基础。

某人是否有良好的信用风险?

学生应该被大学录取吗?

类似于回归,除了标准(或因变量)分类变量的而不是连续变量

可替代地,判别式分析与(MANOVA)相反。

MANOVA:自变量是分类变量的,因变量是连续变量。

Manova中,自变量是群(分类变量),因变量是连续测度。

DA中,自变量是连续测度和因变量是团体(分类变量)。

===========================

DA的原始数据:

 技术图片

 

 

目的是让再来一个数据,据数据结构进行目录分类。

============================================

线性判别分析

线性判别分析试图找到最佳分离人口的选定措施的线性组合。

 技术图片

 

 

红色和蓝色即已经找到了划分方法。

程序:

判别函数分析分为两个步骤:

  1. 判别函数集测试显著性意义,即先看看有没有限制性差异,再多重比较

第一步骤在计算上与ManoVA相同。存在总方差-协方差矩阵;同样,存在集合内方差-协方差矩阵。

通过多元F检验对这两个矩阵进行比较,以确定组间是否存在显著差异(对于所有变量)

首先进行多元检验,如果具有统计学意义,则继续查看哪一个变量在各组中具有显著不同的均值。

  1. 分类

一旦发现组平均值具有统计学显著性,就进行变量分类。

判别分析自动确定变量的最优组合,从而使第一个函数提供最全面的变量组合。

群体间的区别,第二种提供第二全面,以此类推。

此外,这些职能将是独立的或正交的,也就是说,它们对群体之间的歧视的贡献不会重叠。

此外,这些函数将是独立的或正交的,也就是说,它们对群体之间的歧视的贡献不会重叠

=========================================

假定前提

样本量:即薯竖条型变量。

可接受不同的样本尺寸。最小组的样本大小需要超过预测变量的数量。作为经验法则,最小的样本大小应该是 对于几个(45)的预测因子,至少会有20。自变量的最大数目是n-2,其中n是样本的大小.虽然这种低样本量可能有效,但不鼓励这样做,而且通常最好是有45倍的观察和独立变量

正态分布:

假设数据(对于变量)表示来自多元正态分布的样本。您可以检查变量是否通常分布有频率分布的直方图。 然而,请注意,违反正态假设并不是致命的,只要非正态是由偏斜而非异常引起的,则由此产生的显着性检验仍然是可靠的。

方差/协方差的同质性

判别分析对方差协方差矩阵的异质性非常敏感。在接受重要研究的最终结论之前,最好先回顾一下组内方差和相关矩阵。同步性通过散射图进行评估,并通过变量变换加以修正。

=================================================

极端值

判别分析对离群点的包含非常敏感

运行每个组的单变量和多变量异常值的测试,并对其进行转换或消除。

如果一项研究中的一组包含影响平均值的极端离群值,则它们也会增加变异性。总体显着性测试基于集合方差,即所有组之间的平均方差。因此,相对较大的均值(具有较大的方差)的显着性检验将基于相对较小的集合方差,从而导致错误的统计显着性。即方差和均值都比实际情况要大。

 

非线性:

如果其中一个自变量与另一个独立变量高度相关,或者一个是其他独立变量的函数(例如和),那么矩阵就没有唯一的判别解。

在独立凹坑相关的程度上,标准化的鉴别函数系数将不能可靠地评估预测变量的相对重要性。既没有偏相关系数这一类的函数来评估。

============================================================

判别分析与聚类

判别分析:

已知的类数量

基于训练集

用于对未来的观测进行分类

 

分类是监督学习的一种形式

Y =X1 + X2 + X3

聚类

未知类数

无先验知识

用于理解(探索)数据

聚类是一种无监督学习形式。

X1 + X2 + X3

以上是关于20数据判别分析的主要内容,如果未能解决你的问题,请参考以下文章

线性判别分析(LDA)

线性和二次判别分析

Fisher(LDA) 判别分析

线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

聚类分析和判别分析

R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)