数模——灰色关联分析算法

news2024/11/24 16:29:47

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

文章目录

前言

一、基本概念了解

1.什么是灰色系统?

2.什么是关联分析?

二、模型原理

三、建模过程

1.找母序列(参考序列)

2.列子序列

3.数据预处理

4.计算灰色关联系数

5.计算关联度

四、代码实现

总结


前言

本文将讲解有关灰色关联算法的原理以及实现,一切代码仅供参考,不可用于比赛!有不足之处欢迎大家提出


一、基本概念了解

1.什么是灰色系统?

系统总共有黑、白、灰三种,我们用颜色的深浅来反映信息量的多少。白色非常明亮清晰,我们就说这个系统是清楚的,信息量充足;黑色给人神秘莫测的感觉,我们就说这个系统是黑洞洞的,信息量太少;则灰色系统就介于黑白之间,说明它是一个信息不完全的系统

这里信息不完全最主要表达的一个意思就是:系统因素不完全明确

2.什么是关联分析?

系统地分析因素——>多种因素谁主要谁次要,哪些影响大哪些小,哪些明显哪些潜在,哪些需发展哪些需抑制

二、模型原理

基本思想:根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序
列之间的关联度就越大,反之就越小。

三、建模过程

基本思路:对一个抽象的系统或现象进行分析,首先要选准反映系统行为特征的数据序列(母序列),称为找系统行为的映射量,用映射量来间接地表征系统行为;然后再找影响系统行为的因素

1.找母序列(参考序列)

能够反映系统的行为特征的数据序列≈因变量Y   eg:通过国民平均接受教育的年数来反映教育发达程度,这里教育发达程度就是Y

2.列子序列

由影响系统行为的因素组成的数据序列≈自变量X

一般是一个自变量一列构成矩阵X(当然一行也可以,只需要变换相应的代码即可)

3.数据预处理

目的:去量纲化

操作:先求出每个指标的均值,在用指标中的元素除以其均值

注意:母序列和子序列都要求,而且是分开求!

4.计算灰色关联系数

目的:计算子序列中各个指标与母序列的关联系数

操作:

  1. 求出两极最小差a和最大差b:将上述经过预处理的Y,X矩阵中对应的母序列与子序列相减取绝对值得到新的矩阵,然后先对每一行求最大(小)值,再对每一列求最大(小)值
  2. 再求出关联系数

eg:

 

5.计算关联度

直接利用公式

四、代码实现

%灰色关联分析
%A=[55,24,10;65,38,22;75,40,18;100,50,20]
A = input('输入初始矩阵=') ;%输入初始矩阵
Average = mean(A); %求出每一列的均值以供后续的数据预处理
A = A ./repmat(Average,size(A,1),1); %size()后面跟1为求行数,2为求列数
disp('预处理后的矩阵为:');
disp(A)
Y = A(:,1); %母序列,此时已经知道影响因素
X = A(:,2:end);%子序列


