Fisher线性判别分析

2023-11-07

一、问题举例

    在UCI数据集上的Iris和Sonar数据上验证算法的有效性:
    Iris数据3类,4维,150个数据;Sonar数据2类,60维,208个样本.
    
    训练和测试样本有三种方式进行划分:(三选一)
    1. 将数据随机分训练和测试,多次平均求结果
    2. K折交叉验证
    3. 留1法
    针对不同维数,画出曲线图

二、解决方法

1、Fisher线性判别分析(LDA)

  两类的线性判别问题可以看作是把所有的样本都投影到一个方向上,然后在这个然后在这个一维空间中确定一个分类的阈值。过这个阈值点且与投影方向垂直的超平面就是两类的分类面。Fisher线性判别的思想就是,选择投影方向,使投影后两类相隔尽可能远,而同时每一类内部的样本又尽可能聚集,如图1所示。

图1

  这里只讨论两分类的问题,训练样本集是X ={x1,…,xN},每一个样本是一个d维向量,其中w1类的样本是X1 ={x11,…,xN11},w2类的样本是X2 ={x12,…,xN12}。我们要寻找一个投影方向W(W也是一个d维向量),投影以后的样本变成

2、算法描述

1)留一法

  留一法是K折法的一种极端情况
  在K折法中,将全部训练集 S分成 k个不相交的子集,假设 S中的训练样例个数为 N,那么每一个子集有 N/k 个训练样例,相应的子集称作 {s1,s2,…,sk}。每次从分好的子集中里面,拿出一个作为测试集,其它k-1个作为训练集,根据训练训练出模型或者假设函数。然后把这个模型放到测试集上,得到分类率,计算k次求得的分类率的平均值,作为该模型或者假设函数的真实分类率。
  当取K的值为样本个数N时,即将每一个样本作为测试样本,其它N-1个样本作为训练样本。这样得到N个分类器,N个测试结果。用这N个结果的平均值来衡量模型的性能,这就是留一法。在UCI数据集中,由于数据个数较少,采用留一法可以使样本利用率最高。

2)Iris数据集

  在Iris数据集中,有150个样本,共三类Setosa、Versicolour、Virginica,一共有4维特征,分别为sepal length、sepal width、petal length、petal width.
  在Fisher线性判别方法中,由于只能够判别两类,所以将Iris数据集分三种情况:1-2类,1-3类,2-3类,分别判断每一种情况的Fisher判别准确率。用留一法对训练和测试样本进行划分之后,计算出每一类之间的最优投影方向W1、W2、W3之后,再进行准确率测试。

3)Sonar 数据集

  在 Sonar 数据集中,有 208 个样本,共两类:字母“R”(岩石)和“M”(矿 井),并且有一共有 60 维的特征。
  针对多维的情况,我们可以得出数据集在不同维度下的 Fisher 线性判别准 确率。在这个时候出现了一个问题:如何在 60 维中选取维数?假设我们要计算 在 42 维的准确率,选哪些维数才最接近真实值?对此,我采用多次取样求平均 的方法,对样本特征进行打乱,选前 42 维的特征进行计算,重复十次打乱的过 程,求准确率的平均值,这样可以规避由于某些特征比较易于区分而导致的准确 率高于平均水平的情况。

三、仿真结果

1、Iris数据集

  在最佳投影方向 W0 投影的结果,其中黑色的点为 W1 类,红色的点为 W2 类, 分类阈值为(0,0)点



  从投影点可以看出,第一类和第二类、第一类和第三类相隔特别远,利用线性判别能够完全将它们分开,而第二类和第三类相隔比较近,但利用线性判别也能基本将其分开,得出的准确率也能证明这一点。

2、Sonar 数据集

首先对 60 维的时候进行投影,得到两类的投影结果

从图中可以看出,两类的分界面处交集较多,准确率约为 0.75
将 60 维扩大到 1 ~ 60 维,得出每一维的准确率,针对不同维数,画出曲 线图。

从图中可以看出,在只有一维的时候,利用 Fisher 线性判别得出的准确率 约为 0.5,随着维数的增长,准确率慢慢提高,最终趋于一个稳定值 0.75 左 右。

四、代码

