日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

CRITIC法之python

發布時間:2025/3/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CRITIC法之python 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.簡介

2.原理解析

2.1 指標正向化及標準化

2.2?計算信息承載量

2.3?計算權重和評分

3.實例分析

3.1 讀取數據

3.2 指標正向化及標準化

3.3 計算對比度

3.4?矛盾性

3.5 計算信息載量

3.6 計算權重?

3.7 計算得分

完整代碼?


1.簡介

????????CRITIC是Diakoulaki(1995)提出一種評價指標客觀賦權方法。該方法在對指標進行權重計算時圍繞兩個方面進行:對比度和矛盾(沖突)性。

????????它的基本思路是確定指標的客觀權數以兩個基本概念為基礎。一是對比度,它表示同一指標各個評價方案取值差距的大小,以標準差的形式來表現,即標準化差的大小表明了在同一指標內各方案的取值差距的大小,標準差越大各方案的取值差距越大。二是評價指標之間的沖突性,指標之間的沖突性是以指標之間的相關性為基礎,如兩個指標之間具有較強的正相關,說明兩個指標沖突性較低。

2.原理解析

2.1 指標正向化及標準化

????????設有m個待評對象,n個評價指標,可以構成數據矩陣X=(xij)m*n,設數據矩陣內元素,經過指標正向化處理過后的元素為xij'

  • 若xj為負向指標(越小越優型指標)

  • 若xj為正向指標(越大越優型指標)

2.2?計算信息承載量

  • 對比性

用標準差表示第j?項指標的對比性

  • 矛盾性

矛盾性反映的是不同指標之間的相關程度,若呈現顯著正相關性,則矛盾性數值越小。設指標𝑗與其余指標矛盾性大小為fj

??rij表示指標i?與指標j?之間的相關系數,在此使用的是皮爾遜相關系數,此為線性相關系數。

  • 信息承載量

? ?設指標𝑗與信息承載量為Cj

2.3?計算權重和評分

計算權重

信息承載量越大可認為權重越大

計算得分

3.實例分析

銀行資產收益率費用利潤率逾期貸款率資產使用自有資本率
中信0.48313.268204.36465.107
光大0.403513.490939.01313.61515.5005
浦發0.897925.77769.05134.8927.5342
招商0.592716.024513.29354.45296.5913

3.1 讀取數據

#導入數據 data=pd.read_excel('D:\桌面\CRITIC.xlsx') print(data)

返回:

去掉變量名和序號:

label_need=data.keys()[1:] data1=data[label_need].values print(data1)

返回:

3.2 指標正向化及標準化

查看行數和列數:

data2 = data1 [m,n]=data2.shape print(m,n)

返回:

?

本實例中逾期貸款率為負向指標數據

因此負向指標標準化

#負向指標標準化 index=[2] #負向指標位置,注意python是從0開始計數,對應位置也要相應減1 for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(d_max-data1[:,j])/(d_max-d_min) print(data2)

返回:

在對剩余數據進行正向指標標準化

# 正向指標標準化 #正向指標位置 index_all=np.arange(n) index=np.delete(index_all,index) for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min) print(data2)

返回:

3.3 計算對比度

#對比性 the=np.std(data2,axis=0) print(the)

返回:

3.4?矛盾性

#矛盾性 data3=list(map(list,zip(*data2))) #矩陣轉置 r=np.corrcoef(data3) #求皮爾遜相關系數 f=np.sum(1-r,axis=1) print(f)

返回:

3.5 計算信息載量

#信息承載量 c=the*f print(c)

返回:

3.6 計算權重?

#計算權重 w=c/sum(c) print(w)

返回:

3.7 計算得分

#計算得分 s=np.dot(data2,w) Score=100*s/max(s) for i in range(0,len(Score)):print(f"{data['銀行'][i]}銀行百分制評分為:{Score[i]}")

返回:

完整代碼?

#完整代碼 #導入相關庫 import pandas as pd import numpy as np #導入數據 data=pd.read_excel('D:\桌面\CRITIC.xlsx') label_need=data.keys()[1:] data1=data[label_need].values #查看行數和列數 data2 = data1 [m,n]=data2.shape #負向指標標準化 index=[2] #負向指標位置,注意python是從0開始計數,對應位置也要相應減1 for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(d_max-data1[:,j])/(d_max-d_min) # 正向指標標準化 #正向指標位置 index_all=np.arange(n) index=np.delete(index_all,index) for j in index:d_max=max(data1[:,j])d_min=min(data1[:,j])data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min) #對比性 the=np.std(data2,axis=0) #矛盾性 data3=list(map(list,zip(*data2))) #矩陣轉置 r=np.corrcoef(data3) #求皮爾遜相關系數 f=np.sum(1-r,axis=1) #信息承載量 c=the*f #計算權重 w=c/sum(c) #計算得分 s=np.dot(data2,w) Score=100*s/max(s) for i in range(0,len(Score)):print(f"{data['銀行'][i]}銀行百分制評分為:{Score[i]}")

總結

以上是生活随笔為你收集整理的CRITIC法之python的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。