【统计分析数学模型】判别分析(二):Fisher判别法

2024-02-24 00:44

本文主要是介绍【统计分析数学模型】判别分析(二):Fisher判别法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

【统计分析数学模型】判别分析(二):Fisher判别法

  • 一、Fisher判别法
    • 1. 基本思想
    • 2. 类别
    • 3. R语言MASS包
  • 二、R语言实现Fisher判别法
    • 1. 使用 lda() 获得线性判别函数
    • 2. 对样本进行回判分类
    • 3. 混淆矩阵
    • 4. 绘制散点图


一、Fisher判别法

1. 基本思想

Fisher判别法的基本思想是“投影”,即将高维空间中的样本点投影到低维空间,从而简化问题。

Fisher判别最重要的就是选出适当的投影轴,保证投影后每一类之内的样本点的离散程度尽可能小,而不同类之间的样本点的离散程度尽可能大。

2. 类别

Fisher判别有线性判别、二次判别等多种判别方法。

对于线性判别,先将样本点投影到一维空间(即直线)上,若效果不好,则可以增加一个维度,即投影到二维空间中,以此类推。

二次判别与线性判别的区别在于投影面的形状不同,线性判别的投影面为直线或平面,而二次判别使用若干二次曲面将样本点划分到相应的类别中。

3. R语言MASS包

MASS包里的函数lda()可用于线性判别,函数qda()可用于二次判别。

  1. 线性判别函数
    lda(x, ...)
  2. 二次判别函数
    qda(x, ...)

二、R语言实现Fisher判别法

1. 使用 lda() 获得线性判别函数

在公式里Diagnosis为因变量,其余5个变量为自变量;先验概率的默认值为各个类别所占的比例

library(MASS)
thyroid.ld<-lda(Diagnosis~RT3U+T4+T3+TSH+DTSH,data=thyroid)
thyroid.ld

输出中包括函数lda()里所用的公式、先验概率、各类的均值向量、线性判别函数的系数、两个判别式对区分总体的贡献大小等:

> thyroid.ld
Call:
lda(Diagnosis ~ RT3U + T4 + T3 + TSH + DTSH, data = thyroid)Prior probabilities of groups:Normal     Hyper      Hypo 
0.6976744 0.1627907 0.1395349 Group means:RT3U        T4       T3        TSH      DTSH
Normal 110.51333  9.192667 1.731333  1.3166667  2.516667
Hyper   95.28571 17.745714 4.262857  0.9742857 -0.020000
Hypo   121.70000  3.600000 1.063333 12.9200000 17.533333Coefficients of linear discriminants:LD1          LD2
RT3U  0.02501083  0.001974564
T4   -0.30544670 -0.103495742
T3   -0.11588398 -0.434103730
TSH   0.03831828 -0.147419858
DTSH  0.07288461 -0.074044771Proportion of trace:LD1    LD2 
0.8398 0.1602 
> 

两个线性判别函数分别为:

LD1 = 0.025×RT3U - 0.305×T4 - 0.116×T3 + 0.038×TSH + 0.073×DTSH

LD2 = 0.002×RT3U - 0.103×T4 - 0.434×T3 - 0.147×TSH - 0.074×DTSH

2. 对样本进行回判分类

将泛型函数predict()作用于线性判别对象可以得到各个样品的回判分类:

thyroid.pred<-predict(thyroid.ld)
thyroid.pred$class

结果如下:

> thyroid.pred$class[1] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[11] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[21] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[31] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[41] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[51] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[61] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[71] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[81] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal[91] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[101] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[111] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[121] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[131] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[141] Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
[151] Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Normal
[161] Hyper  Hyper  Normal Hyper  Hyper  Normal Hyper  Hyper  Normal Hyper 
[171] Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Hyper  Normal Hyper  Normal
[181] Hyper  Normal Normal Hyper  Normal Hypo   Hypo   Normal Normal Hypo  
[191] Hypo   Hypo   Hypo   Hypo   Hypo   Hypo   Normal Hypo   Hypo   Hypo  
[201] Hypo   Hypo   Hypo   Hypo   Hypo   Hypo   Hypo   Hypo   Hypo   Hypo  
[211] Normal Normal Normal Normal Normal
Levels: Normal Hyper Hypo

3. 混淆矩阵

与上一篇文章(距离判别法)类似,我们可以通过混淆矩阵查看判别效果:

table(thyroid.pred$class,thyroid$Diagnosis)

结果如下:

> table(thyroid.pred$class,thyroid$Diagnosis)Normal Hyper HypoNormal    150     9    8Hyper       0    26    0Hypo        0     0   22

结果表明,有17个样品判别错误,错误率为7.9%,正确率为92.1%。

被错判的对象所处的行号:

e1<-which(thyroid.pred$class=="Normal"&thyroid$Diagnosis=="Hyper")
e2<-which(thyroid.pred$class=="Normal"&thyroid$Diagnosis=="Hypo")
> e1
[1] 160 163 166 169 178 180 182 183 185> e2
[1] 188 189 197 211 212 213 214 215

4. 绘制散点图

以两个线性判别函数为坐标轴绘制散点图,并用不同颜色和形状的点表示患者的诊断类型:

LD1<-thyroid.pred$x[,1]
LD2<-thyroid.pred$x[,2]
col<-as.numeric(thyroid$Diagnosis)
pch<-as.numeric(thyroid$Diagnosis)
plot(LD1,LD2,col=col,pch=pch)
legend("bottom",legend=c("Normal","Hyper","Hypo"),+col=1:3,pch=1:3)
points(LD1[e1],LD2[e1],cex=2,col=4)
points(LD1[e2],LD2[e2],cex=2,col=4)

