python实现多层次模糊综合评价

2023-11-21 22:40

本文主要是介绍python实现多层次模糊综合评价,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 算法简介
  • 调用示例
    • 例题
    • 代码
  • 具体实现
    • 权重 ak 的确定
      • 频数统计法确定权重
        • 算法理论
        • 算法代码
      • 模糊层次分析法确定权重
        • 算法理论
        • 算法代码
    • 综合评价
      • 算法理论
      • 算法代码

算法简介

在这里插入图片描述
在这里插入图片描述

调用示例

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

具体实现

权重 ak 的确定

频数统计法确定权重

算法理论

在这里插入图片描述

算法代码
def frequency(matrix,p):'''频数统计法确定权重:param matrix: 因素矩阵:param p: 分组数:return: 权重向量'''A = np.zeros((matrix.shape[0]))for i in range(0, matrix.shape[0]):## 根据频率确定频数区间列表row = list(matrix[i, :])maximum = max(row)minimum = min(row)gap = (maximum - minimum) / prow.sort()group = []item = minimumwhile(item < maximum):group.append([item, item + gap])item = item + gapprint(group)## 初始化一个数据字典,便于记录频数dataDict = {}for k in range(0, len(group)):dataDict[str(k)] = 0## 判断本行的每个元素在哪个区间内,并记录频数for j in range(0, matrix.shape[1]):for k in range(0, len(group)):if(matrix[k, j] >= group[k][0]):dataDict[str(k)] = dataDict[str(k)] + 1breakprint(dataDict)## 取出最大频数对应的key,并以此为索引求组中值index = int(max(dataDict,key=dataDict.get))mid = (group[index][0] + group[index][1]) / 2print(mid)A[i] = midA = A / sum(A[:]) ## 归一化return A
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

模糊层次分析法确定权重

算法理论

在这里插入图片描述
在这里插入图片描述

算法代码
def AHP(matrix):if isConsist(matrix):lam, x = np.linalg.eig(matrix)return x[0] / sum(x[0][:])else:print("一致性检验未通过")return None

def isConsist(matrix):
‘’’
:param matrix: 成对比较矩阵
:return: 通过一致性检验则返回true,否则返回false
‘’’
n = np.shape(matrix)[0]
a, b = np.linalg.eig(matrix)
maxlam = a[0].real
CI = (maxlam - n) / (n - 1)
RI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45]
CR = CI / RI[n-1]
if CR < 0.1:
return True, CI, RI[n-1]
else:
return False, None, None

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

综合评价

算法理论

在这里插入图片描述

算法代码

其中算子的算法在另一篇博客中https://blog.csdn.net/weixin_44112790/article/details/88090412

def appraise(criterionMatrix, targetMatrixs, relationMatrixs):''':param criterionMatrix: 准则层权重矩阵:param targetMatrix:    指标层权重矩阵列表:param relationMatrixs: 关系矩阵列表:return:'''R = np.zeros((criterionMatrix.shape[1], relationMatrixs[0].shape[1]))for index in range(0, len(targetMatrixs)):row = mul_mymin_operator(targetMatrixs[index], relationMatrixs[index])R[index] = rowB = mul_mymin_operator(criterionMatrix, R)return B / sum(B[:])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
                </div><link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet"></div>

这篇关于python实现多层次模糊综合评价的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同