10-曲线拟合与回归分析.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10-曲线拟合与回归分析.ppt

MATLAB 程式設計進階篇 曲線擬合與迴歸分析 張智星 (Roger Jang) jang@ /jang 清大資工系 多媒體檢索實驗室 資料擬和簡介 資料擬合(Data Fitting) 給定一組資料(含輸入及輸出),建立一個數學模型,來逼近此資料的輸入輸出特性 如果此資料包含一維輸入及輸出,則此數學模型可以表示成一條曲線,在此情況下又稱為曲線擬合(Curve Fitting) 迴歸分析(Regression Analysis) 使用統計的方法來進行資料擬和,並分析每一個變數的統計特性,此過程稱為迴歸分析 曲線擬合簡介 曲線擬合(Curve Fitting) 欲建立的數學模型是「單輸入、單輸出」(Single-input Single-output,簡稱SISO),其特性可用一條曲線來表示 迴歸分析之分類 若模型是線性模型,則此類問題稱為線性迴歸(Linear Regression) 若模型是非線性模型,則稱為非線性迴歸(Nonlinear Regression)。 觀察資料是美國自 1790 至 1990 年(以 10 年為一單位)的總人口,此資料可由載入檔案 census.mat 得到: 範例10-1: censusPlot01.m 曲線擬合:美國人口範例 load census.mat % 載入人口資料 plot(cdate, pop, o); % cdate 代表年度,pop 代表人口總數 xlabel(年度); ylabel(美國人口總數); 模型選取 由上圖資料分佈,可猜測這適合的曲線可能是二次拋物線 其中y為輸出,x為輸入, 則為此模型的參數。由於參數相對於y呈線性關係,所以此模型為稱線性模型 目標 找出最好的參數值,使得模型輸出與實際資料越接近越好,此過程即稱為線性迴歸 曲線擬合之模型選取 曲線擬和的平方誤差 假設觀察資料可寫成 ,i= 1~21。當輸入為 時,實際輸出為 。 模型的預測值為 平方誤差: 總平方誤差 是參數 的函數,這也是我們要最小化的目標函數,可表示如下: 曲線擬合之目標函數 求得參數 、 、 的最佳值 求出 對 、 、 的導式,令其為零,即可解出 、 、 的最佳值。 總平方誤差 為 的二次式 導式 、 及 為 的一次式 令上述導式為零之後,我們可以得到一組三元一次線性聯立方程式,就可以解出參數 、 、 的最佳值。 目標函數之求解 假設 21 個觀察點均通過此拋物線,將這 21 個點帶入拋物線方程式,得到下列21個等式: 亦可寫成 其中 、 為已知, 為未知向量。 矩陣表示法 觀察 上述21個方程式,只有 3 個未知數 ,所以通常不存在一組解來滿足這 21 個方程式。 在一般情況下,只能找到一組 ,使得等號兩邊的差異為最小,此差異可寫成 此即為前述的總平方誤差 MATLAB 提供一個簡單方便的「左除」(\)指令,來解出最佳的 ,使得總平方誤差為最小。 MATLAB的最小平方解 利用「左除」來算出最佳的參數值,並同時畫出具有最小平方誤差的二次曲線 範例10-2: census01.m 曲線擬合運算範例 load census.mat % 載入人口資料 plot(cdate, pop, o); % cdate 代表年度,pop 代表人口總數 A = [ones(size(cdate)), cdate, cdate.^2]; y = pop; theta = A\y; % 利用「左除」,找出最佳的 theta 值 plot(cdate, pop, o, cdate, A*theta, -); legend(實際人口數, 預測人口數); xlabel(年度); ylabel(美國人口總數); 曲線擬合結果 由上述範例,我們可以找出最佳的 因此具有最小平方誤差的拋物線可以寫成: 提示:左除及右除 左除的概念,可記憶如下:原先的方程式是 A*theta = y,我們可將 A移項至等號右邊,而得到 theta = A\y。必須小心的是:原先 A 在乘式的第一項,所以移到等號右邊後,A 仍然必須是除式的第一項。 若我們要解的方程式是 theta*A = y,則同樣的概念可得到最小平方解 theta = y/A。 根據上拋物線數學模型,我們可以預測美國在 2000 年的人口總數為: 範例10-3: census02.m 以模型預測人口總數 load census.mat % 載入人口資料 A = [ones(size(cdate)), cdate, cdate.^2]; theta = A\po

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档