如图所示,两个线性判别函数较好地区分了3类患者。其中判错的对象位于两类别的邻近区域(图中的圆圈)。
在这里插入图片描述

这篇关于【统计分析数学模型】判别分析(二):Fisher判别法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740441

相关文章

R语言统计分析——重复测量方差分析

参考资料:R语言实战【第2版】         所谓重复测量方差分析,即受试者被测量不止一次。本例使用数据集市co2数据集:因变量是二氧化碳吸收量(uptake),自变量是植物类型(Type)和七种水平的二氧化碳浓度(conc)。Type是组间因子,conc是组内因子。Type已经被存储为一个因子变量,还需要将conc转换为因子变量。分析过程如下: # 将conc变量转化为因子变量CO2$c

GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器

GraphPad Prism 10 是一款专为科研工作者设计的强大统计分析与绘图软件,无论是Mac还是Windows用户,都能享受到其带来的便捷与高效。该软件广泛应用于生物医学研究、实验设计和数据分析领域,以其直观的操作界面、丰富的统计方法和多样化的图表样式,成为科学研究的得力助手。 数据处理与整理 GraphPad Prism 10 支持从多种数据源导入数据,如Excel、CSV文件及数据库

(感知机-Perceptron)—有监督学习方法、非概率模型、判别模型、线性模型、参数化模型、批量学习、核方法

定义 假设输入空间(特征空间)是 χ \chi χ ⊆ R n \subseteq R^n ⊆Rn,输出空间是y = { + 1 , − 1 } =\{+1,-1 \} ={+1,−1} 。输入 x ∈ χ x \in \chi x∈χ表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y ∈ y \in y∈y表示实例的类别。由输入空间到输出空间的如下函数: f ( x ) = s

python scrapy爬虫框架 抓取BOSS直聘平台 数据可视化统计分析

使用python scrapy实现BOSS直聘数据抓取分析 前言   随着金秋九月的悄然而至,我们迎来了业界俗称的“金九银十”跳槽黄金季,周围的朋友圈中弥漫着探索新机遇的热烈氛围。然而,作为深耕技术领域的程序员群体,我们往往沉浸在代码的浩瀚宇宙中,享受着解决技术难题的乐趣,却也不经意间与职场外部的风云变幻保持了一定的距离,对行业动态或许仅有一鳞半爪的了解,甚至偶有盲区。   但正是这份对技术

基于中心引导判别学习的弱监督视频异常检测

WEAKLY SUPERVISED VIDEO ANOMALY DETECTION VIA CENTER-GUIDED DISCRIMINATIVE LEARNING 基于中心引导判别学习的弱监督视频异常检测 abstract 由于异常视频内容和时长的多样性,监控视频中的异常检测是一项具有挑战性的任务。在本文中,我们将视频异常检测看作是一个弱监督下视频片段异常分数的回归问题。因此,我们提出了

机器学习面试:生成模型和判别模型基本形式有哪些?

在机器学习中,生成模型(Generative Models)和判别模型(Discriminative Models)是两类重要的模型类型,它们在建模思路、基本形式和应用场景上有显著的区别。以下是这两种模型的基本形式和它们的主要特点。 生成模型(Generative Models) 生成模型旨在学习数据的联合分布 P(X,Y),即学习特征 X与标签 Y之间的关系。其核心目标是生成符合训练数据分布

大数据-案例-离线数仓-在线教育:MySQL(业务数据)-ETL(Sqoop)->Hive数仓【ODS层-数据清洗->DW层(DWD-统计分析->DWS)】-导出(Sqoop)->MySQL->可视化

一、商业BI系统概述 商业智能系统,通常简称为商业智能系统,是商业智能软件的简称,是为提高企业经营绩效而采用的一系列方法、技术和软件的总和。通常被理解为将企业中的现有数据转换为知识并帮助企业做出明智的业务决策的工具。 BI系统中的数据来自企业的其他业务系统。例如,一个面向业务的企业,其业务智能系统数据包括业务系统订单、库存、交易账户、客户和供应商信息,以及企业所属行业和竞争对手的数据,以及其他

跨模态检索研究进展综述【跨模态检索的核心工作在于:①不同模态数据的特征提取、②不同模态数据之间内容的相关性度量】【主流研究方法:基于传统统计分析的技术、基于深度学习的技术】【哈希编码提高检索速度】

随着互联网上多媒体数据的爆炸式增长,单一模态的检索已经无法满足用户需求,跨模态检索应运而生. 跨模态检索旨在以一种模态的数据去检索另一种模态的相关数据。 跨模态检索的核心任务是:数据特征提取 和 不同模态数据之间内容的相关性度量。 文中梳理了跨模态检索领域近期的研究进展,从以下角度归纳论述了跨模态检索领域的研究成果.: 传统方法;深度学习方法;手工特征的哈希编码方法;深度学习的哈希编码方法

TLS握手性能测试工具:快速重置、多线程与高级统计分析(C/C++代码实现)

随着网络安全的日益重要,传输层安全性(TLS)协议在保护数据传输中扮演着关键角色。TLS握手作为该协议的核心部分,确保了客户端和服务器之间的安全通信。鉴于其重要性,对TLS握手的性能进行精确评估变得至关重要。该工具专注于TLS握手的性能测试,而不涉及数据传输或重协商。 快速重置TCP连接 理解快速重置TCP连接对于优化TLS握手性能具有重要意义。 在数据传输过程中,TCP连接的建立和关闭是必

判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)

试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。 注意:算法中涉及的图的基本操作必须在此存储结构上实现。 图的邻接表以及相关类型和辅助变量定义如下: Status visited[MAX_VERTEX_NUM];typedef char VertexType;typedef struct ArcNode {int adj