%计算|xo-xi|矩阵(这里xo即为Y
absxo_xi = abs(X- repmat(Y,1,size(X,2)));
%计算两级最小差a
a = min(min(absxo_xi));
%计算两级最大差b
b= max(max(absxo_xi));
%取分辨系数为0.5
rho = 0.5;
%计算子序列中各个指标与母序列的关联系数
garma = (a+rho*b)./(absxo_xi +rho*b);
disp('子序列中各个质保的灰色关联度为:');
disp(mean(garma));


总结

以上就是灰色关联算法的实现,具体的应用还要结合题目进行分析,以上代码仅供参考!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1986402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣面试150 逆波兰表达式求值 栈 模拟栈

Problem: 150. 逆波兰表达式求值 👨‍🏫 参考题解 class Solution {//纯数组模拟栈实现(推荐) 3 ms 36 MBpublic static int evalRPN(String[] tokens) {int[] numStack new int[tokens.length / 2 1];int index 0;for (String s : tokens) {swit…

常见中间件漏洞(二、WebLogin合集)

目录 二、WebLogic Weblogic介绍 2.1 后台弱口令GetShell 漏洞描述 影响范围 环境搭建 漏洞复现 2.2 CVE-2017-3506 漏洞描述 影响版本 环境搭建 漏洞复现 2.3 CVE-2019-2725 漏洞描述 影响版本 环境搭建 漏洞复现 2.4 CVE-2018-2628 漏洞描述 漏洞影响 环…

STM32学习笔记2 --- GPIO输入

目录 AD/DA 按键 传感器模块 传感器模块细节 按键模块电路 传感器模块接入电路 OLED ​编辑 代码 封装驱动代码 GPIO读取函数 按键控制LED代码 部分解释 光敏传感器代码 部分解释 接线图 c知识补充 AD/DA AD:模拟-数字转换 DA:数字-模拟…

使用Idea进行Java开发断点打不进去

我在进行打断点时 出现了这个问题导致我无法进行断点测试 问题原因: 打的断点太多了 ,导致线程冲突 解决办法 : 删除之前打完未去掉的断点 完美解决 Nice! 有可能会不小心点到断点失效键,断点有可能会变成灰色 则为无…

【系统分析师】-综合知识-企业信息化与系统规划

1、一个有效的客户关系管理( Customer Relationship Management,CRM)解决方案应具备畅通有效的客户交流渠道、对所获信息进行有效分析和(CRM 与 ERP 很好地集成)等特点。 通过将(人力资源、业务流程与专业技术&#x…

uniapp连接手机调试App,并最终打包成apk文件,和上传到应用商店的问题

对于一些刚开始使用uniapp开发app的同学来说,有时候仅仅是第一步连接手机进行开发测试都很难进行。这篇文章就来向大家介绍一些怎样连接手机进行调试我们开发中的项目,并最终将开发好的项目打成apk包进行安装,和将开发好的App应用上传到应用商…

【递归】用递归的方法求阶乘

用递归的方法求 阶乘&#xff0c;这里我们以 求5&#xff01;为例&#xff0c;使用C语言实现 #include<stdio.h>int fact(int n){if(n1){return 1;}elsereturn n*fact(n-1); }int main(){int result;resultfact(5);printf("5的阶乘是 &#xff1a;%d",result)…

宝众宝达IPO终止:原实控人去世时间矛盾,婚外情主角任总经理

近日&#xff0c;上海证券交易所披露的信息显示&#xff0c;江苏宝众宝达药业股份有限公司&#xff08;下称“宝众宝达”&#xff09;及其保荐人中信建投证券撤回上市申请文件。因此&#xff0c;上海证券交易所决定终止对其首次公开发行股票并在主板上市的审核。 据贝多财经了解…

XXLJob接入说明

1、配置 1.1、pom文件 引入依赖 <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId> </dependency> 1.2、bootstrap.yml 增加xxljob读取配置 common-xxljob.yaml 内容如下&#xff1a; xxl:job:adm…

JavaScript(二十七)——JavaScript 函数定义

目录 JavaScript 函数定义 函数声明 函数表达式 Function() 构造函数 函数提升&#xff08;Hoisting&#xff09; 自调用函数 函数可作为一个值使用 函数是对象 箭头函数 JavaScript 函数定义 JavaScript 使用关键字 function 定义函数。 函数可以通过声明定义&#…

力扣第45题:跳跃游戏 贪心DP(C++)

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…

【附保姆级教程】两个月内快速涨粉17万,变现2w+,儿童英语阅读,家长辅导孩子必备!

目录 一、前言 二、儿童英语阅读教程 第一步&#xff1a;利用AI代写英语阅读短文 第二步&#xff1a;使用Flux生成场景图 第三步&#xff1a;将文本转为音频 第四步&#xff1a;使用canva工具进行排版 第五步&#xff1a;剪辑视频 一、前言 大家好&#xff0c;我是小奇…

如何在国外市场推广中国游戏

在国外市场推广中国游戏需要一种考虑文化差异、市场偏好和有效营销渠道的战略方法。以下是成功向国际观众介绍和推广中国游戏的关键步骤和策略&#xff1a; 进行市场调研 了解目标市场&#xff1a;首先确定哪些外国市场对你的游戏最具潜力。考虑类似游戏类型的受欢迎程度、玩…

找工作准备刷题Day21 动态规划算法 (卡尔41期训练营 8.6)

上周有些事情回了趟老家&#xff0c;祝广大博友身体健康&#xff0c;多运动。前面的贪心算法题目后面慢慢补&#xff0c;近期找到了一个实习&#xff0c;大概持续三个月&#xff0c;现在计划是白天工作&#xff0c;晚上下班以后运动运动刷题。要加强牛客网那种两小时3道题的刷题…

【LVS】负载均衡--nat模式/实验

一、LVS运行原理 LVS:Linux Virtual Server &#xff0c;负载调度器&#xff0c;内核集成&#xff0c;章文嵩&#xff0c;阿里的四层 SLB(Server LoadBalance) 是基于LVSkeepalived 实现 LVS 官网 : http://www.linuxvirtualserver.org/ LVS 相关术语 VS: Virtual Server&…

poetry配置镜像

1.简介 poetry 是一个包管理和打包的工具。 在 Python 中&#xff0c;对于初学者来说&#xff0c;打包系统和依赖管理是非常复杂和难懂的。即使对于经验丰富的开发者&#xff0c;一个项目总是要同时创建多个文件&#xff1a; setup.py ,requirements.txt,setup.cfg , MANIFES…

Python爬虫入门:如何设置代理IP进行网络爬取或数据采集

在如今这个信息爆炸的时代&#xff0c;数据成为了最有价值的资源之一。而Python作为一种强大且易学的编程语言&#xff0c;被广泛应用于数据采集和网络爬虫中。然而&#xff0c;直接进行网络爬取往往会遇到IP被封禁的问题&#xff0c;因此使用代理IP就成了一个有效的解决方案。…

SpringBoot中读取配置的七种方法总结

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

Python | TypeError: unsupported operand type(s) for +=: ‘int’ and ‘str’

Python | TypeError: unsupported operand type(s) for : ‘int’ and ‘str’&#xff1a;深度解析 在Python编程中&#xff0c;遇到“TypeError: unsupported operand type(s) for : ‘int’ and ‘str’”这类错误通常意味着你尝试将一个整数&#xff08;int&#xff09;和…

基于OpenCV+MFC的视频读取与对象跟踪平台

基于OpenCVMFC的视频读取与对象跟踪平台 引言一、软件功能简介二、各个功能介绍1、视频操作模块功能介绍1.1打开视频1.2打开摄像头1.3开始录制1.4结束录制1.5暂停1.6恢复1.7关闭1.8还原 2、对象跟踪模块功能介绍2.1 BSM跟踪2.2 颜色跟踪2.3 光流跟踪2.4 KCF多对象跟踪 资源链接…