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

數(shù)學(xué)建模——模擬退火優(yōu)化投影尋蹤

這篇具有很好參考價值的文章主要介紹了數(shù)學(xué)建?!M退火優(yōu)化投影尋蹤。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

數(shù)學(xué)建?!M退火優(yōu)化投影尋蹤

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

??在考慮綜合評價的時候,我們使用了各自主觀、客觀的方法去求解權(quán)重,客觀權(quán)重的計算依靠著數(shù)據(jù)本身的分布來決定,有時候會出現(xiàn)各種各樣不可抗拒的意外情況,其中在熵權(quán)法的解釋在就有提到,有時候數(shù)據(jù)的重要程度和分布不一定是相關(guān)的。而投影尋蹤法主要基于評價結(jié)果的方差及相互的絕對誤差對權(quán)值進(jìn)行調(diào)整,得到能反映原數(shù)據(jù)的最佳投影(可以理解為重要程度值),這樣得到的評價值更具有參考性。


一、投影尋蹤是什么?

??投影尋蹤是處理和分析高維數(shù)據(jù)的一類統(tǒng)計方法,其基本思想是將高維數(shù)據(jù)投影到低維(1~3維)子空間上,尋找出反映原高維數(shù)據(jù)的結(jié)構(gòu)或特征的投影,以達(dá)到研究和分析高維數(shù)據(jù)的目的。1974年,美國Stanford大學(xué)的Friedman和Tukey首次將該方法命名為Projection Pursuit,即投影尋蹤。
??投影尋蹤(projection pursuit,簡稱PP)是國際統(tǒng)計界于70年代中期發(fā)展起來的一種新的、有價值的新技術(shù),是統(tǒng)計學(xué)、應(yīng)用數(shù)學(xué)和計算機技術(shù)的交叉學(xué)科。它是用來分析和處理高維觀測數(shù)據(jù),尤其是非正態(tài)非線性高維數(shù)據(jù)的一種新興統(tǒng)計方法。它通過把高維數(shù)據(jù)投影到低維子空間上,尋找出能反映原高維數(shù)據(jù)的結(jié)構(gòu)或特征的投影,達(dá)到研究分析高維數(shù)據(jù)的目的。它具有穩(wěn)健性、抗干擾性和準(zhǔn)確度高等優(yōu)點,因而在許多領(lǐng)域得到廣泛應(yīng)用。
??以上來自于百度百科的解釋,用大白話來說就是把多維數(shù)據(jù)投影到平面、空間上,觀察投影那個比較合適。

二、什么是模擬退火

??模擬退火是一種尋優(yōu)算法,其本質(zhì)思想是其出發(fā)點是基于物理中固體物質(zhì)的退火過程與一般組合優(yōu)化問題之間的相似性。模擬退火算法來源于固體退火原理,是一種基于概率的算法,將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內(nèi)部粒子隨溫升變?yōu)闊o序狀,內(nèi)能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達(dá)到平衡態(tài),最后在常溫時達(dá)到基態(tài),內(nèi)能減為最小。
??模擬退火算法本身是比較容易理解的,在這里我放了一些其他博主的文章,幫助大家理解,我自己也是通過這些學(xué)習(xí)平臺去學(xué)習(xí)的。
知乎(智能算法):https://zhuanlan.zhihu.com/p/266874840
B站(清風(fēng)):https://www.bilibili.com/video/BV1hK41157JL?spm_id_from=333.337.search-card.all.click

三、模擬退火優(yōu)化投影尋蹤

??步驟1,2,3屬于投影尋蹤的構(gòu)建,步驟4開始屬于模擬退火尋找最優(yōu)解,需要理解后才能看懂,如果不想看可以直接應(yīng)用也行。

1.數(shù)據(jù)的預(yù)處理

??大家可以發(fā)現(xiàn),做求權(quán)重的第一步大部分都是要做數(shù)據(jù)預(yù)處理的,包括正向化和歸一化。