GitHub地址如下
Pattern recognition / LDA
https://github.com/Fangzhenxuan/AI_Projects.git

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fisher线性判别分析 的相关文章

  • 模式识别 一

    模式识别 教材选择模式识别基本概念模式识别的主要方法应用领域模式识别与机器学习的区别模式识别典型过程前修基础课程课后问题解答1 简述特征空间优化的方法2 简述分类器的设计准则3 简述分类器设计的基本方法4 简述在什么情况下分类器不可分5 分
  • 最小二乘曲线拟合——C语言算法实现一

    最小二乘曲线拟合 给定一组数据 我们要对这组数据进行曲线拟合 假定要拟合的曲线方程为 y a0 a1 x 1 a2 x 2 a3 x 3 an x n x y 0 995119 7 620000 2 001185 2 460000 2 99
  • 【模式识别4】YOLO目标检测数据集xml格式转txt格式

    YOLO目标检测数据集xml格式转txt格式 1 转换前的xml格式 2 xml格式转txt格式代码 2 1 源代码 2 2 需要修改的地方 3 转换后的txt格式 代码资源 voc2txt py 1 转换前的xml格式 如果我们使用Lab
  • CNN中感受野的计算

    感受野 receptive field 是怎样一个东西呢 从CNN可视化的角度来讲 就是输出featuremap某个节点的响应对应的输入图像的区域就是感受野 比如我们第一层是一个3 3的卷积核 那么我们经过这个卷积核得到的featurema
  • 基于BP神经网络的回归预测

    基本概念 误差反向传播神经网络简称为BP Back Propagation 网络 它是一种具有三层或三层以上的多层神经网络 每一层都由若干个神经元组成 如图所示为一个BP神经网络的结构图 它的左 右各层之间各个神经元实现全连接 即左层的每一
  • 最大公约数、最小公倍数、辗转相除法的求解和证明

    两个正整数的最大公约数 Greatest Common Divisor GCD 在计算机中通常使用辗转相除法计算 最小公倍数 Least Common Multiple LCM 可以使用GCD来计算 下面首先介绍GCD和LCM 然后介绍辗转
  • 中文文本分类-朴素贝叶斯

    原创作品 出自 晓风残月xj 博客 欢迎转载 转载时请务必注明出处 http blog csdn net xiaofengcanyuexj 由于各种原因 可能存在诸多不足 欢迎斧正 最近在想怎么利用数据挖掘的方法进行评论自动审核 分类为垃圾
  • 模式识别(1)协方差矩阵相关和K-means聚类算法实现(含源码)

    模式识别实验一 实验一 协方差矩阵和矩阵特征值 特征向量的计算 题目简介 给定一组数据 实现该组数据的协方差矩阵的计算 并用代码实现计算一个方阵的特征值和特征向量 一 协方差部分 1 协方差的定义 协方差在概率论和统计学中用于衡量两个变量的
  • 模式识别学习初感悟

    学习模式识别已经快一个月了 从开始的混沌迷茫到现在的小有感觉 不能说自己进步了很多 只能说自己没有虚度这一个月的时光 下面相对自己这一个月的学习做一个总结 希望各位老师同学能多提宝贵意见 毕竟学术要在交流中才能发展 考研的生活结束后 顺利进
  • 模式识别——特征提取(表达)

    特征表达 特征是机器学习系统的原材料 对最终模型的影响是毋庸置疑的 如果数据被很好地表达成了特征 通常线性模型就能达到满意的精度 关于特征 需要考虑以下三方面 1 特征表示的粒度 需要考虑 模型在一个什么程度上的特征表示 才能发挥效果 以图
  • 图像特征提取三大算法:HOG特征,LBP特征,Haar特征

    一 HOG特征 from http dataunion org 20584 html 1 HOG特征 方向梯度直方图 Histogram of Oriented Gradient HOG 特征是一种在计算机视觉和图像处理中用来进行物体检测的
  • 基于深度学习的图像检索 image retrieval based on deep learning (code ,代码)

    本次代码分享主要是用的caffe框架 至于caffe框架的安装过程不再说明 代码修改自 cross weights 的一篇2016年的文章 但是名字忘记了 谁记得 提醒我下 一 环境要求 1 python 2 gcc 3 opencv 4
  • 模式识别、计算机视觉、机器学习领域的顶级期刊和会议(整理)

    部分AI刊物影响因子05 SCIIF 2005 2004 JMLR 4 027 5 952 机器学习 PAMI 3 810 4 352 模式识别 IJCV 3 657 2 914 计算机视觉 TOIS 4 529 4 097 AIJ 2 6
  • 最小二乘曲线拟合——C语言算法实现二

    最小二乘曲线拟合 在上一篇博客中我们介绍了最小二乘法的原理 以及代码实现的例子 http blog csdn net beijingmake209 article details 27565125 本次我们再给出一个程序实现的例子 编译环境
  • 【行人重识别】Unsupervised Salience Learning for Person Re-identification

    Abstract 人眼可以基于 一些较小的显着区域来识别人的身份 然而 当使用现有方法计算图像的相似度时 通常会隐藏这种有价值的显着信息 此外 许多现有的方法学习区别性特征并以监督的方式处理急剧的视点变化 并要求为不同的摄像机视图对标注新的
  • 使用pytorch版faster-rcnn训练自己数据集

    使用pytorch版faster rcnn训练自己数据集 引言 faster rcnn pytorch代码下载 训练自己数据集 接下来工作 参考文献 引言 最近在复现目标检测代码 师兄强烈推荐FPN 但本文只针对Faster RCNN 大家
  • 目标检测mAp

    目标检测的mAp的计算是根据不同的IoU下的对应的recall和precision计算得到
  • 模式识别 - 名词解释整理

    模式识别 模式识别是指把对象根据其特征归到若干类别中适当的一类 模式识别也称为模式分类 模式 模式是指因素间存在确定性或随机性规律的对象 过程或事件的集合 识别 识别就是把对象分门别类地认出来 样本 sample 所研究对象的一个个体 样本
  • 什么是模式识别,模式识别概念的基本介绍

    模式识别又常称作模式分类 从处理问题的性质和解决问题的方法等角度 模式识别分为有监督的分类 Supervised Classification 和无监督的分类 Unsupervised Classification 两种 模式还可分成抽象的
  • 算法笔记-DTW动态时间规整

    算法笔记 DTW动态时间规整 简介 简单的例子 定义 讨论 约束条件 步模式 标准化 点与点的距离函数 具体应用场景 分类 点到点匹配 算法笔记 DTW动态时间规整 动态时间规整 规划 Dynamic Time Warping DTW 是一

