學習隨筆 --python實現熵權法

來源:互聯網
上載者:User

標籤:方法   array   計算公式   imp   基本   分享圖片   odi   大小   url   

一、熵權法介紹

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

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

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

二、熵權法賦權步驟

1. 資料標準化

       將各個指標的資料進行標準化處理。

       假設給定了k個指標,其中。假設對各指標資料標準化後的值為,那麼。

2. 求各指標的資訊熵

       根據資訊理論中資訊熵的定義,一組資料的資訊熵。其中,如果,則定義。

3. 確定各指標權重

       根據資訊熵的計算公式,計算出各個指標的資訊熵為 。通過資訊熵計算各指標的權重: 。

#coding=utf-8import numpy as npli=[[100,90,100,84,90,100,100,100,100],    [100,100,78.6,100,90,100,100,100,100],    [75,100,85.7,100,90,100,100,100,100],    [100,100,78.6,100,90,100,94.4,100,100],    [100,90,100,100,100,90,100,100,80],    [100,100,100,100,90,100,100,85.7,100],    [100 ,100 ,78.6,    100 ,90 , 100, 55.6,    100, 100],    [87.5  ,  100 ,85.7 ,   100 ,100 ,100, 100 ,100 ,100],    [100 ,100, 92.9  ,  100 ,80 , 100 ,100 ,100 ,100],    [100,90 ,100 ,100, 100, 100, 100, 100, 100],    [100,100 ,92.9 ,   100, 90 , 100, 100 ,100 ,100]]li = np.array(li)#轉換為矩陣li=(li-li.min())/(li.max()-li.min())#最大最小標準化m, n = li.shape#m,n為矩陣行和列數k = 1 / np.log(m)yij = li.sum(axis=0)  # axis=0列相加 axis=1行相加pij = li / yijtest = pij * np.log(pij)test = np.nan_to_num(test)#將nan空值轉換為0ej = -k * (test.sum(axis=0))# 計算每種指標的資訊熵wi = (1 - ej) / np.sum(1 - ej)#計算每種指標的權重

  

學習隨筆 --python實現熵權法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.