文章目录

  • 一、Fisher算法
  • 二、蠓的分类问题:
  • 三、代码实现:

一、Fisher算法

二、蠓的分类问题:

两种蠓AfApf已由生物学家根据它们的触角翼长加以区分(Af是能传播花粉的益虫,Apf是会传播疾病的害虫),两个矩阵中分别给出了6只Apf 和9只Af蠓的触角长(对应于矩阵的第1列)和翼长(对应于矩阵的第2列)的数据(See next slide)。根据触角长和翼长这两个特征来识别一个样本是Af还是Apf是重要的。

(1)试给出该问题的Fisher分类器;

(2)有三个待识别的模式样本,它们分别是(1.24,1.80),(1.28,1.84),( 1.40,2.04),试问这三个样本属于哪一种蠓。

数据集:

APF = np.array([[1.14,1.78],[1.18,1.96],[1.20,1.86],[1.26,2.00],[1.30,2.00],[1.28,1.96]
])AF = np.array([[1.24,1.72],[1.36,1.74],[1.38,1.64],[1.38,1.82],[1.38,1.90],[1.40,1.70],[1.48,1.82],[1.54,2.08],[1.56,1.78]
])

三、代码实现:

Fisher算法关键在于求出权向量W_和阈值W*,然后求出待测数据的映射y_test,最后与W*阈值作比较。

import numpy as npAPF = np.array([[1.14,1.78],[1.18,1.96],[1.20,1.86],[1.26,2.00],[1.30,2.00],[1.28,1.96]
])AF = np.array([[1.24,1.72],[1.36,1.74],[1.38,1.64],[1.38,1.82],[1.38,1.90],[1.40,1.70],[1.48,1.82],[1.54,2.08],[1.56,1.78]
])#获取样本均值
def getAvg(x):return np.mean(x, axis=0)#求两类样本类内离散度矩阵Si
def getSi(x, x_mean):x_mean = x_mean.reshape(x.shape[1],1)Si = np.zeros((x.shape[1],x.shape[1]))for xi in x:temp_xi = xi.copy().reshape(x.shape[1],1)temp = (temp_xi-x_mean)Si = Si + np.dot(temp, temp.T)return Si# 求权向量W_
def getW(x1_mean,x2_mean,Sw):return np.dot(np.linalg.inv(Sw),(x1_mean-x2_mean))# 获取分类阈值w0和权向量W_
def get_w0(x1, x2):x1_mean = getAvg(x1)x2_mean = getAvg(x2)S1 = getSi(APF, x1_mean)S2 = getSi(AF, x2_mean)Sw = S1+S2W_ = getW(x1_mean,x2_mean,Sw)#获取投影点y1 = np.dot(x1, W_)y2 = np.dot(x2, W_)#求各类样本均值yi_meany1_mean = np.mean(y1)y2_mean = np.mean(y2)#选取分类阈值w0w0 = (y1_mean + y2_mean) / 2return w0, W_def Fisher(x1, x1_label, x2, x2_label, x_test):w0, W_ = get_w0(x1,x2)y_test = np.dot(x_test, W_)if y_test > w0:print('测试样本属于', x1_label)elif y_test <w0:print('测试样本属于',x2_label)else:print('测试样本可能属于%s,也可嫩属于%s'%x1_label%x2_label)x_tests = np.array([[1.24,1.80],[1.28,1.84],[1.40,2.04]
])i = 1
for x_test in x_tests:print('第%d个'%i,end='')i += 1Fisher(APF,'蠓APF',AF,'蠓AF',x_test)

预测结果如下:

第1个测试样本属于 蠓APF
第2个测试样本属于 蠓APF
第3个测试样本属于 蠓APF

