好的匀归,今天繼續(xù)研究評價類模型的相關(guān)算法坑资。實不相瞞,雖然我才寫到第二個算法朋譬,但是已經(jīng)聽了幾十節(jié)課了盐茎,清風(fēng)老師的課程確實蠻不錯的,實用性比較強(qiáng)徙赢。相關(guān)的模型字柠、算法基本上越往后越難,所以珍惜現(xiàn)在比較容易理解的評價類模型吧hhh狡赐。
在這里要說明一下窑业,小白本白只是一個即將大三的本科生,目前比較容易理解的模型我還能寫得完整一些枕屉。之后很多模型會涉及較為復(fù)雜的數(shù)學(xué)推導(dǎo)常柄,我可能很難完整地從原理去描述了,只能著重于實際應(yīng)用方面搀擂。請各位諒解啦西潘。
ok,我們繼續(xù)學(xué)習(xí)評價類模型算法哨颂。
(注:以下案例均來自我所聽的網(wǎng)課)
回顧
上一篇文章我們介紹了一個簡單又實用的評價打分方法——層次分析法喷市。同時我們也提到了,層次分析法有一些缺陷之處威恼。首先就是主觀性較強(qiáng)品姓,層次分析法往往是專家用來打分的方法寝并,但建模比賽中沒有專家,判斷矩陣只能我們自己填腹备;其次衬潦,當(dāng)指標(biāo)或者方案層數(shù)量較多時,我們兩兩比較得出的判斷矩陣和一致矩陣可能會出現(xiàn)較大的差異(想一想你的心理預(yù)期植酥,有多符合那個乘法關(guān)系)镀岛,判斷矩陣的填寫也會比較麻煩(例如要問次問題);再者惧互,層次分析法往往用于沒有相關(guān)數(shù)據(jù)的問題哎媚,我們的打分也是按照判斷矩陣給出的,如果已經(jīng)有了數(shù)據(jù)喊儡,再主觀打分就不太合適了拨与。
看看這個題目
給出二十條河流的水質(zhì)指標(biāo)及具體數(shù)據(jù),請建立合適的模型艾猜,給這些河流的水質(zhì)從高到低排排序买喧。嗯,現(xiàn)在再用層次分析法匆赃,是不是就不太合適了……
TOPSIS算法
TOPSIS算法是解決上述問題的一個比較合適的算法淤毛,其全稱是,通俗的翻譯則是“優(yōu)劣解距離法”算柳。這個翻譯可以說是指向了此算法的本質(zhì)低淡,我們接下來慢慢談。
我們依然從一個簡單的問題入手瞬项。小明同學(xué)考上南大之后蔗蹋,不知不覺就迎來了第一次高數(shù)考試,他及其舍友的分?jǐn)?shù)如下囱淋。
現(xiàn)在我們要根據(jù)他們的成績猪杭,給他們進(jìn)行打分,要求分?jǐn)?shù)可以合理地表達(dá)其成績的高低妥衣。hhh可能會有人覺得這個問題比較奇怪皂吮,成績本身就可以作為所謂的分?jǐn)?shù)了,實在不行我們還有GPA税手,怎么還要打分蜂筹?因為這只是一個例子,事實上在許多實際問題中芦倒,我們只有數(shù)據(jù)狂票,例如上面水質(zhì)問題的含氧量,PH值熙暴,并沒有這樣一個分?jǐn)?shù)闺属。再者,實際問題中有很多的指標(biāo)周霉,其量綱經(jīng)常不同掂器,但我們需要通過這些數(shù)據(jù)得出一個綜合的分?jǐn)?shù)。因此我們很有必要對數(shù)據(jù)進(jìn)行一定的處理俱箱,同時找到一個綜合打分的方法国瓮。
所以我們有一個很直接的想法,就是對分?jǐn)?shù)進(jìn)行歸一化處理狞谱,例如清風(fēng)的最后得分就是乃摹。嗯,這個想法很合理跟衅。即一個人的成績占總成績的比重孵睬,就可以作為這個人在總體中的得分。但是注意了伶跷,這里只有一個指標(biāo)掰读,所以我們可以直接用這個得分作為排序標(biāo)準(zhǔn)。如果還有一些指標(biāo)叭莫,同樣進(jìn)行類似的操作蹈集,實際上就相當(dāng)于我們對數(shù)據(jù)進(jìn)行了處理,消去了量綱的影響罷了雇初。結(jié)果就是拢肆,一番操作過后,留給我們的仍然是一個得分表格靖诗,只不過里面是已經(jīng)被處理過的數(shù)據(jù)郭怪,但還是沒能給出排名。
這里提出一個小問題呻畸,我們把PH值作為衡量水質(zhì)的一個標(biāo)準(zhǔn)移盆,其范圍是0~14,PH=7時最好伤为,所以PH=7時相關(guān)指標(biāo)得分應(yīng)該最高咒循。這時候就不能像成績那樣,直接求和算比重了吧绞愚,那應(yīng)該怎么處理呢叙甸?
ok,我們繼續(xù)位衩。上述的操作只是對數(shù)據(jù)進(jìn)行了處理裆蒸,我們還是需要一個打分的標(biāo)準(zhǔn)。有同學(xué)就會想到糖驴,賦權(quán)僚祷,然后打分佛致。這就回到了我們層次分析法的內(nèi)容。還是那些問題辙谜,主觀性比較強(qiáng)俺榆,指標(biāo)太多時操作起來不準(zhǔn)確且麻煩,對數(shù)據(jù)的利用不充分等等装哆。
這里就可以引入TOPSIS的想法了罐脊。事實上我們的目的是對方案給出一個排序,只要數(shù)據(jù)有了蜕琴,我們就可以根據(jù)這些數(shù)據(jù)萍桌,構(gòu)造出一個所有方案組成的系統(tǒng)中的理想最優(yōu)解和最劣解(我感覺最劣解和理想不搭,就直接用最劣解稱呼吧)凌简。而TOPSIS的想法就是上炎,我們通過一定的計算,評價系統(tǒng)中任何一個方案距離理想最優(yōu)解和最劣解的綜合距離号醉。如果一個方案距離理想最優(yōu)解越近反症,距離最劣解越遠(yuǎn),我們就有理由認(rèn)為這個方案更好畔派。那理想最優(yōu)解和最劣解又是什么呢铅碍?很簡單,理想最優(yōu)解就是該理想最優(yōu)方案的各指標(biāo)值都取到系統(tǒng)中評價指標(biāo)的最優(yōu)值线椰,最劣解就是該理想最劣方案的各指標(biāo)值都取到系統(tǒng)中評價指標(biāo)的最劣值胞谈。這么說可能不是很清楚,舉個例子憨愉。
如果我們只有一個指標(biāo)烦绳,例如上圖中的成績,那么理想最優(yōu)解就是99分配紫,注意径密,不是滿分100分,理想最優(yōu)解中的數(shù)據(jù)都是各方案中的數(shù)據(jù)躺孝,而不要選擇方案中沒有的數(shù)據(jù)享扔。不然如果是GDP這種上不封頂?shù)闹笜?biāo),理想最優(yōu)取值豈不是正無窮了……同理植袍,該系統(tǒng)中的最劣解是60惧眠。
那如果有兩個指標(biāo)呢?例如我們引入一個“與他人爭吵的次數(shù)”于个,用來衡量情商氛魁,給出相應(yīng)的數(shù)據(jù)表格。
按照我們的一般想法,與他人爭吵的次數(shù)應(yīng)該是越小越好秀存,所以我們可以用向量表達(dá)這個系統(tǒng)中的理想最優(yōu)解捶码,也就是,取清風(fēng)的成績和小王的爭吵次數(shù)或链,最劣解就是宙项,取小王的成績和清風(fēng)的爭吵次數(shù)。
現(xiàn)在我們知道了如何取得理想最優(yōu)解和最劣解株扛,那如何衡量某一個方案與理想最優(yōu)解和最劣解的綜合距離呢?TOPSIS用下面一個表達(dá)式進(jìn)行衡量:汇荐《淳停可以發(fā)現(xiàn),如果方案取到了理想最優(yōu)解掀淘,其表達(dá)式取值為1旬蟋;如果方案取到了理想最劣解,其表達(dá)式取值為0革娄。我們便可以用這個表達(dá)式來衡量系統(tǒng)中某一個方案距離理想最優(yōu)解和最劣解的綜合距離倾贰,也直接用它給方案進(jìn)行打分。
相信到這里大家對于TOPSIS的基本思想已經(jīng)差不多理解了拦惋,之后就是實際操作的問題了匆浙。我們都知道,“方案 - 最劣解”這種東西只是方便理解厕妖,確實也是我編出來的首尼,實際中方案根本不能做差。所以我們只能用數(shù)據(jù)來求出這么一個距離言秸。對于某一個指標(biāo)的數(shù)據(jù)软能,我們可以用來衡量綜合距離。如果只有成績這一個指標(biāo)举畸,其計算很簡單查排,例如清風(fēng)的得分就是,其余人的成績可以依次給出抄沮。對于“爭吵次數(shù)”這個指標(biāo)跋核,清風(fēng)的得分可以是,雖然也能計算合是,但其分母是個負(fù)值了罪,還是不太習(xí)慣。那如果對于PH值聪全,7是最優(yōu)解泊藕,0和14哪一個看成最劣解用于計算呢?亦或者如果某個指標(biāo)處在10~20之間最佳,那最優(yōu)解最劣解又如何衡量呢娃圆?這便是我們遇到的問題玫锋。除此之外,由于數(shù)據(jù)的量綱不同讼呢,在實際的計算過程中也會出現(xiàn)這樣或者那樣的問題撩鹿,因此我們也有必要對于原數(shù)據(jù)進(jìn)行相關(guān)的處理。
首先悦屏,我們解決第一個問題节沦,有些指標(biāo)的數(shù)據(jù)越大越好,有些則是越小越好础爬,有些又是中間某個值或者某段區(qū)間最好甫贯。我們可以對其進(jìn)行“正向化處理”,使指標(biāo)都可以像考試分?jǐn)?shù)那樣看蚜,越大越好叫搁。
我們可以把指標(biāo)分為四類,如下表所示供炎。
所謂的正向化處理渴逻,就是將上述的四種指標(biāo)數(shù)據(jù)進(jìn)行處理,將其全部轉(zhuǎn)化為極大型指標(biāo)數(shù)據(jù)音诫,這樣我們計算時問題就少一點惨奕,碼代碼時也更加統(tǒng)一。
對于極小型指標(biāo)纽竣,例如費用墓贿,爭吵次數(shù),我們可以用將其轉(zhuǎn)化為極大型蜓氨,如果所有元素都為正數(shù)聋袋,也可以使用。示例如下穴吹。
對于中間型指標(biāo)幽勒,如果其最佳數(shù)值是,我們可以取港令,之后按照轉(zhuǎn)化啥容,示例如下。
對于區(qū)間型指標(biāo)顷霹,如果其最佳區(qū)間是咪惠,我們?nèi)?img class="math-inline" src="https://math.jianshu.com/math?formula=M%3Dmax%5C%7Ba-min%5C%7Bx_i%5C%7D%2Cmax%5C%7Bx_i%5C%7D-b%5C%7D" alt="M=max\{a-min\{x_i\},max\{x_i\}-b\}" mathimg="1">,之后按照轉(zhuǎn)化淋淀,示例如下遥昧。
至此,我們已經(jīng)將所有的數(shù)據(jù)都轉(zhuǎn)化為極大型數(shù)據(jù)了,可以很好地使用來進(jìn)行打分炭臭。但是為了消除不同的數(shù)據(jù)指標(biāo)量綱的影響永脓,我們還有必要對已經(jīng)正向化的矩陣進(jìn)行標(biāo)準(zhǔn)化。在概率統(tǒng)計中鞋仍,標(biāo)準(zhǔn)化的方法一般是常摧,不過這里我們不采用。我們記標(biāo)準(zhǔn)化后的矩陣為威创,其中落午,也就是。
現(xiàn)在我們已經(jīng)對數(shù)據(jù)進(jìn)行了相應(yīng)的處理肚豺,可以計算每一個方案的的得分了板甘,也就是所謂的距離。由于我們一個方案具有多個指標(biāo)详炬,因此我們可以用向量來表達(dá)第個方案。假設(shè)有n個待評價的方案寞奸,m個指標(biāo)呛谜,此時。由這n個向量構(gòu)成的矩陣也就是我們的標(biāo)準(zhǔn)化矩陣了枪萄。(實在是打不好這個樣子……)
之后我們就可以從中取出理想最優(yōu)解和最劣解了隐岛,經(jīng)過了正向化處理和標(biāo)準(zhǔn)化處理的評分矩陣,里面的數(shù)據(jù)全部是極大型數(shù)據(jù)瓷翻。因此我們?nèi)〕雒總€指標(biāo)聚凹,即每一列中最大的數(shù),構(gòu)成理想最優(yōu)解向量齐帚,即妒牙。
同理,取每一列中最小的數(shù)計算理想最劣解向量对妄,湘今。
(就是,就是)
現(xiàn)在我們可以計算得分了剪菱,之前我們的計算公式是也就是摩瞎,嗯,我們變形成了·孝常。為什么要這樣變形呢旗们?因為大家都是這么用的……好吧,其實我們接下來是使用歐幾里得距離來衡量兩個方案的距離构灸,變形前后分母的計算結(jié)果其實是不同的上渴。我個人認(rèn)為這樣變形更有利于說明問題,即我們衡量的得分是考慮到某個方案距離最優(yōu)解和最劣解的一個綜合距離。不然的話驰贷,所有方案計算得分時分母都是相同的盛嘿,相當(dāng)于只衡量了分子,也就是距離最劣解的距離括袒。那應(yīng)該還是采用綜合衡量的方式會好一點兒吧次兆,你覺得呢?
嗯锹锰,我就默認(rèn)大家都同意這個說法了芥炭。我們繼續(xù)計算得分,對于第個方案恃慧,我們計算它與最優(yōu)解的距離园蝠,與最劣解的距離為。我們記此方案的得分為痢士,則彪薛,也可以理解為我們上文一直在說的綜合距離。很明顯怠蹂,善延,且越小,也就是該方案與最優(yōu)解的距離越小時城侧,越大易遣;越小,也就是該方案與最劣解的距離越小時嫌佑,越小豆茫。這種計算方式同時考慮了該方案與最優(yōu)解和最劣解的距離。
這個時候我們就有了每個方案的分?jǐn)?shù)了屋摇,按分?jǐn)?shù)排排序揩魂,就知道哪個方案好一點兒哪個方案次一點兒了。還可以按照這個得分再進(jìn)行一次歸一化炮温,不過我覺得沒什么必要了肤京。
嗯,基本部分講完啦茅特。
總結(jié)
總結(jié)一下忘分。使用TOPSIS算法的一個先決條件就是要有數(shù)據(jù),最好全部是定量數(shù)據(jù)白修,如果是定性數(shù)據(jù)或者定序數(shù)據(jù)妒峦,但能夠分別優(yōu)劣,也可以按照定量數(shù)據(jù)來處理兵睛。之后就開始操作:
- 將原始數(shù)據(jù)矩陣正向化肯骇。
也就是將那些極小性指標(biāo)窥浪,中間型指標(biāo),區(qū)間型指標(biāo)對應(yīng)的數(shù)據(jù)全部化成極大型指標(biāo)笛丙,方便統(tǒng)一計算和處理漾脂。- 將正向化后的矩陣標(biāo)準(zhǔn)化。
也就是通過標(biāo)準(zhǔn)化胚鸯,消除量綱的影響骨稿。- 計算得分并排序
公式就是。
這次好像還沒有給一個完整的過程姜钳,嗯坦冠,我就把PPT里的完整過程放在這里供大家參考。
這是原始數(shù)據(jù)矩陣
我們對其進(jìn)行正向化
我們再對其進(jìn)行標(biāo)準(zhǔn)化
最后計算得分給出排名
嗯哥桥,這個例子告訴我們辙浑,成績很重要,但是情商更重要hhh拟糕。小王雖然只考了60分判呕,但也及格了,而且他從不與人爭吵送滞,所以我們可以給他一個最好的評價hhh佛玄。
拓展
TOPSIS是不是又簡單又使用呢?其實我們還可以進(jìn)行一點點兒的拓展累澡,不想打字了,看下圖般贼。
我們可以看到愧哟,在計算距離時,我們其實默認(rèn)每個指標(biāo)的權(quán)重是相同的哼蛆,但實際問題中蕊梧,不同的指標(biāo)重要程度可能是不一樣的。例如評獎學(xué)金的時候腮介,成績往往是最重要的肥矢,之后還有參與活動分,志愿服務(wù)分等等叠洗,他們的權(quán)重又低一點甘改。因此,在實際的應(yīng)用中灭抑,我們也可以給指標(biāo)進(jìn)行賦權(quán)十艾,將權(quán)重放到計算距離的公式中。如圖腾节。
帶上了權(quán)重之后忘嫉,不同的指標(biāo)發(fā)揮的影響就不一樣了荤牍,帶權(quán)重的評價也往往是實際生活中很常見的一種評價方式。
那在建模中如何確定權(quán)重呢庆冕?如果是日常生活向的評價康吵,我們可以使用層次分析法,結(jié)合常識給出。如果是比較專業(yè)的評價指標(biāo)诵姜,我們可以查詢資料溪食,看看別人怎么研究的。還有一種方法叫熵權(quán)法耍铜,也是這套課程的內(nèi)容,不過限于篇幅跌前,就留到之后再提吧棕兼。
局限性
TOPSIS法有什么局限性呢?其實也是有的抵乓,例如沒有數(shù)據(jù)你就行不通了吧hhh伴挚。不過在實際建模中,倒也不必考慮太多的局限性灾炭,知道每個模型的適用條件就好了茎芋。到時候見招拆招,增刪查改蜈出,盡力而為就好了田弥。一個沒有參加過比賽的小白說這些是不是有點兒不妥……不管了,反正就是碰到什么題用對應(yīng)的模型铡原,實在不行就試著綜合綜合偷厦,總能有個結(jié)果的hhh
嗯,就這樣燕刻,拜拜~
作業(yè)
我把PPT里的題目也放在這里只泼,應(yīng)該沒問題。嗶哩嗶哩上有作業(yè)講解的卵洗。