因为项目需要,要用分数的形式评价用户对某个产品的喜好程度,其中的指标权重确定用熵值法计算。在网上搜集了些资料,再自己捣腾了一下分别用Excel和Python的方法来实现。
目录
一、熵值法介绍
熵值法是计算指标权重的经典算法之一,它是指用来判断某个指标的离散程度的数学方法。离散程度越大,即信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响越大。
二、计算步骤
1.数据标准化
数据为m*n的矩阵,其中n为特征数,m为记录数
按列标准化
2.计算第j项指标下第i个记录所占比重
3.计算第j项指标的熵值
4.计算第j项指标的差异系数
5.计算第j项指标的权重
三、Python实现
import pandas as pd
import numpy as np
from numpy import array
# 读取数据
doctor = pd.read_csv(r'D:\WorkSpace\PythonWork\Python学习\数据挖掘Baseline\熵权法实例.csv')
index = doctor['科室']
doctor = doctor.drop(['科室'],axis = 1)
#定义熵值法函数
def cal_weight(x):
'''熵值法计算变量的权重