一个很简单的CRITIC方法python实现,通常用来确定属性权重的标准重要性。除了不要求属性的独立性外,CRITIC方法还反映了属性之间的相关系数。主要步骤为
1、标准化决策矩阵,可以有很多种方法。对于一个标准矩阵W,有
2、计算属性间j,k的相关系数。
4、计算属性的偏离度
5、获得属性权重
代码如下
# coding=gbk
import pandas as pd
import numpy as np
if __name__ == '__main__':
df = pd.DataFrame([[1, 0.875, 0.625, 0.75, 0.625],
[0.571, 0.857, 0.714, 0.857, 1],
[1, 0.4, 0.6, 0.7, 0.6],
[0.25, 0.75, 0.875, 1, 0.75]])
std_d=np.std(df,axis=1)
mean_d=np.mean(df,axis=1)
cor_d=np.corrcoef(df)
w_j=(1-cor_d).sum(0) *std_d
print(w_j)
w=(mean_d/(1-mean_d)*w_j)/sum(mean_d/(1-mean_d)*w_j)
print(w)