Fisher算法+两类问题相关推荐

  1. 相位解包裹(四)两类相位解包裹算法

    前文讲到了残点的计算,从残点出发,发展出了一类相位解包裹算法,空间(空域)相位解包裹(Spatial phase unwrapping). 各种算法的具体流程还是放到后面再说,本文先讲讲相位解包裹算法 ...

  2. Python——两类二维数据线性判别fisher

    题目: 说明:下述问题在 Python 中编程求解. 1.已知两类二维数据, (1)第一类共 4 个样本:[6,6],[4,5],[5,5],[5,4],第二类共 4 个样本: [0,1],[1,2] ...

  3. Dijkstra、RRT两类路径规划算法原理的直观理解

    在路径规划的算法里,有两大类算法是很常用的,一类是基于搜索和图的Dijkstra算法,还有一类是基于采样的RRT算法.本文对其算法原理进行简单的理解,力图生动的展示枯燥的数学公式背后精彩的思想. Di ...

  4. 其他算法-两大随机采样方法简介

    对于随机采样算法,在采样不全时,通常不能保证找到最优解,只能尽量找.根据搜索的方式,可以把随机算法分成两类: 蒙特卡罗方法(Monte Carlo Simulation):采样越多,越近似最优解: 拉 ...

  5. 贪心算法两船装载问题Java_贪心算法-最优装载问题

    贪心选择算法为算法分析中一种常用算法,通过一系列的选择来得到一个问题的解.它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择.希望通过每次所作的贪心选择导致最终结果是问题的一个最优解.这种 ...

  6. 用计算机转换层次的例子,两类层次分析法的转换及在应用中的比较-计算机工程与应用.PDF...

    两类层次分析法的转换及在应用中的比较-计算机工程与应用 114 2012 ,48 (9) Computer Engineering and Applications 计算机工程与应用 两类层次分析法的 ...

  7. 算法-两最长回文子串

    题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1:输入: "babad" 输出: "bab" 注意: &q ...

  8. Java实现Google的S2算法工具类

    WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 Google S2 经纬度 转 CellId 经纬度 转 cellToken ...

  9. 手写字体的fisher算法识别

    代表了一些投影的方法 最佳W值的确定: 最佳w值的确定实际上就是对Fisher准则函数求取其达极大值时的. 对于这个问题可以采用拉格朗日乘子算法解决,保持分母为一非零常数c的条件下,求其分子项的极大值 ...

最新文章

  1. 面试官: Redis 与 MySQL 双写一致性如何保证?
  2. android中自适应布局教程,Android自适应布局设计技巧
  3. 工作70:验证放在直接父级
  4. rsatool使用步骤图解_工作中想要事半功倍?图解来助你
  5. python 文件函数_python文件操作及函数学习
  6. Django运行服务报NameError: name ‘os‘ is not defined-已解决
  7. dialog下textarea滚动条不显示
  8. 以计算机基础知识做二十张ppt,计算机基础知识教程.ppt
  9. Python处理PDF文档 合并两个PDF文档 和 截取指定页面
  10. Flash:动画实例--flash文字变形
  11. Flash视频播放器 JW PLAYER怎么在网页中运用?
  12. 卫生间里的上下铺,那滋味~
  13. 大学生做校园快递跑腿项目前景分析
  14. Qt 使用QMovie加载gif图片实现动态等待窗口
  15. #POW和POS的优势和劣势
  16. C语言——求三个数中最大值(6种方法)
  17. dem生成等高线教程-dem提取等高线教程
  18. 论文邮箱不是导师的_你的论文为何在导师那里“石沉大海”?
  19. SpringAop篇 (2) Spring中的切面编程技术 AspectJ
  20. VIDEO-DXGKRNL-FATAL-ERROR

热门文章

  1. python从入门到精通 pdf 完整超清版-Python从入门到精通PDF高清完整版免费下载|百度云盘...
  2. 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析
  3. 0基础学python要多久-自学Python要学多久可以学会?
  4. python自动化办公真的好用吗-Python做什么更合适?|老男孩Python自动化运维
  5. python是什么课程-Python是什么?如何学习Python课程?老男孩IT教育
  6. 会聊天到底有多重要?汽车语音识别大盘点
  7. 【干货】怎样用深度学习做语音识别
  8. dump文件_零基础编程——Python文件、JSON数据存储
  9. Web API-基本认知
  10. 【MYSQL快速入门】牛客网:多表查询