對于正向指標(biāo)(越大越好),歸一化如下:
x i = x i ? min ? x i max ? x i ? min ? x i x_i=\frac{x_i-\min x_i}{\max x_i-\min x_i} xi?=maxxi??minxi?xi??minxi??
對于負(fù)向指標(biāo)(越小越好),歸一化如下:
x i = max ? x i ? x i max ? x i ? min ? x i x_i=\frac{\max x_i- x_i}{\max x_i-\min x_i} xi?=maxxi??minxi?maxxi??xi??
對于中間指標(biāo)(越靠近某個值越好),歸一化如下:
x i = 1 ? ∣ x i ? x b e s t ∣ m a x ∣ x i ? x b e s t ∣ x_i=1-\frac{{|x_i-x_{best}|}}{max|x_i-x_{best}|} xi?=1?maxxi??xbest?xi??xbest??
??其中 x b e s t x_{best} xbest?為最優(yōu)值
對于區(qū)間指標(biāo)(越靠近某個區(qū)間越好),歸一化如下:
投影尋蹤法,人工智能,python,算法
??其中 M = m a x ( a ? m i n ( x i ) , m a x ( x i ) ? b ) M=max{(a-min{(x_i)},max{(x_i)-b})} M=max(a?min(xi?),max(xi?)?b)
常見的歸一化就是以上幾種,其他的,例如多分位點最優(yōu)的就不再說明。

2.向低維投影

??選取多種角度觀察指標(biāo)數(shù)據(jù),從而能充分挖掘并反映數(shù)據(jù)特征的最佳投影向量。令 a = ( a 1 , a 2 , . . . , a n ) a=(a_1,a_2,...,a_n) a=(a1?,a2?,...,an?)為n維的單位向量,表示n個指標(biāo)投影的方向向量,則第 i i i個樣本在一維空間上的線性投影為:
Z i = ∑ i = 1 n x i j a j Z_i=\sum_{i=1}^n{x_{ij}a_j} Zi?=i=1n?xij?aj?

3.構(gòu)造投影的指標(biāo)函數(shù)

??設(shè)數(shù)據(jù)的投影值為 Z i Z_i Zi?,基于投影尋蹤,通過構(gòu)造投影的指標(biāo)函數(shù)來求得信息在整體上的分布特征以及局部投影點的分布特征,一般的,信息在整體上分布應(yīng)盡量散開,而局部投影點分布應(yīng)盡量密集,最終用投影指標(biāo)函數(shù)來表示其最大乘積。
max ? ? G ( a ) = S a ? B a \max\text{\ }G\left( a \right) =Sa\cdot Ba max?G(a)=Sa?Ba
??其中Ba是投影值Zi的局部密度,投影值Zi的標(biāo)準(zhǔn)差為Sa,故Ba與Sa可表示為:
B a = ∑ i = 1 n ∑ j = 1 m ( R i j ? r i j ) u ( R i j ? r i j ) Ba=\sum_{i=1}^n{\sum_{j=1}^m{\left( R_{ij}-r_{ij} \right) u\left( R_{ij}-r_{ij} \right)}} Ba=i=1n?j=1m?(Rij??rij?)u(Rij??rij?) S a = ∑ i = 1 n ( Z i ? Z ˉ ) / ( n ? 1 ) Sa=\sqrt{\sum_{i=1}^n{\left( Zi-\bar{Z} \right)}/\left( n-1 \right)} Sa=i=1n?(Zi?Zˉ)/(n?1) ?
??上式中,圖片為Zi的均值,u是單位階躍函數(shù),其作用是當(dāng)取值大于0時,值為1;取值小于0時,值為0。R是求求取局部密度的窗口口徑,半徑的選取必須含盡量多的投影點,否則滑動的平均偏差將過大。 r i j r_{ij} rij?的距離公式為: r i j = Z i ? Z j r_{ij}=Z_i-Z_j rij?=Zi??Zj?。

4.對投影方向的優(yōu)化

