一、源代码
输入正互反矩阵,先进行一致性检验,判断是否通过,通过后返回权重。
def AHP(A) -> np.array:
# 平均随机一致性指标。
RI_dict = {1: 0, 2: 0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45, 10: 1.49}
n = len(A)
for i in range(1, n):
for k in range(i):
A[i][k] = 1 / A[k][i]
A = np.array(A)
w, v = np.linalg.eig(A)
lambda_max = np.max(abs(w))
index = list(w).index(abs(w).max())
CI = (lambda_max - n) / (n - 1)
RI = RI_dict[n]
CR = CI / RI
y = 0
if CR < 0.1:
print("随机一致性指标为{},判断矩阵具有满意的一致性。".format(CR))
x = v[:, index].sum(axis=0) # 对列向量求和,对于第一列求和
y = v[:, index] / x # 第一列进行归一化处理
print("最大的特征值为:", lambda_max)
print("对应的特征向量为:", abs(y).round(3))
else:
print("随机一致性指标为{},判断矩阵不具有满意的一致性。".format(CR))
print("各指标权重为:", abs(y))
return abs(y)
二、例子
X = [[1, 1 / 5, 1, 1 / 3, 1, 1],
[5, 1, 5, 3, 7, 7],
[1, 1 / 5, 1, 3, 5, 5],
[3, 1 / 3, 1 / 3, 1, 1, 1],
[1, 1 / 7, 1 / 5, 1, 1, 1],
[1, 1 / 7, 1 / 5, 1, 1, 1]]
W = AHP(X)
print()
print(W)
输出
随机一致性指标为0.0993908598585786,判断矩阵具有满意的一致性。
最大的特征值为: 6.616223331123187
对应的特征向量为: [0.083 0.475 0.205 0.108 0.065 0.065]
各指标权重为: [0.0828432 0.47512185 0.2046549 0.10769012 0.06484497 0.06484497]
[0.0828432 0.47512185 0.2046549 0.10769012 0.06484497 0.06484497]
一、HTTP Status 404 - /JSFLoginDemo/userLogin.faces去除如下红色配置即可正常访问:xml version="1.0" encoding="UTF-8"?> xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan
在SystemUI中有一个Activity可以显示所有的Logo这个Activity涉及到的图标存放在SystemUI/res/drawable-nodpi目录下在这里我自己写了个小的测试程序,把相关的文件拿出来DessertCase.java、DessertCaseDream.java、DessertCaseView.java,只要是在DessertCaseView这个V
阅读目录 一:数据序列化流程图 二:SerializableAttribute 一:数据序列化流程图 在WCF当中是通过序列化器来进行序列化的,大家可以通过这个图看到,如果我们希望传递一个数据的话或者说我们希望来传递一个对象,从客户端到服务器端或者从服务器端到客户端,我们需要进行数据的序列化,对数据进行序列化我们可以通过DataContractAttribute的数...
检测系统是否包含某些文件或者相关属性时,test命令是个很好的命令, 加上 && 及 || 还能更人性化地显示结果# test -e new && echo "exist" || echo "not exist"not exist更多用法:测试的标志代表意义1. 关於某个档名的『文件类型』判断,如 test -e filename 表示存在否
from collections import Counterimport re# 统计列表中次数出现最高的单词的频次a = [12, 5, 6, 4, 6, 5, 5, 7]print(Counter(a).most_common())# 拥挤英文文章中单词的频度with open("LICENSE") as f: contend = f.read()# 将文本转换为单词列表
近期做接口自动化时,遇到一些问题,当后端某个查询接口将参数返回给前端接口,另一个接口调用此参数,但里面的参数需要前一个接口进行相应转换且参数类型为json套json格式,带有转义字符:;后端返回结果类型:{ "msgList":null, "success":true, "code":"200", "message":"", "data":"{"al":{"A":"a...
Order By 排序条件中带参数的写法(Oracle数据库、MyBatis)
列表、max()、min()、sum()、len()函数的应用体会列表:对多个数据进行统一操作!!""" 在终端中循环录入学生成绩,如果录入空,则停止,打印最高分,最低分,平均分"""grade = []while True: str_score = input('请输入成绩:') if str_score == '': print("最高分:" ...
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息。本文假定读者已经了解如何用代码来抓取一个远程的 URL,并具备表单如何提交及
一、64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器?之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的...
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果。我们一直认为,单向地输出知识并不是一个最好的方式,而...
高斯混合模型聚类实战(Gaussian Mixtures)高斯混合模型(GMM)是一种概率模型,它假设实例是由几个参数未知的高斯分布的混合生成的。从单个高斯分布生成的所有实例形成一个通常看起来像椭球(钟形、圆形、椭球)的集群。每个簇可以有不同的椭球形状、大小、密度和方向。有几个GMM变体。在其最简单的形式(在sklearn中实现)中,该算法预先要求高斯分布的个数。为了给出一些上下文,让我们考虑一个假定通过以下概率过程生成的数据集,下面是一个图形模型,它表示随机变量之间的条件依赖关系的结构: