python 实现 熵值法 确定指标权重
生活随笔
收集整理的這篇文章主要介紹了
python 实现 熵值法 确定指标权重
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
步驟:
設指標共p個,評價對象共g個,則構成評價值(得分)矩陣如下:
xj(i)表示評價對象j在指標i上的評價值,j=1,2,...,g i=1,2,...,p
指標i對應的熵值為ei的計算公式如下:
根據熵值來計算指標i的權重wi,計算公式如下:
?
?程序:
(4個指標,3個評價對象)
import mathclass entropyMethod:def __init__(self, array):self.array = arraydef getEntropy(self):entropy_list = []for j in range(len(self.array[0])):list1 = []for i in range(len(self.array)):x1 = self.array[i][j] * math.log(self.array[i][j])list1.append(x1)entropy = (-sum(list1)) / math.log(len(self.array))entropy_list.append(entropy)return entropy_listdef getWeight(self):weight_list = []entropy_list = self.getEntropy()entropyReciprocal_list = []for entropy in entropy_list:entropyReciprocal_list.append(1/entropy)for entropy in entropy_list:weight = (1 / entropy) / sum(entropyReciprocal_list)weight_list.append(weight)return weight_list if __name__ == '__main__':matrix = [[90,95,94,85],[86,58,72,91],[88,15,95,92],]entropy_list = entropyMethod(matrix).getEntropy()weight_list = entropyMethod(matrix).getWeight()for weight_list in weight_list:print(weight_list)結果:
????????結果和熵值法基本思想一致,即離散程度越大的指標,其權重應越大。程序的舉的例子中矩陣第2列(即第2個指標的離散程度最大),可以發現該指標的權重結果也越大,結果約0.358?
總結
以上是生活随笔為你收集整理的python 实现 熵值法 确定指标权重的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android拦截浏览器广告,浏览器拦截
- 下一篇: 一个迅速崛起的国产开源OCR项目!