决策算法PROMETHEE方法。
step1,给出决策矩阵,规范化决策矩阵。
step2,给出每一个方案与其他方案的偏好函数,偏好函数主要有六种,可以根据自己设置偏好函数。
step3,获得权重。
step4,确定优先指数,其实就是简单的加权过程。
step5,计算正负优序级别值,一个方案的正方向越高和负方向越低,方案就越优。PROMETHEE1方法只能得到部分优序关系,
step6,计算综合优序级别值,PROMETHEE2则可以获得方案集合的完全排序。
数据来自论文《基于云模型与 PROMETHEE 方法的语言型 Z‑number 多
属性决策》
完整代码如下
import pandas as pd#bikor算法实现
import numpy as np
def ranks(df):
m=(df.shape[1])
dfpis = np.sum(df,axis=1)/(m-1)
dfnis = np.sum(df,axis=0)/(m-1)
dfranks=dfpis-dfnis
return dfpis,dfnis,dfranks
if __name__ == '__main__':
df = pd.DataFrame([[0,0.0526,0.1331,0.0602],
[0.1333,0,0.1059,0.0988],
[0.1697,0.0617,0,0.0764],
[0.2523,0.2135,0.2396,0]])
df=df.T
print(df)#这里单纯是我复制过来的矩阵数据反了所以转置
print(ranks(df))