




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本文會講到:線性回歸的定義單變量線性回歸cost function:評價線性回歸是否擬合訓(xùn)練集的方法梯度下降:解決線性回歸的方法之一feature scaling :加快梯度下降執(zhí)行速度的方法多變量線性回歸Linear Regression注意一句話:多變量線性回歸之前必須要Feature Scaling!方法:線性回歸屬于監(jiān)督學(xué)習(xí),因此方法和監(jiān)督學(xué)習(xí)應(yīng)該是一樣的,先給定一個訓(xùn)練集,根 據(jù)這個訓(xùn)練集學(xué)習(xí)出一個線性函數(shù),然后測試這個函數(shù)訓(xùn)練的好不好(即此函數(shù)是否足夠擬 合訓(xùn)練集數(shù)據(jù)),挑選出最好的函數(shù)(cost function最小)即可;注意:因為是線性回歸,所以學(xué)習(xí)到的函數(shù)為線性函數(shù),即直線
2、函數(shù);因為是單變量,因此只有一個X; 我們能夠給出單變量線性回歸的模型:膈 3)= Oq +。許我們常稱 x 為 feature,h(x)為 hypothesis;從上面“方法”中,我們肯定有一個疑問,怎么樣能夠看出線性函數(shù)擬合的好不好呢?我們需要使用到Cost Function (代價函數(shù)),代價函數(shù)越小,說明線性回歸地越好(和訓(xùn)練 集擬合地越好),當(dāng)然最小就是0,即完全擬合; 舉個實際的例子:我們想要根據(jù)房子的大小,預(yù)測房子的價格,給定如下數(shù)據(jù)集:Size in feet2 (x)Price ($) in 1000s (y)210414161534460232315852 Bl178i-
3、n 根據(jù)以上的數(shù)據(jù)集畫在圖上,如下圖所示:Housing Prices (Portland, ORPrice(in 1000sof dollars)Size (feet2)我們需要根據(jù)這些點擬合出一條直線,使得cost Function最小;雖然我們現(xiàn)在還不知道Cost Function內(nèi)部到底是什么樣的,但是我們的目標(biāo)是:給定輸入 向量x,輸出向量y,theta向量,輸出Cost值;以上我們對單變量線性回歸的大致過程進行了描述;Cost FunctionCost Function的用途:對假設(shè)的函數(shù)進行評價,cost function越小的函數(shù),說明擬合訓(xùn)練數(shù)據(jù)擬合的越好;下圖詳細說明了當(dāng)c
4、ost function為黑盒的時候,cost function的作用;(11 vector x vector y(3) vector th&ta蟀:比即存在數(shù)據(jù)生心 g 料罰,則虹Q2外y = 1;2.3: 如果侵設(shè)預(yù)刪了國裁為丫 - x ,則發(fā)Slco&t value - 0 ;如果假設(shè)預(yù)測了函數(shù)為y = 2x ,則發(fā)睨st value = 1;如果假設(shè)預(yù)刨了函數(shù)為y -救,則發(fā)Hlmst value - 2 ;則痢i誰現(xiàn)y-x的cost仰1睥最小,因此選擇y-x作為我Cl的 hypothesis但是我們肯定想知道cost Function的內(nèi)部構(gòu)造是什么?因此我們下面給出公式:IJ泌1)
5、=總支(膈(/) ,)i1其中:杼)表示向量x中的第i個元素;儼)表示向量y中的第i個元素;膈(那)表示已知的假設(shè)函數(shù);m為訓(xùn)練集的數(shù)量;比如給定數(shù)據(jù)集(1,1)、(2,2)、(3,3)則x = 1;2;3,y = 1;2;3(此處的語法為Octave語言的語法,表示3*1的矩陣)如果我們預(yù)測 theta0 = 0, theta1 = 1,則 h(x) = x,則 cost function:J(0,1) = 1/(2*3) * (h(1)-1廣2+(h(2)-2廣2+(h(3)-3廣2 = 0;如果我們預(yù)測 theta0 = 0, theta1 = 0.5,則 h(x) = 0.5x,則 c
6、ost function:J(0,0.5) = 1/(2*3) * (h(1)-1廣2+(h(2)-2廣2+(h(3)-3廣2 = 0.58;如果theta0 一直為0,則thetal與J的函數(shù)為:如果有theta0與thetal都不固定,則theta0、thetal、J的函數(shù)為:當(dāng)然我們也能夠用二維的圖來表示,即等高線圖;-50005D0 V0OT 15002000即只有一個注意:如果是線性回歸,則costfunctionJ與的函數(shù)一定是碗狀的,最小點;以上我們講解了 cost function的定義、公式;Gradient Descent (梯度下降)但是又一個問題引出了,雖然給定一個函數(shù)
7、,我們能夠根據(jù)cost function知道這個函數(shù)擬 合的好不好,但是畢竟函數(shù)有這么多,總不可能一個一個試吧?因此我們引出了梯度下降:能夠找出cost function函數(shù)的最小值;梯度下降原理:將函數(shù)比作一座山,我們站在某個山坡上,往四周看,從哪個方向向下走一 小步,能夠下降的最快;當(dāng)然解決問題的方法有很多,梯度下降只是其中一個,還有一種方法叫Normal Equation ;方法:先確定向下一步的步伐大小,我們稱為Learning rate;任意給定一個初始值:* ;確定一個向下的方向,并向下走預(yù)先規(guī)定的步伐,并更新;當(dāng)下降的高度小于某個定義的值,則停止下降;算法:-終止翁牛repeat
8、 untilLearning rate決定了下降的步伐大土決se 了下降的方向小J(.iipda同dtempl= CtJ (0i)f出0 q rrnpO61 :=坨mplv特點:初始點不同,獲得的最小值也不同,因此梯度下降求得的只是局部最小值;越接近最小值時,下降速度越慢; 問題:如果、初始值就在local minimum的位置,則七1 會如何變化?答:因為已經(jīng)在local minimum位置,所以derivative肯定是0,因此不會變化;如果取到一個正確的f 值,則cost function應(yīng)該越來越?。粏栴}:怎么取 值?答:隨時觀察值,如果cost function變小了,則ok,反之,
9、則再取一個更小的值;下圖就詳細的說明了梯度下降的過程:最小值從上面的圖可以看出:初始點不同,獲得的最小值也不同,因此梯度下降求得的只是局部 最小值;注意:下降的步伐大小非常重要,因為如果太小,則找到函數(shù)最小值的速度就很慢,如果太大,則可能會出現(xiàn)overshoot the minimum的現(xiàn)象;卜圖就是overshoot minimum 現(xiàn)象:如果Learning rate取值后發(fā)現(xiàn)J function增長了,則需要減小Learning rate的值;Integrating with Gradient Descent & Linear Regression梯度下降能夠求出一個函數(shù)的最小值;線性回
10、歸需要求出,使得cost function的最小;因此我們能夠?qū)ost function運用梯度下降,即將梯度下降和線性回歸進行整合,如下圖 所示:Gradient descent algorithmLinear Regression Model膈3) =+務(wù)呈repeat until convcrgcncc印:=。1 丈(膈o)一於)廈梯度下降是通過不停的迭代,而我們比較關(guān)注迭代的次數(shù),因為這關(guān)系到梯度下降的執(zhí)行速度,為了減少迭代次數(shù),因此引入了 Feature Scaling;Feature Scaling此種方法應(yīng)用于梯度下降,為了加快梯度下降的執(zhí)行速度思想:將各個feature的值標(biāo)
11、準(zhǔn)化,使得取值范圍大致都在-1=x=1之間;常用的方法是 Mean Normalization,即,其中就訓(xùn)練集中當(dāng)前知him的平均值,mx為孤能取的最大值,min為x能取的最小值max.- min或者:X-mean(X)/std(X);舉個實際的例子,有兩個Feature:size,取值范圍02000;(2)#bedroom,取值范圍 05;貝0通過 feature scaling 后, 滄巴一1000_ #bedrooms25 2000妲5練習(xí)題我們想要通過期中開始成績預(yù)測期末考試成績,我們希望得到的方程為:標(biāo)弟)=缸-Ml - &Q給定以下訓(xùn)練集:midterm exam(midterm
12、 exam)2final exam89792196725184749488368769476178我們想對(midterm exam)A2 進行 feature scaling,貝0 經(jīng)過 feature scaling 后的值為多 少?max = 8836,min=4761,mean=6675.5,則 x=(4761-6675.5)/(8836-4761) = -0.47;多變量線性回歸前面我們只介紹了單變量的線性回歸,即只有一個輸入變量,現(xiàn)實世界不可能這么簡單,因 此此處我們要介紹多變量的線性回歸;舉個例子:房價其實由彳艮多因素決定,比如 size、number of bedrooms、n
13、umber of floors、age of home 等,這里我們假設(shè)房價由4個因素決定,如下圖所示:Size (feet1!Number of bedroomsNumber of floorsAge of home Ivears)Price ($1000)21045145460141632402321534323031S8522136178 + 4a -is 4 I- + -Iaai-我們前面定義過單變量線性回歸的模型:膈(8)=仇)OyX這里我們可以定義出多變量線性回歸的模型:+ 皈偌 2 + + 0nXnCost function 如下:I J(佻Ml)=去丈(標(biāo)()一此)2 i=l如
14、果我們要用梯度下降解決多變量的線性回歸,則我們還是可以用傳統(tǒng)的梯度下降算法進行 計算:Repeat 的快隔加惴記錄陽e知:=0-a交(人如叫_舟依眨”的一玉楠(如_必)即-1.e| 瓣 苗:=住土用3) (simultaneously upd-ate 0j for_i=i7 fJtl為:=的-在*(膈3勺-MWi=l總練習(xí)題:我們想要根據(jù)一個學(xué)生第一年的成績預(yù)測第二年的成績,x為第一年得到A的數(shù)量,y為 第二年得到A的數(shù)量,給定以下數(shù)據(jù)集:xy34214301訓(xùn)練集的個數(shù)是多少? 4個;J(0,1)的結(jié)果是多少?J(0,1) = 1/(2*4)*(3-4)A2+(2-1)A2+(4-3)A2+
15、(0-1)A2 = 1/8*(1+1+1+1) = 1/2 = 0.5我們也可以通過vectorization的方法快速算出J(0,1):dv= :,=8=二昨) = 0= =人_ n伽工)一方=1 01oj -11(機對-面二4 = /皿1)=我3 = /1)另一種線性回歸方法:Normal Equation;Gradient Descent 與 Normal Equation 的優(yōu)缺點;前面我們通過Gradient Descent的方法進行了線性回歸,但是梯度下降有如下特點:(1)需要預(yù)先選定Learning rate;(2)需要多次 iteration;需要 Feature Scalin
16、g;因此可能會比較麻煩,這里介紹一種適用于Feature數(shù)量較少時使用的方法:NormalEquation;當(dāng) Feature 數(shù)量小于 100000 時使用 Normal Equation;當(dāng) Feature 數(shù)量大于 100000 時使用 Gradient Descent;Normal Equation 的特點:簡單、方便、不需要 Feature Scaling;其中Normal Equation的公式:e = (XTX)-1XTy其中表示第 i 個 training example; 表示第i個training example里的第j個feature的值;m %#training exa
17、mple;n %#feature; 舉個實際的例子:Examples:0Size (feet2)Number of bedroomsNumber of floors 旬Age of hom (years)X412104514511416324011534323018522136130004138111112104514514163240L5343230852213630004138X) -*T y一、算法實現(xiàn)由前面的理論,我們知道了用梯度下降解決線性回歸的公式:repeal until coiivergeiice m矗:=% 一驀丈(如例)-妁Oi =伉一驀寸(知(工)-儼),土i=l梯度下降
18、解決線性回歸思路:until convprgpnrA 喝:=侃f ct土81 :一 a 土算法實現(xiàn):ComputeCost 函數(shù):plain view plaincopyfor t=l:num iterstempi = theta(l) - (alpha / m) temp2 二 theta(Z) - (alpha / m) theta(l) = tempi;theta(2) - temp2;endfunction J = computeCost(X, y, theta)2.m = length(y); % number of training examplesJ = 0;prediction
19、s = X * theta;J = 1/(2*m)*(predictions - y)*(predictions - y);7.endgradientDescent 函數(shù):plain view plaincopyfunction theta, J_history = gradientDescent(X, y, theta, alpha, num_iters)% X is m*(n+1) matrix% y is m*1% theta is (n+1)*1 matrix% alpha is a number% num_iters is number of iterators7.8.m = len
20、gth(y); % number of training examplesJ_history = zeros(num_iters, 1); %cost function 的值的變化過程%預(yù)先定義了迭代的次數(shù)12.for iter = 1:num_iters14.temp1 = theta(1)-(alpha/m)*sum(X*theta-y).*X(:,1);temp2 = theta(2)-(alpha/m)*sum(X*theta-y).*X(:,2);theta(1) = temp1;theta(2) = temp2;J_history(iter) =computeCost(X,y, t
21、heta);20.end22.end二、數(shù)據(jù)可視化我們通過算法實現(xiàn)能夠求出函數(shù)h(x),但是我們還需要將數(shù)據(jù)可視化:畫出訓(xùn)練集的散點圖+擬合后的直線;畫出J(theta)為z軸,theta0為x軸,thetal為y軸的三維曲線;畫出(2)的三維曲線的等高線圖;1.畫散點圖+擬合的直線描述:給定ex1data1.txt,文件中有兩列數(shù)據(jù),每一列代表一個維度,第一列代表X,第二列代表 Y,用 Octave畫出散布圖(Scalar Plot),數(shù)據(jù)的形式如下:6.1101,17.5925.5277,9.13028.5186,13.6627.0032,11.8545.8598,6.82338.3829
22、,11.886data = load(ex1data1.txt);%導(dǎo)入該文件,并賦予 data 變量X = data( : , 1 ); Y = data( : , 2);%將兩列分別賦予X和YX = ones(size(X,1),1),X;%在 X 的左邊添加一列 1plot(X,Y,rx,MarkerSize, 4);%畫圖,將 X 向量作為 X 軸,Y 向量作為 Y 軸,每個點用“x”表示,r表示紅點,每個點的大小為4;axis(4 24 -5 25);%調(diào)整x和y軸的起始坐標(biāo)和最高坐標(biāo);xlabel(x);%給 x 軸標(biāo)號為x最后見下圖:%給y軸標(biāo)號為y;(7)ylabel(y);經(jīng)
23、過計算,算出theta值:theta,J_history = gradientDescent(X, y, theta, alpha, num_iters);即可通過:plot(X(:,2), X*theta);%畫出最后擬合的直線5W1520Popifafiicn E City in SlO.OOQsE.Z1ED1 E4.14TZ以上呈現(xiàn)了線性回歸的結(jié)果;以下兩種都是可視化J(theta);2.Surface Plot描述:數(shù)據(jù)如上一題一樣,我們想要繪制出對于這些數(shù)據(jù)的cost function,我們將繪制出三維圖形和contour plot;我們?nèi)绻L制cost function,我們必須
24、預(yù)先寫好cost function的公式:function J = computeCost(X, y, theta)m = length(y);J = 0;predictions = X * theta;J = 1/(2*m)*sum(predictions - y) .A 2);end實現(xiàn):theta0_vals = linspace(-10, 10, 100);%從-10 到 10 之間取 100 個數(shù)組成一個向量theta1_vals = linspace(-1,4, 100);%從-1 到 4 之間取 100 個數(shù)組成一個向量J_vals = zeros(length(theta0_v
25、als), length(theta1_vals); % 初始化 J_vals 矩陣,對于 某個 theta0 和 theta1,J_vals 都有對應(yīng)的 cost function 值;計算每個(theta0,theta1)所對應(yīng)的 J_vals;fori = 1:length(theta0_vals)for j = 1:length(theta1_vals)t = theta0_vals(i); theta1_vals(j);J_vals(i,j) = computeCost(X, y, t);endendfigure;%創(chuàng)建一個圖surf(theta0_vals,theta1_vals,
26、J_vals); %x 軸為 theta0_vals,y 軸為 theta1_vals,z 軸為J_vals;xlabel(theta_0); %添加 x 軸標(biāo)志ylabel(theta_1); %添加 y 軸標(biāo)志此圖而且可以轉(zhuǎn)動;Contour Plot實現(xiàn):theta0_vals = linspace(-10, 10, 100);%從-10 到 10 之間取 100 個數(shù)組成一個向量theta1_vals = linspace(-1,4, 100);%從-1 到 4 之間取 100 個數(shù)組成一個向量J_vals = zeros(length(theta0_vals), length(the
27、ta1_vals); % 初始化 J_vals 矩陣,對于 某個 theta0 和 theta1,J_vals 都有對應(yīng)的 cost function 值;計算每個(theta0,theta1)所對應(yīng)的 J_vals;fori = 1:length(theta0_vals)for j = 1:length(theta1_vals)t = theta0_vals(i); theta1_vals(j);J_vals(i,j) = computeCost(X, y, t);endendfigure;%創(chuàng)建一個圖contour(theta0_vals, theta1_vals, J_vals, log
28、space(-2, 3, 20); % 畫等高線圖xlabel(theta_0); ylabel(theta_1);111765,虬4。砌4.IICZJ如果我們想要在等高線圖上畫出線性回歸的theta0與thetal的結(jié)果,則可以:plot(theta(1), theta(2), rx, MarkerSize, 10, LineWidth, 2);4.畫圖查看Learning Rate是否合理我們在gradientDescent函數(shù)中返回的值里有J_history向量,此向量記錄了每次迭代后cost function的值,因此我們只需要將x軸為迭代的次數(shù),y軸為cost function的值,
29、即可畫圖:(1)theta,J_history = gradientDescent(X, y, theta, alpha, num_iters); figure;plot(1:length(J_history), J_history, -b, LineWidth, 2);xlabel(Number of iterations);ylabel(Cost J);7010H:I liW.59*010相叩1。3ei-OlO宅 1當(dāng)然,我們也可以將不同的alpha值都畫在一張圖上,可以比較取各個alpha時,c ost function 的變化趨勢;(1)alpha=0.01;theta,J1 = gr
30、adientDescent(X, y, zeros(3,1), alpha, num_iters);alpha=0.03;theta,J2 = gradientDescent(X, y, zeros(3,1), alpha, num_iters);alpha=0.1;theta,J3 = gradientDescent(X, y, zeros(3,1), alpha, num_iters);plot(1:numel(J1), J1, -b, LineWidth, 2);plot(1:numel(J2), J2, -r, LineWidth, 2);plot(1:numel(J3), J3, -k, LineWidth, 2);76*010le+010Se*4104e*aio3e102eKH0alpha-0.01aJpha=a.1多元線性回歸其實方法和單變量線性回歸差不多,我們這里直接給出算法:computeCostMulti 函數(shù)plain view plaincopy1. function J = computeCostMulti(X, y, theta)2.m = l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 231-2024 氧化鎵單晶片X 射線雙晶搖擺曲線半高寬測試方法
- T-ZMDS 10022-2024 光學(xué)脊柱測量及姿態(tài)評估設(shè)備
- 二零二五年度名義購房代持合同中的房產(chǎn)繼承與轉(zhuǎn)讓安排
- 2025年度高品質(zhì)車位租賃與社區(qū)設(shè)施管理合同
- 二零二五年度安全生產(chǎn)評價資質(zhì)借用服務(wù)合同
- 2025年度高速公路監(jiān)控系統(tǒng)維保服務(wù)協(xié)議雙聯(lián)
- 二零二五年度解除勞動合同通知書及員工離職后商業(yè)保險權(quán)益處理及終止協(xié)議
- 2025年度電力系統(tǒng)設(shè)備租賃合同模板
- 2025年美業(yè)美容儀器銷售代表入職合同
- 二零二五年度淘寶平臺商家入駐信息保密協(xié)議
- GB/T 24498-2025建筑門窗、幕墻用密封膠條
- 悟哪吒精神做英雄少年開學(xué)第一課主題班會課件-
- 清華大學(xué)第二彈:DeepSeek賦能職場-從提示語技巧到多場景應(yīng)用
- 2025年P(guān)EP人教版小學(xué)三年級英語下冊全冊教案
- 2025年春季學(xué)期教導(dǎo)處工作計劃及安排表
- 2024年江蘇省中小學(xué)生金鑰匙科技競賽(高中組)考試題庫(含答案)
- 新質(zhì)生產(chǎn)力的綠色意蘊
- DL-T5002-2021地區(qū)電網(wǎng)調(diào)度自動化設(shè)計規(guī)程
- 2024年個人信用報告(個人簡版)樣本(帶水印-可編輯)
- 16J914-1 公用建筑衛(wèi)生間
- 2024年長沙幼兒師范高等??茖W(xué)校高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論