国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【建模算法】層次分析法(Python實(shí)現(xiàn))

這篇具有很好參考價(jià)值的文章主要介紹了【建模算法】層次分析法(Python實(shí)現(xiàn))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【建模算法】層次分析法(Python實(shí)現(xiàn))

01 算法用途

在很多情況下,我們對(duì)事物評(píng)價(jià),應(yīng)該要多維度評(píng)價(jià)。多維度評(píng)價(jià)之后我們要如何把它們合并成一個(gè)指標(biāo)用于比較事物的好壞呢,這時(shí)候需要對(duì)各個(gè)指標(biāo)賦權(quán), 層次分析法就是用來賦權(quán)重的了。
這個(gè)方法主觀性比較強(qiáng),在數(shù)據(jù)集比較小,實(shí)在不好比較的時(shí)候可以用這個(gè)方法,如果有別的選擇還是盡量不要用這個(gè)算法比較好。可以看下以往建模獲獎(jiǎng)?wù)撐?,此算法的出現(xiàn)頻率還是挺高的,所以存在即有它存在的道理。

02 建模案例

小美要選男朋友了,現(xiàn)有小明、小李兩個(gè)人選,到底該選誰呢?現(xiàn)在小美要從四個(gè)指標(biāo)去選擇,分別是身高、顏值、學(xué)歷、性格。小美對(duì)他們各個(gè)指標(biāo)的評(píng)分如下:

層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣

這也太難抉擇了吧??!

03 原理解析

step1:小美查閱圖書資料,選擇依據(jù)如下:
層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣
step2:小美開始構(gòu)造判斷矩陣

小美的主觀判斷:

1.身高與顏值相比,身高稍重要

2.身高與學(xué)歷相比,同樣重要

3.身高和性格相比,性格稍重要

4.顏值和學(xué)歷相比,學(xué)歷介于相同重要和稍微重要之間

5.顏值和性格相比,性格明顯重要

6.性格和學(xué)歷相比,性格稍重

身高 顏值 學(xué)歷 性格
身高 1 3 1 1/3
顏值 1/3 1 1/2 1/5
學(xué)歷 1 2 1 1/3
性格 3 5 3 1

小美終于得到了判斷矩陣。
層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣

step3:翻閱圖書,小美找到檢驗(yàn)標(biāo)準(zhǔn)

對(duì)判斷矩陣的一致性檢驗(yàn)的步驟如下:

  • 計(jì)算一致性指標(biāo)CI
    層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣
    查找相應(yīng)的平均隨機(jī)一致性指標(biāo)RI,對(duì)n=1,…,9,Satty給出了RI的值如下表所示:

層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣

RI是通過隨機(jī)方法構(gòu)造500個(gè)樣本矩陣,隨機(jī)地從1~9及其例數(shù)中抽取數(shù)字構(gòu)造正反矩陣,求最大特征根的平均值 λ m a x \lambda_{max} λmax?并定義
R I = λ m a x ? n n ? 1 RI=\frac{\lambda_{max}-n}{n-1} RI=n?1λmax??n?

  • 計(jì)算一致性比例CR
    C R = C I R I CR=\frac{CI}{RI} CR=RICI?
    當(dāng) CR<0.10時(shí),一致性接受,否則該矩陣應(yīng)該適當(dāng)修改參數(shù)

step4 :計(jì)算權(quán)重以及得分

  • 得到最大特征值對(duì)應(yīng)特征向量

T = [ t 1 t 2 . . . t n ] T=[t_1\quad t_2\quad ...\quad t_n] T=[t1?t2?...tn?]

  • 得到權(quán)重向量

W = [ w 1 w 2 . . . w n ] w i = t i ∑ i = 1 n t i W=[w_1\quad w_2\quad ... \quad w_n]\\ w_i=\frac{t_i}{\displaystyle \sum^n_{i=1}t_i} W=[w1?w2?...wn?]wi?=i=1n?ti?ti??

  • 小美對(duì)男嘉賓的評(píng)分為P,最后得分S

S = P × W S=P\times W S=P×W

真相大白,小明是最佳選擇~得分如下
層次分析法python代碼,數(shù)學(xué)建模,算法,python,矩陣文章來源地址http://www.zghlxwxcb.cn/news/detail-814084.html

Python源碼

#層次分析法完整代碼:
import numpy as np

#計(jì)算特征向量和最大特征值
a=np.array([[1,3,1,1/3],[1/3,1,1/2,1/5],[1,2,1,1/3],[3,5,3,1]])   #a為自己構(gòu)造的輸入判別矩陣
w=np.linalg.eig(a)   #np.linalg.eig(matri)返回特征值和特征向量
tzz=np.max(w[0])   #最大特征值
t=np.argwhere(w[0]==tzz) #尋找最大特征值所在的行和列
tzx=w[1][::-1,t[0]]    #最大特征值對(duì)應(yīng)的特征向量

#一致性檢驗(yàn)
RILIST=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59]
n=a.shape[0]
RI=RILIST[n]
CI=(tzz-n)/(n-1)
CR=CI/RI
print(CR)
print("通過一致性檢驗(yàn)") if CR<0.1 else print("沒有通過一致性檢驗(yàn)")

P=np.array([[8,7,6,8],[7,8,8,7]])  #每一行代表一個(gè)對(duì)象的指標(biāo)評(píng)分
#賦權(quán)重
quan=np.zeros((n,1));
quan=tzx/sum(tzx)
Q=quan

#顯示出所有評(píng)分對(duì)象的評(píng)分值
score=np.dot(P,Q)    #矩陣乘法
for i in range(len(score)):
    print('對(duì)象{:}得分={:}'.format(i+1,score[i,0].real))

到了這里,關(guān)于【建模算法】層次分析法(Python實(shí)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包