20210222业务总结:熵值法+AHP层次分析打分代码

本文介绍如何使用熵值法和AHP层次分析法对业务中的多个对象进行打分,通过调整权重以兼顾数据客观性和主观需求。重点讲解了cal_Weight函数的实现,包括数据预处理、正负向指标处理、权重计算与调整过程,并给出了实际案例应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在业务中经常遇到需要对多个对象进行打分的任务,如何针对不同属性赋予权重是关键一步。为了既满足数据客观性又满足主管需求,一般通过熵值法结合AHP层次分析法(即专家打分法)赋予权重并进行评分。

主要方法是先根据熵值法计算一轮,需要给定正负向指标以及对象列。

在此基础上,允许对各层权重、独立权重进行调整,以符合实际需求。主要由函数cal_Weight实现。

代码如下:

import pandas as pd

class EmtropyMethod:
    def __init__(self, index, positive, negative, city):
        if len(index) != len(city):
            raise Exception('数据指标行数与行名称数不符')
        if sorted(index.columns) != sorted(positive + negative):
            raise Exception('正项指标加负向指标不等于数据指标的条目数')

        self.index = index.copy().astype('float64')
        self.positive = positive
        self.negative = negative
        self.city = city.copy()

    def uniform(self):
        uniform_mat = self.index.copy()
        min_index = {column: min(uniform_mat[column]) for column in uniform_mat.columns}
        max_index = {column: max(uniform_mat[column]) for column in uniform_mat.columns}
        for i in range(len(uniform_mat)):
            for column in uniform_mat.columns:
                if column in self.positive:
                    uniform_mat[column][i] = (uniform_mat[column][i] - min_index[column]) / (
                                m
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值