python熵權法求權重(熵權法Python)

本文目錄一覽:

求大神指導怎麼用軟件求熵權法權重

一、熵權法介紹

熵最先由申農引入信息論,目前已經在工程技術、社會經濟等領域得到了非常廣泛的應用。

熵權法的基本思路是根據指標變異性的大小來確定客觀權重。

一般來說,若某個指標的信息熵越小,表明指標值得變異程度越大,提供的信息量越多,在綜合評價中所能起到的作用也越大,其權重也就越大。相反,某個指標的信息熵越大,表明指標值得變異程度越小,提供的信息量也越少,在綜合評價中所起到的作用也越小,其權重也就越小。

二、熵權法賦權步驟

1. 數據標準化

將各個指標的數據進行標準化處理。

   

2. 求各指標的信息熵

3. 確定各指標權重

三、熵權法賦權實例

1. 背景介紹

某醫院為了提高自身的護理水平,對擁有的11個科室進行了考核,考核標準包括9項整體護理,並對護理水平較好的科室進行獎勵。下表是對各個科室指標考核後的評分結果。

但是由於各項護理的難易程度不同,因此需要對9項護理進行賦權,以便能夠更加合理的對各個科室的護理水平進行評價。

2. 熵權法進行賦權

1)數據標準化

根據原始評分表,對數據進行標準化後可以得到下列數據標準化表

2)求各指標的信息熵

根據信息熵的計算公式

,可以計算出9項護理指標各自的信息熵如下:

3)計算各指標的權重

3. 對各個科室進行評分

第一層權重用層次分析法,二級指標用熵權法怎麼做

1、二級指標用熵權法,首先將各個指標的數據進行標準化處理。

2、求各指標的信息熵。

3、確定各指標權重。

4、熵權法,就是根據已知評價對象指標的數值來確定每個指標所佔的權重。

5、必須要有數值才可以用熵權法,如果沒有數值是不可以用這種方法的

求python 熵值法實現代碼

一、基本原理

在信息論中,熵是對不確定性的一種度量。信息量越大,不確定性就越小,熵也就越小;信息量越小,不確定性越大,熵也越大。

根據熵的特性,可以通過計算熵值來判斷一個事件的隨機性及無序程度,也可以用熵值來判斷某個指標的離散程度,指標的離散程度越大,該指標對綜合評價的影響(權重)越大,其熵值越小。

二、熵值法步驟

1. 選取n個國家,m個指標,則為第i個國家的第j個指標的數值(i=1, 2…, n; j=1,2,…, m);

2. 指標的歸一化處理:異質指標同質化

由於各項指標的計量單位並不統一,因此在用它們計算綜合指標前,先要對它們進行標準化處理,即把指標的絕對值轉化為相對值,並令,從而解決各項不同質指標值的同質化問題。而且,由於正向指標和負向指標數值代表的含義不同(正向指標數值越高越好,負向指標數值越低越好),因此,對於高低指標我們用不同的算法進行數據標準化處理。其具體方法如下:

正向指標:

負向指標:

則為第i個國家的第j個指標的數值(i=1, 2…, n; j=1, 2,…, m)。為了方便起見,歸一化後的數據仍記為;

3. 計算第j項指標下第i個國家占該指標的比重:

4. 計算第j項指標的熵值:

其中. 滿足;

5. 計算信息熵冗餘度:

6. 計算各項指標的權值:

7. 計算各國家的綜合得分:

[code]function [s,w]=shang(x)

% 函數shang.m, 實現用熵值法求各指標(列)的權重及各數據行的得分

% x為原始數據矩陣, 一行代表一個國家, 每列對應一個指標

% s返回各行得分, w返回各列權重

[n,m]=size(x); % n=23個國家, m=5個指標

%% 數據的歸一化處理

% Matlab2010b,2011a,b版本都有bug,需如下處理. 其它版本直接用[X,ps]=mapminmax(x’,0,1);即可

[X,ps]=mapminmax(x’);

ps.ymin=0.002; % 歸一化後的最小值

ps.ymax=0.996; % 歸一化後的最大值

ps.yrange=ps.ymax-ps.ymin; % 歸一化後的極差,若不調整該值, 則逆運算會出錯