??選用模擬退火算法對目標(biāo)函數(shù)進(jìn)行優(yōu)化,以使求取能反映原數(shù)據(jù)的最佳投影。
目標(biāo)函數(shù)設(shè)置為:
max ? ?? G ( a ) = S a ? B a \max\text{\,\,}G\left( a \right) =Sa\cdot Ba maxG(a)=Sa?Ba s t . { a > 0 ∑ j = 1 m a j 2 st.\left\{ \begin{array}{l} a>0\\ \sum_{j=1}^m{a_{j}^{2}}\\ \end{array} \right. st.{a>0j=1m?aj2??
??模擬退火基本原理是將高溫粒子緩慢自然冷卻,最終在特定的溫度下達(dá)到熱平衡,且能達(dá)到最低能量狀態(tài)E(i)。E(i)遵循以下規(guī)則。
1)若E(i)≥E(j),則接受該狀態(tài)被下一狀態(tài)轉(zhuǎn)化
2)若E(i)<E(j),則該狀態(tài)有一定概率被接受,概率為:
μ = E ( i ) ? E ( j ) K T \mu =\frac{E\left( i \right) -E\left( j \right)}{KT} μ=KTE(i)?E(j)?
其中,K為波爾茲曼常數(shù),T為粒子的溫度。
基于此規(guī)則,目標(biāo)函數(shù)被模擬退火算法轉(zhuǎn)換為:
{ y 1 = s q r t ( b 2 s u m b 2 ) ? b 為 ( 0 , 1 ) 隨機數(shù) f o r ? k = 1 : n ?? b ( k ) = r a n d ( ) ?產(chǎn)生新解 P = { 1 exp ? ( d e l t a ? e / T ) d e l t a ? e > 0 d e l t a ? e ≤ 0 T 0 = q ? T 0 ? \left\{ \begin{array}{l} y_1=sqrt\left( \frac{b_2}{sumb_2} \right) \ b\text{為}\left( 0,1 \right) \text{隨機數(shù)}\\ for\ k=1:n\ \ b\left( k \right) =rand\left( \right) \ \text{產(chǎn)生新解}\\ P=\left\{ \begin{array}{l} 1\\ \exp \left( delta-e/T \right)\\ \end{array}\begin{array}{c} delta-e>0\\ delta-e\le 0\\ \end{array} \right.\\ T_0=q\cdot T_0\\ \end{array} \right. \ ? ? ??y1?=sqrt(sumb2?b2??)?b(0,1)隨機數(shù)for?k=1:n??b(k)=rand()?產(chǎn)生新解P={1exp(delta?e/T)?delta?e>0delta?e0?T0?=q?T0???

5.求解投影的評價值

投影評價值:
Z i ? = ∑ j = 1 m a j ? ? x i j Z_{i}^{*}=\sum_{j=1}^m{a_{j}^{*}\cdot x_{ij}} Zi??=j=1m?aj???xij?

四、代碼

clear
clc
%導(dǎo)入數(shù)據(jù),每列為指標(biāo),每行為樣本數(shù)據(jù),計算每個樣本投影評價值
x=[0.81   0.00   0.37   0.00   0.15   0.00   0.97 
0.14   0.49   0.00   1.00   1.00   0.59   0.97 
0.57   0.43   0.11   0.97   0.00   0.73   0.83 
1.00   0.40   0.69   0.50   0.88   1.00   0.60 
0.73   0.26   1.00   0.00   0.88   1.00   0.63 
0.00   0.74   0.29   0.32   0.45   1.00   0.00 
0.84   0.46   0.26   0.71   0.97   0.64   0.50 
0.11   1.00   0.37   0.06   0.39   0.50   0.73 
0.27   0.09   0.49   0.29   0.94   0.86   0.40 
0.70   0.26   0.69   0.38   0.18   0.45   1.00 ];
%矩陣維度計算,目的在于方便后面的計算
[a,b]=size(x);
disp('指標(biāo)類型:正向指標(biāo)為1,負(fù)向指標(biāo)為2,中心指標(biāo)為3,區(qū)間指標(biāo)為4')
disp('如第一個指標(biāo)為區(qū)間指標(biāo),第二個為負(fù)向指標(biāo),第三個為正向指標(biāo),輸入[4,2,1]')
ank=input('請輸入指標(biāo)類型');
max1 = max(x);
min1 = min(x);
%這里的最大最小為什么要乘以個0.98和0.02呢,這里小編直接說結(jié)果把說下吧,
%如果不分別乘以0.98和0.02,那么最終的r矩陣可能會出現(xiàn)0,從而干擾結(jié)果
%這里嚴(yán)格意義上不能稱為歸一化,因為最后結(jié)果不再01之間
%每種歸一化方法都是論文的不同點(創(chuàng)新點)
%這里有其他的歸一化方法,想了解可以聯(lián)系我(QQ:2892053776)
for i=1:b
    if ank(i)==1
        x(:,i)=(0.98*max1(i)-x(:,i))/(0.98*max1(i)-0.02*min1(i));
    elseif ank(i)==2
        x(:,i)=(x(:,i)-0.02*min1(i))/(0.98*max1(i)-0.02*min1(i));
    elseif ank(i)==3
        best=input(['請輸入第',i,'個指標(biāo)的最優(yōu)值']);
        M = 0.98*max(abs(x(:,i)-best));
        x(:,i) = 1 - abs(x(:,i)-best) / M;
    else
        best=input(['請輸入第',i,'個指標(biāo)的最優(yōu)區(qū)間,如區(qū)間上限為2,下限為1則輸入:[1,2]']);
        a=best(1);b=best(2);
        M = 0.98*max([a-min(x(:,i)),max(x(:,i))-b]);
        for j = 1: a
            if x(j,i) < a
               x(j,i) = 1-(0.02*a-x(j,i))/M;
            elseif x(j,i) > b
               x(j,i) = 1-(x(j,i)-0.98*b)/M;
            else
               x(j,i) = 1;
            end
        end
    end
end
tic
for k=1:a
    %退火尋找最優(yōu)投影方向
    temperature=100;%初始溫度
    iter=100;%迭代次數(shù)
    L=1;%用于記錄迭代的次數(shù)
    n=size(x,2);%指標(biāo)個數(shù)
    c=suiji(n);%隨機生成初始值,在遺傳算法中就相當(dāng)于初始種群
    p=c;
    y=Target(x,c);
    while temperature>0.01
        for i=L:iter
            c1=suiji(n);%這里為什么還要隨機呢,目的在于避免算法陷入局部最優(yōu)值這一缺陷
            y1=Target(x,c1);%計算目標(biāo)函數(shù)值
            delta_e=y1-y;
            if delta_e>0
                y=y1;
                p=c1;
            else
                if exp(delta_e/temperature)>rand()
                    y=y1;
                    p=c1;
                end
            end
        end
        L=L+1;
        temperature=temperature*0.99;
    end
    w(k)=y;
    e(k,:)=p;
end
toc
%求得各樣本投影值 r
c=e(find(w==max(w)),:)%c記錄的是每個指標(biāo)的權(quán)重值,也就是通過對數(shù)據(jù)分析,賦予了指標(biāo)一個參比性的一個值
%這里的find(w==max(w)是什么意思呢,是找到w矩陣中最后一個最大值的位置,目的也是為了尋找最優(yōu)的結(jié)果
%e記錄的是經(jīng)L次迭代生成的一個參比性值的矩陣
for i=1:a
    for j=1:b
        r(i,j)=sum(x(i,j).*c(j));%每行每列的評價值
    end
end
sum(r,2)%各樣本評價值

function a=suiji(n)
%初始化,隨機給予每個指標(biāo)任意權(quán)重
for k=1:n
    b(k)=rand();
end
temp=sum(b.^2);
a=sqrt((b.^2)./temp);
end
function y=Target(x,a)
%計算目標(biāo)函數(shù)值,見模型步驟3
[m,n]=size(x);
for i=1:m
    s1=0;
    for j=1:n
        s1=s1+a(j)*x(i,j);
    end
    z(i)=s1;
end
Sz=std(z);%方差
R=0.1*Sz;
s3=0;
for i=1:m
    for j=1:m
        r=abs(z(i)-z(j));
        t=R-r;
        if t>=0
            u=1;
        else
            u=0;
        end
        s3=s3+t*u;
    end
end
Dz=s3;
y=Sz*Dz;
end

總結(jié)

??以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了模擬退火優(yōu)化投影尋蹤的使用,而投影尋蹤是可以使用其他優(yōu)化算法去結(jié)合使用的,理論上效果其實應(yīng)該都差不多,但是實際運行結(jié)果卻是千差萬別,迭代次數(shù)不一樣,結(jié)果也會有很大區(qū)別,大家有興趣可以試一下。
??本文撰寫借鑒了很多網(wǎng)上的博客的作品,查重照寫肯定是過不了的,所以要抄襲慎重。文章來源地址http://www.zghlxwxcb.cn/news/detail-678529.html

到了這里,關(guān)于數(shù)學(xué)建模——模擬退火優(yōu)化投影尋蹤的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 數(shù)學(xué)建模(三):模擬退火算法(SA)

    數(shù)學(xué)建模(三):模擬退火算法(SA)

    1、 算法簡介 模擬退火算法(simulated annealing,SA)來源于固體退火原理,是一種基于概率的算法。 模擬退火算法(SA)來源于固體退火原理,是一種基于概率的算法。將固體加溫至充分高的溫度,再讓其徐徐冷卻,加溫時,固體內(nèi)部粒子隨溫升變?yōu)闊o序狀,內(nèi)能增大,分子和原

    2023年04月17日
    瀏覽(25)
  • 數(shù)學(xué)建模之模擬退火法(SA)

    數(shù)學(xué)建模之模擬退火法(SA)

    模擬退火算法(SA)是一種模擬物理退火過程而設(shè)計的優(yōu)化算法。 它的基本思想最早在1953年就被Metropolis提出,但直到1983年,Kirkpatrick等人才設(shè)計出真正意義上的模擬退火算法并進(jìn)行應(yīng)用。 模擬退火算法采用類似于 物理退火 的過程。先在一個高溫狀態(tài)下,然后逐漸退火,在

    2024年01月17日
    瀏覽(27)
  • 【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第十四講-模擬退火、遺傳算法(含Matlab代碼)

    【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第十四講-模擬退火、遺傳算法(含Matlab代碼)

    本系列側(cè)重于例題實戰(zhàn)與講解,希望能夠在例題中理解相應(yīng)技巧。文章開頭相關(guān)基礎(chǔ)知識只是進(jìn)行簡單回顧,讀者可以搭配課本或其他博客了解相應(yīng)章節(jié),然后進(jìn)入本文正文例題實戰(zhàn),效果更佳。 如果這篇文章對你有幫助,歡迎點贊與收藏~ 現(xiàn)代優(yōu)化算法,自20世紀(jì)80年代初開

    2024年02月04日
    瀏覽(27)
  • Matlab數(shù)學(xué)建模算法之模擬退火算法(SA)詳解

    ???運行環(huán)境:Matlab ???撰寫作者:左手の明天 ???精選專欄:《python》 ????推薦專欄:《算法研究》 ??####? 防偽水印——左手の明天?#### ?? ?? 大家好??????,我是 左手の明天 !好久不見?? ??今天分享 matlab數(shù)學(xué)建模算法 —— 模擬退火算法 ??

    2024年01月16日
    瀏覽(26)
  • 數(shù)學(xué)建模|通過模擬退火算法求解供貨與選址問題:問題二(python代碼實現(xiàn))

    數(shù)學(xué)建模|通過模擬退火算法求解供貨與選址問題:問題二(python代碼實現(xiàn))

    今天繼續(xù)用模擬退火算法供貨與選址問題的問題二,如果還沒看過問題一的可以看我之前的博客 數(shù)學(xué)建模|通過模擬退火算法求解供應(yīng)與選址問題:問題一(python代碼實現(xiàn))-CSDN博客 這里還是把題目放上來(題目來自數(shù)學(xué)建模老哥的視頻): 那么我們可以分析一下,第一問和

    2024年01月16日
    瀏覽(21)
  • 數(shù)學(xué)建模-退火算法和遺傳算法

    數(shù)學(xué)建模-退火算法和遺傳算法

    退火算法和遺傳算法 一.退火算法 退火算法Matlab程序如下: [W]=load(\\\'D:100個目標(biāo)經(jīng)度緯度.txt\\\'); 二、遺傳算法 [E]=xlsread(\\\'D:100個目標(biāo)經(jīng)度緯度\\\'); ?% 加載敵方 100 個目標(biāo)的數(shù)據(jù), 數(shù)據(jù)按照表格中的位置保存在純文本文件 sj.txt 中 x=[E(:,1)]; y=[E(:,2)]; e =[x y]; d1=[70,40]; e =[d1; ?e ;d1];

    2024年02月20日
    瀏覽(25)
  • 數(shù)學(xué)建模--退火算法求解最值的Python實現(xiàn)

    數(shù)學(xué)建模--退火算法求解最值的Python實現(xiàn)

    目錄 1.算法流程簡介 2.算法核心代碼 3.算法效果展示

    2024年02月09日
    瀏覽(26)
  • 數(shù)學(xué)建模-蒙特卡洛模擬
  • 數(shù)學(xué)建模 優(yōu)化問題——數(shù)學(xué)規(guī)劃

    數(shù)學(xué)建模 優(yōu)化問題——數(shù)學(xué)規(guī)劃

    優(yōu)化問題 :在一系列客觀或主觀限制條件下,尋求使所關(guān)注的某個或多個指標(biāo)達(dá)到最大(或最小)的決策 結(jié)構(gòu)設(shè)計、資源分配、生產(chǎn)計劃、運輸方案中經(jīng)??梢?通常的解決手段: 經(jīng)驗積累、主觀判斷 做試驗、比優(yōu)劣 建立數(shù)學(xué)模型,求解最優(yōu)策略 解決優(yōu)化問題的數(shù)學(xué)方法: 數(shù)

    2024年02月06日
    瀏覽(91)
  • 數(shù)學(xué)建?!媚M數(shù)據(jù)擬合曲面

    數(shù)學(xué)建模——利用模擬數(shù)據(jù)擬合曲面

    ? 我還掌握了numpy庫中的reshape函數(shù),收獲很大 最后結(jié)果: ?

    2024年02月16日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包