【建模算法】熵权法(Python实现)

【建模算法】熵权法(Python实现)

熵权法是通过寻找数据本身的规律来赋权重的一种方法。

熵是热力学单位,在数学中,信息熵表示事件所包含的信息量的期望。根据定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其熵值越小,指标的离散程度越大,该指标对综合评价的影响(权重)越大。

熵本源于热力学,后由申农(C. E. Shannon)引入信息论,根据熵的定义与原理,当系统可能处于几种不同状态,每种状态出现的概率为【建模算法】熵权法(Python实现),则该系统的熵就可定义
【建模算法】熵权法(Python实现)
熵权法是一种客观赋权方法。在具体使用过程中,熵权法根据各指标的变异程度,利用信息熵计算出各指标的熵权,从而得出较为客观的指标权重。

一、问题描述

请根据下表给出的10个学生8门课的成绩,给出这10个学生评奖学金的评分排序。

表1:学生成绩表

二、熵权法的评价步骤

设有【建模算法】熵权法(Python实现)个评价对象,【建模算法】熵权法(Python实现)个评价指标变量,第【建模算法】熵权法(Python实现)个评价对象关于第【建模算法】熵权法(Python实现)个指标变量的取值为【建模算法】熵权法(Python实现),构造数据矩阵【建模算法】熵权法(Python实现)

基于熵权法的评价方法步骤如下:

(1)利用原始数据矩阵【建模算法】熵权法(Python实现)计算【建模算法】熵权法(Python实现),即第【建模算法】熵权法(Python实现)个评价对象关于第【建模算法】熵权法(Python实现)个指标值的比重
【建模算法】熵权法(Python实现)
(2)计算第【建模算法】熵权法(Python实现)项指标的熵值
【建模算法】熵权法(Python实现)
(3)计算第【建模算法】熵权法(Python实现)项指标的变异系数
【建模算法】熵权法(Python实现)
对于第【建模算法】熵权法(Python实现)项指标,【建模算法】熵权法(Python实现)越大,指标值的变异程度就越小。

(4)计算第【建模算法】熵权法(Python实现)项指标的权重
【建模算法】熵权法(Python实现)
(5)计算第【建模算法】熵权法(Python实现)个评价对象的综合评价值
【建模算法】熵权法(Python实现)
评价值越大越好。

三、求解结果

指标变量【建模算法】熵权法(Python实现)分别表示学生的语文、数学、物理、化学、英语、政治、生物、历史成绩。用【建模算法】熵权法(Python实现)表示第【建模算法】熵权法(Python实现)个学生关于指标变量【建模算法】熵权法(Python实现)的取值,构造数据矩阵【建模算法】熵权法(Python实现)
利用Python程序,求得的各指标变量的权重值见表2,各个学生的综合评价值及排名次序见表3。各个学生评价值从高到低的次序为:
9 1 3 7 6 5 4 10 8 2.

表2:各指标的评价权重

#完整代码:
import numpy as np
import pandas as pd

data = pd.read_excel('stu_data.xlsx')  #读取原始数据
label_need=data.keys()[1:]
df=data[label_need]
a=np.array(df)
[n, m]=a.shape
cs=a.sum(axis=0)  #逐列求和
P=1/cs*a   #求特征比重矩阵
e=-(P*np.log(P)).sum(axis=0)/np.log(n)  #计算熵值
g=1-e   #计算差异系数
w = g / sum(g)  #计算权重
F = P @ w       #计算各对象的评价值
print("\nP={}\ne={}\ng={}\nw={}\nF={}".format(P,e,g,w,F))
print('各个学生评价值从高到低的次序为:')
print(np.argsort(-F)+1)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年5月24日
下一篇 2023年5月24日

相关推荐