X=mapminmax(x’,ps);

% mapminmax(‘reverse’,xx,ps); % 反歸一化, 回到原數據

X=X’; % X為歸一化後的數據, 23行(國家), 5列(指標)

%% 計算第j個指標下,第i個記錄占該指標的比重p(i,j)

for i=1:n

for j=1:m

p(i,j)=X(i,j)/sum(X(:,j));

end

end

%% 計算第j個指標的熵值e(j)

k=1/log(n);

for j=1:m

e(j)=-k*sum(p(:,j).*log(p(:,j)));

end

d=ones(1,m)-e; % 計算信息熵冗餘度

w=d./sum(d); % 求權值w

s=w*p’; % 求綜合得分[\code]

測試程序:

data.txt 數據如下:

114.6 1.1 0.71 85.0 346

55.3 0.96 0.4 69.0 300

132.4 0.97 0.54 73.0 410

152.1 1.04 0.49 77.0 433

103.5 0.96 0.66 67.0 385

81.0 1.08 0.54 96.0 336

179.3 0.88 0.59 89.0 446

29.8 0.83 0.49 120.0 289

92.7 1.15 0.44 154.0 300

248.6 0.79 0.5 147.0 483

115.0 0.74 0.65 252.0 453

64.9 0.59 0.5 167.0 402

163.6 0.85 0.58 220.0 495

95.7 1.02 0.48 160.0 384

139.5 0.70 0.59 217.0 478

89.9 0.96 0.39 105.0 314

76.7 0.95 0.51 162.0 341

121.8 0.83 0.60 140.0 401

42.1 1.08 0.47 110.0 326

78.5 0.89 0.44 94.0 280

77.8 1.19 0.57 91.0 364

90.0 0.95 0.43 89.0 301

100.6 0.82 0.59 83.0 456

執行代碼:

[code]x=load(‘data.txt’); % 讀入數據

[s,w]=shang(x)[\code]

運行結果:

s =

Columns 1 through 9

0.0431 0.0103 0.0371 0.0404 0.0369 0.0322 0.0507 0.0229 0.0397

Columns 10 through 18

0.0693 0.0878 0.0466 0.0860 0.0503 0.0800 0.0234 0.0456 0.0536

Columns 19 through 23

0.0272 0.0181 0.0364 0.0202 0.0420

w =

0.1660 0.0981 0.1757 0.3348 0.2254

求權重的方法

求權重的方法如下:

1、第一類為因子分析和主成分法;此類方法利用了數據的信息濃縮原理,利用方差解釋率進行權重計算。

2、第二類為AHP層次法和優序圖法;此類方法利用數字的相對大小信息進行權重計算。

3、第三類為熵值法(熵權法);此類方法利用數據熵值信息即信息量大小進行權重計算。

4、第四類為CRITIC、獨立性權重和信息量權重;此類方法主要是利用數據的波動性或者數據之間的相關關係情況進行權重計算。

計算權重時,因子分析法和主成分法均可計算權重,而且利用的原理完全一模一樣,都是利用信息濃縮的思想。因子分析法和主成分法的區別在於,因子分析法加帶了‘旋轉’的功能,而主成分法目的更多是濃縮信息。

‘旋轉’功能可以讓因子更具有解釋意義,如果希望提取出的因子具有可解釋性,一般使用因子分析法更多;並非說主成分出來的結果就完全沒有可解釋性,只是有時候其解釋性相對較差而已,但其計算更快,因而受到廣泛的應用。

計算權重的第二類方法原理是利用數字相對大小,數字越大其權重會相對越高。此類原理的代表性方法為AHP層次法和優序圖法。

請問用熵權法計算指標權重,定性指標如何處理,能舉例說明一下嗎?謝謝!

熵權法的思想是通過計算各指標值與其均值差異程度來計算權重的,定性指標在經過量化後,也可以應用熵權法進行計算,應該注意的是,熵權法通過數據來計算權重,沒有考慮指標本身的重要程度,計算得到的權重可解釋性較差,最好與主觀權重計算相結合,進行綜合評價

原創文章,作者:GYZ7K,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130492.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GYZ7K的頭像GYZ7K
上一篇 2024-10-03 23:28
下一篇 2024-10-03 23:28

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論