生活随笔
收集整理的這篇文章主要介紹了
Python: 模糊综合评价法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@TOC在這里插入代碼片
Python: 模糊綜合評價法
去博客設置頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.
#模糊綜合評價,計算模糊矩陣和指標權重
import xlrd
data
=xlrd
.open_workbook(r
'F:\hufengling\離線數據(更新)\3.xlsx')
# table1
= data
.sheets()[0] #通過索引順序獲取
# table1
= data
.sheet_by_index(sheet_indx
)) #通過索引順序獲取
table2
= data
.sheet_by_name('4day')#通過名稱獲取
# rows
= table2
.row_values(3) # 獲取第四行內容
cols1
= table2
.col_values(0) # 獲取第
1列內容,評價指標
1
cols2
= table2
.col_values(1) #評價指標
2
nrow
=table2
.nrows #獲取總行數
print(nrow
)
#分為四個等級,優、良、中、差,兩個評價指標
u1
=0;u2
=0;u3
=0;u4
=0 #用于計算每個等級下的個數,指標
1
t1
=0;t2
=0;t3
=0;t4
=0 #指標
2
for i
in range(nrow
):if cols1
[i
]<=0.018:u1
+=1elif cols1
[i
]<=0.028:u2
+=1elif cols1
[i
]<=0.038:u3
+=1else: u4
+=1
print(u1
,u2
,u3
,u4
)
#每個等級下的概率
pu1
=u1
/nrow
;pu2
=u2
/nrow
;pu3
=u3
/nrow
;pu4
=u4
/nrow
print(pu1
,pu2
,pu3
,pu4
)
du
=[pu1
,pu2
,pu3
,pu4
]
for i
in range(nrow
):if cols2
[i
]<=1:t1
+=1elif cols2
[i
]<=2:t2
+=1elif cols2
[i
]<=3:t3
+=1else: t4
+=1
print(t1
,t2
,t3
,t4
)
pt1
=t1
/nrow
;pt2
=t2
/nrow
;pt3
=t3
/nrow
;pt4
=t4
/nrow
print(pt1
,pt2
,pt3
,pt4
)
dt
=[pt1
,pt2
,pt3
,pt4
]#熵權法定義指標權重
def
weight(du
,dt
):import mathk
=-1/math
.log(4)sumpu
=0;sumpt
=0;su
=0;st
=0for i
in range(4):if du
[i
]==0:su
=0else:su
=du
[i
]*math
.log(du
[i
])sumpu
+=su
if dt
[i
]==0:st
=0else:st
=dt
[i
]*math
.log(dt
[i
])sumpt
+=st
E1=k
*sumpu
;E2=k
*sumpt
E=E1+E2w1
=(1-E1)/(2-E);w2
=(1-E2)/(2-E)return w1
,w2
def
score(du
,dt
,w1
,w2
):eachS
=[]for i
in range(4):eachS
.append(du
[i
]*w1
+dt
[i
]*w2
)return eachS
w1
,w2
=weight(du
,dt
)
S=score(du
,dt
,w1
,w2
)
#
S中含有四個值,分別對應四個等級,取其中最大的值對應的等級即是最后的評價結果
print(w1
,w2
)
print(S)
總結
以上是生活随笔為你收集整理的Python: 模糊综合评价法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。