随机推荐

  • 2023全球数字化营销洞察报告

    报告显示ChatGPT Dall E Midjourney Stabledi usion和Synthesia等工具只是 创意性 人工智能发展的开始 我们可以期待 未来将出现更优化 更强大的工具 相关的合法性 道德 避免滥用等讨论也将更加丰富
  • 斩获 offer 的 Java 面试宝典

    文章目录 1 微服务 1 1 主流注册中心对比 1 2 eureka 心跳检测和自我保护机制 1 3 Ribbon 负载均衡策略 1 4 Hystrix 舱壁模式 1 5 Hystrix 工作模式 1 6 Fein 1 7 gateway
  • i12蓝牙耳机使用(小米手机)

    一 操作位置 操作点击按键在无用孔位和喇叭位之间 二 听音乐 项目 左耳 右耳 单击 暂停播放 暂停播放 双击 降低音量 提升音量 三击 小米手机打开小爱 小米手机打开小爱 长按 关耳机 关耳机 三 打电话 项目 打入 接听时 单击 接听
  • 28-设置初始级组件

    这节是讲了如何给蓝图添加灯的模型 以及给灯添加聚光灯和点光源 这些是通过组件表示的 即灯是默认根组件 而光是灯的组件 这里只添加一个光源 1 找蓝图类的组件 默认根组件 2 找到灯模型 拖到默认根 3 将灯模型拖到默认根组件 即形成一个新的
  • 软件架构(CS结构/BS结构)

    1 C S结构 即 Client Server C S工作流程图 在C S结构的情况下 不同的服务需要安装不同的客户端软件 比如QQ 迅雷 Foxmail这种情况下安装的软件会越来越多 同时也有许多弊端 比如A出差 需要在B电脑上查收邮件
  • 微信小程序实现购物商城(附源码)

    2018年本人做了一个淘宝购物返利的微信公众号 截至目前已运营了近5年的时间 也陆续积累了不少粉丝 近日 有部分用户反馈是否可以在公众号上展示促销商品列表 而且要具备搜索功能 为感谢粉丝朋友们的长期支持 笔者耗时一周 利用茶余饭后时间 开发
  • python饼图添加颜色_Python中的五颜六色的饼状图!(二)

    5x00 突出显示扇形块 explode 参数可以实现突出显示某一块扇区 接收数组形式的参数 这个数组中的元素个数应该是 len x 即和扇区块的数量相同 import matplotlib pyplot as plt plt rcPara
  • Python 基础(一):入门必备知识

    目录 1 标识符 2 关键字 3 引号 4 编码 5 输入输出 6 缩进 7 多行 8 注释 9 数据类型 10 运算符 10 1 常用运算符 10 2 运算符优先级 基础 进阶 爬虫 自动化 数据分析 编写小游戏 趣味 Python 文档
  • Expect 编程教程

    http expect nist gov expect home 目录 1 摘要 2 关键字 3 简介 4 Expect综述 5 callback 6 passwd 和一致性检查 7 rogue 和伪终端 8 ftp 9 fsck 10 多
  • 结构体中存在string类型成员

    include
  • 网页三剑客,html/css/javascript

    1 网页三剑客 html css javascript 引入到更高主流技术 进展比较快 不是为学习这个知识 小于10 高薪进入企业 新技术 我们的目标是让大家做项目时 出现这些html标签 css样式 js语法 都不陌生 2 javascr
  • 视频里去水印

    一 在网页 右键 检查 或者 ctrl shift i 调出代码界面 二 ctrl f 打开搜索框 可以直接搜索关键词 也可以输入xpath 优酷视频 在搜索框输入 div class youku layer wuliao div 删之前水
  • linux内核文件都是什么地方,一张图看懂Linux内核

    1 前言 本文主要讲解什么是Linux内核 以及通过多张图片展示Linux内核的作用与功能 以便于读者能快速理解什么是Linux内核 能看懂Linux内核 拥有超过1300万行的代码 Linux内核是世界上最大的开源项目之一 但是内核是什么
  • Java下载excel模板文件

    目录 一 前言 二 下载模板 三 Excel导入 一 前言 最近做了一个导入Excel的功能 需求 先提供一个下载Excel模板的功能 用户下载好模板后 可以在模板文件当中填写要上传的内容 填写完过后再进行导入Excel 然后将用户填写的数
  • springboot jackson时间和数据库查询的时间不一致

    1 当前的关于jackson的配置文件application yml jackson date format yyyy MM dd HH mm ss 1 1 问题描述 数据库查询出来的时间为 接口返回的数据 可以看出 接口返回的数据和数据库
  • cv2.imread读取灰度图的一点细节

    我们都知道灰度图或者红外图都是单通道图片 而彩色图片是三通道图片 但是当我们用img shape读取灰度图 红外图片的时候返回的却是三通道结果 img path home zhaotongdong data kaggle humap 256
  • 在css中使用vue定义的变量

    在css中使用vue定义的变量 例如根据分辨率的变化来改变元素的高度值 div class tablemain div
  • QT从入门到实战x篇_24_定时器实现方法2:利用QTimer类实现(更为推荐用于实现计时器功能)

    接上文 QT从入门到实战x篇 xx 定时器实现方法1 事件timerEvent QTimerEvent ev 静态变量的作用域 初始化及赋值 本篇介绍 使用QTimer类实现定时器功能 其原理是每隔一段时间就会利用timeout发送信号给槽
  • 蓝桥杯python(题目思路即解答(笔记))

    这篇文章是为蓝桥杯做准备时顺便做的笔记 用来讨论即参考用的 如有错误欢迎指正 有更好的方法也可以提出来一起讨论 谢谢各位大佬们orz 因为本人不是VIP 只能刷蓝桥杯里面的普通题 还请见谅orz 注 代码中的input别尚自加东西进去 会报
  • Fisher线性判别分析

    文章目录 一 问题举例 二 解决方法 1 Fisher线性判别分析 LDA 2 算法描述 1 留一法 2 Iris数据集 3 Sonar 数据集 三 仿真结果 1 Iris数据集 2 Sonar 数据集 四 代码 一 问题举例 在UCI数据