PLS入門


PLS入門:

1,兩篇關鍵文章

[1] de Jong, S. "SIMPLS: An Alternative Approach to Partial Least Squares Regression." Chemometrics and Intelligent Laboratory Systems. Vol. 18, 1993, pp. 251–263.

 

[2] Rosipal, R., and N. Kramer. "Overview and Recent Advances in Partial Least Squares." Subspace, Latent Structure and Feature Selection: Statistical and Optimization Perspectives Workshop (SLSFS 2005), Revised Selected Papers (Lecture Notes in Computer Science 3940). Berlin, Germany: Springer-Verlag, 2006, pp. 34–51.

 

2,PLS回歸是一種針對多變量的回歸。是線性回歸的最高峰。

最簡單的函數格式為:[XL,YL] = plsregress(X,Y,ncomp)

這個函數意味着把x對y進行回歸,並且選擇ncomp個主成分,在所得的結果當中,xl和y l就是預測的回歸變量的載荷值,相對的來說x是一個n-by-p的矩陣,它代表的是需要預測的變量。他的每一行表示特定樣本的各種各樣的觀察值,它的每一列表示各種各樣的變量。y是一個n乘以m的結局矩陣。在可能的情況下,N應該盡可能的是啞元變量。xl是一個,七乘,以n個主成分的,預測值的載荷,xl里邊,每一排,都代表了一系列的系數,這些系數可以組成一個,線性的組合,也就是ps主成分的線性的組合。

 

舉一個例子:

汽油在氣缸中正常燃燒時火焰傳播速度為10~20m/s,在爆震燃燒時可達1500~2000m/s。后者會使氣缸溫度劇升,汽油燃燒不完全,機器強烈震動,從而使輸出功率下降,機件受損。與辛烷有同一分子方程式的異辛烷,其震爆現象最少,我們便把其辛烷值定為100。正庚烷一捧就爆,我們規定其的辛烷值為0,這兩種標准燃料以不同的體積比混合起來,可得到各種不同的抗震性等級的混合液,在發動機工作相同條件下,與待測燃料進行對比。抗震性與樣品相等的混合液中所含異辛烷百分數,即為該樣品的辛烷值。汽油辛烷值大,抗震性好,質量也好。 把汽油中不同種類碳氫化合物的百分比,與其辛烷值相乘,加起來便是該種汽油的辛烷值。

在1997年,Kalivas, John H等人在論文 "Two Data Sets of Near Infrared Spectra," Chemometrics and Intelligent Laboratory Systems, v.37 (1997) pp.255-259.當中,描述了一個利用Near Infrared Spectra(近紅外光譜)來分析汽油辛烷值的論文。利用401nm的近紅外光譜,可以對汽油辛烷值。

要測定汽油的辛烷值,如果用震動汽油爆炸的方法,那么需要非常昂貴的設備,而且實驗的重復性還很差。當然,也可以使用一系列的蒸餾方法將各種烷烴直接分開。但是雷德蒸餾測試儀,和其它的蒸餾裝置非常昂貴。因此用相對廉價切穩定的紅外光譜來分析辛烷值就成了一種挑戰。但是紅外光譜成像較為復雜。有200個峰以上。且不同譜峰間停留時間短。因此要從復雜的峰變換中獲得良好的分析,需要采用高級的多元回歸的方法。

在matlab中運行以下代碼:

load spectra

whos NIR octane

運行的結果為:

Name Size Bytes Class Attributes

NIR 60x401 192480 double

octane 60x1 480 double

這表明有60個樣本,每個樣本有401個波峰,而他們的辛烷值(因為預先混合)有480個已知的值。我們需要做的事情,就是利用多元回歸的方法去把這60*401個矩陣和60*1的矩陣進行回歸。回歸完成之后,如果以后有新的某種汽油的紅外光譜數據,就可以方便的通過上述公式計算出它的辛烷值。

[dummy,h] = sort(octane);

oldorder = get(gcf,'DefaultAxesColorOrder');

set(gcf,'DefaultAxesColorOrder',jet(60));

plot3(repmat(1:401,60,1)',repmat(octane(h),1,401)',NIR(h,:)');

set(gcf,'DefaultAxesColorOrder',oldorder);

xlabel('Wavelength Index'); ylabel('Octane'); axis('tight');

grid on


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM