#%% 改进CRITIC法
#完整代码
#导入相关库
import pandas as pd
import numpy as np
#导入数据
print('--------------')
print('详情联系17839606517')
print('--------------')
data=pd.read_excel('D:\\lunwen\\结构加功能.xlsx')
label_need=data.keys()[1:]
data1=data[label_need].values
#查看行数和列数
data2 = data1
[m,n]=data2.shape
#负向指标标准化
index=[2] #负向指标位置,注意python是从0开始计数,对应位置也要相应减1
for j in index:
print('负向指标数据',data1[:,j])
d_max=max(data1[:,j])
d_min=min(data1[:,j])
data2[:,j]=(d_max-data1[:,j])/(d_max-d_min)
# 正向指标标准化
#正向指标位置
index_all=np.arange(n)
index=np.delete(index_all,index)
for j in index:
d_max=max(data1[:,j])
d_min=min(data1[:,j])
data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min)
#%% TOPSIS法(改进定权)综合评价
import pandas as pd
import numpy as np
data=pd.read_excel('D:\\lunwen\\结构加功能.xlsx', sheet_name=0,header=0,index_col=0)
m,n=data.shape #获取行数m和列数n
print('行列:',m,n)
#熵权法计算
def Y_ij(data1): #矩阵标准化(min-max标准化)
for i in data1.columns:
for j in range(n+1):
if i == str('结构洞约束'): #负向指标
data1[i]=(np.max(data1[i])-data1[i])/(np.max(data1[i])-np.min(data1[i]))
else: #正向指标
data1[i]=(data1[i]-np.min(data1[i]))/(np.max(data1[i])-np.min(data1[i]))
return data1
Y_ij=Y_ij(data) #标准化矩阵
#print(Y_ij)
None_ij = [[None] * n for i in range(m)] #新建空矩阵
#Y_ij.to_excel(
改进CRITIC法、CRITIC法、熵权法、结合TOPSIS法、线性加权法等代码
于 2022-05-11 16:19:41 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)