Python进行灰色关联度综合评价

Python进行灰色关联度综合评价

        • 概念介绍
        • 第一步,读取数据,设置城市名称为索引
        • 第二步,设置参考数列
        • 第三步,无量纲化指标
        • 第四步,计算评价对象指标序列与参考序列的差值
        • 第五步,获得最大值和最小值
        • 第六步,计算关联系数
        • 第七步,计算关联序(综合得分)

概念介绍

在运用代码进行综合评价之前,首先对方法的理论进行介绍,具体如下图。
Python进行灰色关联度综合评价_第1张图片

Python进行灰色关联度综合评价_第2张图片
Python进行灰色关联度综合评价_第3张图片
Python进行灰色关联度综合评价_第4张图片
Python进行灰色关联度综合评价_第5张图片
Python进行灰色关联度综合评价_第6张图片
Python进行灰色关联度综合评价_第7张图片
Python进行灰色关联度综合评价_第8张图片
根据上述步骤,使用Python进行编写,具体如下。

第一步,读取数据,设置城市名称为索引

import pandas as pd #导入pandas工具包
import numpy as np #导入numpy工具包 
data = pd.read_excel("F:\Desktop\Python运行文件.xlsx")
data[:5]

Python进行灰色关联度综合评价_第9张图片

第二步,设置参考数列

# 获取列名称
n = list(data.columns)
# 这里以最优值为参考数列
A1 = []
# 获取最优列值
for i in n:
    Max = np.max(data[i])
    A1.append(Max)
    
# 转换形式    
A1 = np.array(A1)
A1

第三步,无量纲化指标

# 这里采用均值化法
for i in n:
    data[i] = data[i]/np.average(data[i])
data[:5]

Python进行灰色关联度综合评价_第10张图片

第四步,计算评价对象指标序列与参考序列的差值

m = len(data)
for i in range(m):
    data[i:i+1] = abs(data[i:i+1] - A1)

第五步,获得最大值和最小值

# 最大值
MAX = []
# 每个指标的最大值
for i in n:
    l = max(data[i])
    MAX.append(l)

MAX = max(MAX)

# 最小值
MIN = []
# 每个指标的最小值
for i in n:
    l = min(data[i])
    MIN.append(l)

MIN = min(MIN)

第六步,计算关联系数

# 这里 rho 为0.5
for i in n:
    data[i] = (MIN + 0.5*MAX)/(data[i] + 0.5*MAX)
    
data[:5]

Python进行灰色关联度综合评价_第11张图片

第七步,计算关联序(综合得分)

score = []
for i in range(m):
    s = sum(data[i:i+1].values[0])/len(n)
    score.append(s)

data1 = pd.DataFrame(score, index = data.index, columns = ['综合得分'])
data1.index.name = '城市'
# 排序
data1['排序'] = data1.rank(ascending = False)
data1[:5]
# 保存为excel
data1.to_excel("F:\Desktop\综合得分.xlsx")

Python进行灰色关联度综合评价_第12张图片

你可能感兴趣的:(学习笔记,python,综合评价法)