您的位置 首页 > 数码极客

python加权平均数如何计算 加权平均数如何计算?

缘起

作为老师,我常常反问自己,能否找出一种方法,不用把学生考试成绩做加总,用总分来排名,作为判断学生素质某些方面优劣的依据。这个问题一直困扰着我,带着这样的思考,这几天寒假,稍微能闲点,在网上查了相关资料,找到了一种方法叫“熵权法”。为解开自己工作中的困惑,便用python实现了“熵权法加权排序问题”。

实验过程表明,“熵权法”,算法本身完全脱离了人为干预,是一种基于指标数据本身的计算方法,指标权重的计算完全依赖于指标值本身。很显然,它是一种不掺杂任何人为因素的客观计算方法,在一定程度上是可靠和公允的。

熵权法

熵最先由申农引入信息论。

熵权法的基本思路是根据指标变异性的大小来确定客观权重。

一般来说,若某个指标的信息熵越小,表明指标值变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。相反,某个指标的信息熵越大,表明指标值变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。

我们可以按照这个思路来确定指标的权重,有了权重后,就可以计算出“加权平均数”了。

算法

python实现算法

import pandas as pd import numpy as np import math from numpy import array = '{:.4f}'.format df = ('1822学生成绩单.xlsx',index_col='姓名')

数据标准化处理

from import MinMaxScaler scaler = MinMaxScaler() (df) df_scaler_minmax = (df)

计算pij

rows,cols = d # 预留变量空间 pij = [[None] * cols for i in range(rows)] pij = array(pij) for col in range(cols): for row in range(rows): if df_scaler_minmax[row,col]==0: pij[row,col]=0 else: pij[row,col]=df_scaler_minmax[row,col]/df_scaler_minmax[:,col].sum()

计算Ej

n = df.index.size k = 1(n) e = [[None] * cols for i in range(rows)] e = np.array(e) for col in range(cols): for row in range(rows): if pij[row,col] == 0: e[row,col] = 0 else: e[row,col] = pij[row,col]* ma(pij[row,col]) Ej = (axis=0))*(-k))

结果:

array([0.9907397387693839,0.9850462767390424, 0.968126473198737, 0.9695477475275485, 0.9908377620808706], dtype=object)

计算权重

Wj = (1-Ej)/ (cols- Ej.sum()) Wj = np.reshape(Wj,(1,Wj.size))

计算标准化综合加权分

score = np.do) s = (score,index = df.index, columns=['标准化加权综合分'])

结果排序

result = s.sort_values(by='标准化加权综合分', axis=0, ascending=False) result['标准化加权综合分排名'] = range(1, len(result) + 1) final = (axis=1), columns=['原始平均分']).sort_values(by='原始平均分',ascending=False) final['原始平均分排名'] = range(1,) [0,1] = 1 for i in range(1,): if [i,0] == [i-1,0]: [i,1] = [i-1,1] else: [i,1] = [i-1,1]+1 f = (result) f.sort_values(by='原始平均分',ascending=False)

结语

显然,用简单算数平均分排序与权熵法加权综合分排序结果有一定程度的差异。简单算数平均分实质是每个指标的权重是一样的加权算数平均数,没有考虑指标的重要性程度,而“权熵法”则是通过指标数据本身相对大小关系,计算确定权重,然后计算的加权算数平均分,它不考虑人的主管判断,却考虑了指标的重要性程度。

当然,每种方法都有自身的优缺点,权熵法也不例外。例如,它没有考虑和体现管理者的意志,这是该方法无法克服的。

在此 发文仅仅作为一种思路,供大家参考。

如果能在管理中加以适当应用,改善科学管理实效,也算是学以致用了。

有兴趣的,不妨试一试!

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“python加权平均数如何计算,加权平均数如何计算?,加权平均数如何快速计算,2.如何计算加权平均数?”边界阅读