《機器學習技術》課件 第六章 線性回歸_第1頁
《機器學習技術》課件 第六章 線性回歸_第2頁
《機器學習技術》課件 第六章 線性回歸_第3頁
《機器學習技術》課件 第六章 線性回歸_第4頁
《機器學習技術》課件 第六章 線性回歸_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單元6線性回歸機器學習電氣與信息工程系CONTENTS

目錄010203任務6.1房價數(shù)據(jù)集導入與數(shù)據(jù)預處理

任務6.2訓練線性回歸模型任務6.3模型評估引例描述

房價可以說是當下民生問題中最引人關注的話題,現(xiàn)在也有眾多專家通過多種手段預測房價。對于學習機器學習的我們,有沒有一種方法可以讓電子計算機去預測房價呢?通過街區(qū)住戶的收入、房型、街區(qū)人口、入住率等因素來預測這個街區(qū)的房價,這時,我們不能使用傳統(tǒng)的分類算法來預測,因為我們想要得到的是連續(xù)的結果,本單元通過一種經典的回歸模型——線性回歸模型來帶大家了解回歸問題的解決方法。圖6-1所述為情景描述。(a)(b)(a:想買房子,不知道明年的房價怎么樣呢?b:我用回歸模型幫你預測一下吧!)圖6-1情景描述任務6.1房價數(shù)據(jù)集導入與數(shù)據(jù)預處理任務情景

加利福尼亞房價數(shù)據(jù)集是sklearn庫自帶的一個經典的房價數(shù)據(jù)集,本任務旨在成功讀取、導入數(shù)據(jù)集,查看數(shù)據(jù)集中數(shù)據(jù)的特征、大小,以及熟練劃分數(shù)據(jù)集。

加利福尼亞房價數(shù)據(jù)集源于1990年加州人口普查的數(shù)據(jù),一共包含20

640條房屋數(shù)據(jù),包括以下8個特征:(1)MedInc:街區(qū)住戶收入的中位數(shù)。(2)HouseAge:房屋使用年數(shù)的中位數(shù)。(3)AveRooms:街區(qū)平均房屋的數(shù)量。(4)AveBedrms:街區(qū)平均的臥室數(shù)目。(5)'Population:街區(qū)人口。(6)AveOccup:平均入住率。(7)Latitude:街區(qū)的緯度。(8)Longitude:街區(qū)的經度。任務布置

實現(xiàn)加利福尼亞房價數(shù)據(jù)集的讀取與解析,要求能夠讀取數(shù)據(jù)的條數(shù)與矩陣大小,并能夠查看數(shù)據(jù)集的一部分數(shù)據(jù)。數(shù)據(jù)集的大小如圖6-2所示。數(shù)據(jù)的前5行如圖6-3所示。圖6-2數(shù)據(jù)集的大小圖6-3數(shù)據(jù)前5行任務布置數(shù)據(jù)集包含的特征及前5行數(shù)據(jù)如圖6-4所示。圖6-4數(shù)據(jù)集包含的特征及前5行數(shù)據(jù)劃分好的測試集數(shù)據(jù)如圖6-5所示。圖6-5劃分好的測試集數(shù)據(jù)知識準備1.加利福尼亞房價數(shù)據(jù)集導入

加利福尼亞房價數(shù)據(jù)集可以從sklearn庫直接導入,sklearn庫會自帶一些數(shù)據(jù)集的讀取方式。課堂隨練6-1讀取sklearn庫自帶的鳶尾花數(shù)據(jù)集。知識準備下載下來的數(shù)據(jù)集的存儲路徑為\Anaconda\Lib\site-packages\sklearn\datasets\data,如圖6-6所示。圖6-6下載下來的數(shù)據(jù)集的存儲路徑知識準備2)當下載的數(shù)據(jù)集較大時,一般不將其直接保存在sklearn庫中,而是采用在線下載的方式,需要聯(lián)網(wǎng)才可以下載,采用datasets.fetch_xxx,使用以下代碼獲取下載路徑:課堂隨練6-2下載加利福尼亞房價數(shù)據(jù)集并查看。知識準備3)sklearn庫可以使用make_xxx函數(shù)來生成數(shù)據(jù)集,該類函數(shù)適用于多種類型任務,舉例如下:make_blobs函數(shù):多類單標簽數(shù)據(jù)集,為每個類分配一個或多個正態(tài)分布的點集。make_classification函數(shù):用于產生多類單標簽數(shù)據(jù)集,為每個類分配一個或多個正態(tài)分布的點集,提供為數(shù)據(jù)添加噪聲的方式,包括利用維度相關性、無效特征及冗余特征等。make_gaussian-quantiles函數(shù):將一個單正態(tài)分布的點集劃分為兩個數(shù)量均等的點集,并將其作為兩類。make_hastie-10-2函數(shù):產生一個相似的二元分類數(shù)據(jù)集

,有10個維度。make_circle函數(shù)和make_moom函數(shù):產生二維二元分類數(shù)據(jù)集,以此測試某些算法的性能,可以為數(shù)據(jù)集添加噪聲,可以為二元分類器產生一些球形判決界面的數(shù)據(jù)。知識準備課堂隨練6-3使用make_xxx函數(shù)生成數(shù)據(jù)集的訓練。知識準備2.數(shù)據(jù)集劃分使用train_test_split函數(shù)進行數(shù)據(jù)集的劃分,在機器學習訓練中,數(shù)據(jù)集一般分為訓練集和測試集(有些情況下還存在驗證集),train_test_split是最常用的數(shù)據(jù)集劃分方法。其中,*arrays表示輸入的是列表、數(shù)組等可索引的序列;train_size表示訓練樣本的大小,數(shù)值為浮點數(shù)表示占總數(shù)據(jù)集的比例,數(shù)值為整數(shù)表示訓練樣本數(shù),數(shù)值為空則表示測試集的補集;test_size表示測試樣本的大小,數(shù)值為浮點數(shù)表示占總數(shù)據(jù)集的比例,數(shù)值為整數(shù)表示測試樣本數(shù),數(shù)值為空則表示訓練集的補集;知識準備random_state表示隨機種子,也就是該組隨機數(shù)的編號,在需要重復試驗的時候,保證得到一組一樣的隨機數(shù)。例如,我們本次試驗和下次代碼循環(huán)到這個位置的時候都想要一樣的隨機數(shù),那就每次都將隨機數(shù)設置為一樣的值,默認值為False,即雖然每次切分的比例相同,但是切分的結果不同。stratify的設置是為了保持劃分前數(shù)據(jù)的分布,若stratify的值為None,則在劃分出來的測試集或訓練集中,類標簽所占的比例是隨機的;若stratify的值不為None,則劃分出來的測試集或訓練集中類標簽所占的比例同輸入的數(shù)組中類標簽所占的比例相同,該設置可以用于處理不均衡的數(shù)據(jù)集。任務實施Step1:導入庫,并導入數(shù)據(jù)集fetch_california_housing。Step2:將數(shù)據(jù)集讀取到DataFrame中,以便查看。Step3:查看一些數(shù)據(jù)集的內容。Step4:劃分測試集與訓練集。任務實施(a)數(shù)據(jù)集下載地址讀取數(shù)據(jù)集如圖6-7所示。(b)數(shù)據(jù)集內容展示圖6-7讀取數(shù)據(jù)集任務6.2訓練線性回歸模型任務情景線性回歸模型是機器學習中最簡單的回歸模型,是所有回歸模型的基礎。分類問題的目標是得到離散型的類別,回歸問題的目標是得到連續(xù)的目標值,如預測銷售額、房價等。本任務旨在使讀者了解線性回歸模型的原理、搭建過程,并使讀者學會使用sklearn庫自帶的函數(shù)搭建線性回歸模型,訓練加利福尼亞房價數(shù)據(jù)集,預測房價并展示。加利福尼亞房價數(shù)據(jù)集如圖6-8所示。圖6-8加利福尼亞房價數(shù)據(jù)集任務布置

要求通過建立線性回歸模型來預測測試樣本值,并輸出線性回歸模型的回歸系數(shù)和截距。圖6-9測試樣本的預測結果

線性加強歸模型的回歸系數(shù)如圖6-10所示。圖6-10線性加強歸模型的回歸系數(shù)知識準備—1.線性回歸的原理1.線性回歸的原理1)一元線性回歸的原理一元線性回歸的原理與初中學過的一元一次方程類似,設x和y為兩個變量,假設y受x變量的影響,其之間的關系為式中,w為回歸系數(shù);b為截距?;貧w的典型例子就是給定數(shù)據(jù)點,擬合出最佳的曲線,這種只包含一個自變量x的模型被稱為一元線性回歸模型,如圖6-11所示。圖6-11一元線性回歸模型(6-1)2)多元線性回歸的原理多元線性回歸研究的是一個因變量與多個自變量之間的關系,多元線性回歸函數(shù)的計算公式為(6-2)知識準備—1.線性回歸的原理知識準備—2.模型評估2.模型評估如何根據(jù)多個樣本

來確定線性回歸模型的w和b呢?線性回歸模型示例如圖6-12所示,對于平面中的n個點可以有無數(shù)條直線來對它們進行擬合,如何選出最合適的直線是我們需要考慮的問題。圖6-12線性回歸模型示例知識準備線性回歸模型的預測可以通過殘差來評估,線性回歸模型殘差示例如圖6-13所示。圖6-13線性回歸模型殘差示例知識準備—2.模型評估知識準備假設選取圖6-12中的一條擬合直線,線上連續(xù)的值為預測值,那么該點的,擬合誤差的計算公式為擬合誤差為因此,最佳的擬合直線應該是使所有樣本總的擬合誤差最小的直線,所有點的殘差可以表示為,殘差總和被定義為模型的損失(Loss)。代價函數(shù)/代價函數(shù)(LossFunction/CostFunction)用于表示模型的預測值和真實值不一致的程度,其計算公式為(6-3)(6-4)知識準備—2.模型評估知識準備(6-3)注意:由式(6-3)發(fā)現(xiàn),殘差是有符號的。在選定直線上方的點,它的殘差總是正的;而在直線下方的點,它的殘差總是負的。如果將殘差簡單地相加,那么正的殘差和負的殘差就會相互抵消,這樣做的話,有可能每個樣本單獨的殘差都很大,而計算得到的殘差的和卻很小。這樣的直線顯然不滿足我們的預期,因此代價函數(shù)的值應該是一個非負數(shù),那么我們很容易想到可以使用絕對值來消除殘差中符號的影響。用殘差絕對值的和作為代價函數(shù),可以避免正負誤差相互抵消的問題。知識準備—2.模型評估知識準備用殘差絕對值的和表示的損失函數(shù)為但是,求殘差和的最小值是一個求最值的問題。在求函數(shù)的最值時,一般要進行求導運算,而絕對值是不利于求導運算的。為了消除絕對值運算,可以將式(6-5)中的絕對值改為平方,使得所有樣本點的殘差平方和最小。用殘差平方和表示的損失函數(shù)為(6-6)(6-5)知識準備—2.模型評估知識準備經常將代價函數(shù)寫為式中,m為訓練集的數(shù)量;為x的i個元素;

為y的第i個元素;為第i個預測值,注意:有時部分版本也為了方便求導運算,直接在Loss前面加上1/2。(6-7)知識準備—2.模型評估知識準備(6-6)式(6-6)稱為平方和代價函數(shù),是機器學習中最常見的代價函數(shù)。平方和代價函數(shù)示意圖如圖6-14所示。圖6-14平方和代價函數(shù)示意圖知識準備—2.模型評估知識準備—3.最小二乘法求解回歸模型3.最小二乘法求解回歸模型下面采用最小二乘法計算w和b,假設給定一組樣本值要求回歸函數(shù)盡可能擬合這組值,普通的最小二乘法則會選擇使殘差平方和達到最小值的回歸函數(shù)。我們發(fā)現(xiàn),式(6-5)是關于w和b的二元二次方程。一元二次方程的示意圖如6-15所示。,圖6-15一元二次方程的示意圖知識準備—3.最小二乘法求解回歸模型二元二次方程在三維空間中的示意圖如圖6-16所示。圖6-16二元二次方程在三維空間中的示意注意:該問題的解決依賴于凸函數(shù)問題的解決,其在微積分中的解釋為,當代價函數(shù)的導數(shù)為0時,代價函數(shù)的取值最小。在式(6-6)的基礎上對w和b分別求偏導,得到(6-8)(6-9)代入樣本值就可以求得w和b。知識準備—4.梯度下降算法求解回歸模型4.梯度下降算法求解回歸模型梯度下降算法也是將代價函數(shù)最小化的常用方法之一,如果是線性回歸,那么代價函數(shù)的形狀如圖6-16所示,是碗狀結構,即只存在一個數(shù)據(jù)最小的點。而梯度下降算法的原理是將代價函數(shù)理解為一座山,假設站在某個山坡上,向四周觀察,判斷往哪個方向走一步能夠下降得最快。根據(jù)式(6-7),梯度下降的實現(xiàn)步驟如下:(1)確定“步伐”大小a,一般稱之為學習率(LearningRate)。(2)初始化和,這決定了我們從哪個山坡上開始下坡,選擇不同的位置進行梯度下降的示意圖如圖6-17所示。圖6-17選擇不同的位置進行梯度下降的示意圖(3)根據(jù)更新和,使得逐漸減小,q

更新如圖6-18所示。知識準備—4.梯度下降算法求解回歸模型圖6-18

q

更新知識準備—4.梯度下降算法求解回歸模型(4)當下降的值低于定好的閾值或者條件時,停止下降。在實際的應用過程中,根據(jù)每次梯度下降過程中樣本數(shù)的不同,通常存在3種常用的梯度下降方法,樣本數(shù)的不同會影響每次學習過程的準確性和學習時間。①批量梯度下降(BatchGradientDescent,BGD)算法。批量梯度下降算法是梯度下降算法中最常用的形式,具體做法就是在更新參數(shù)時使用所有的m個樣本來更新。更新公式為梯度下降算法最終得到的是局部極小值。而線性回歸的代價函數(shù)為凸函數(shù),有且只有一個局部最小值,則這個局部最小值一定是全局最小值。因此,在線性回歸中使用批量梯度下降算法,一定可以找到一個全局最佳解。使用批量梯度下降算法可以求出全局最佳解,易于并行實現(xiàn),并且總體迭代次數(shù)不多,方便統(tǒng)計,但是當樣本數(shù)目很多時,訓練速度會較慢,每次迭代會耗費大量的時間。知識準備—4.梯度下降算法求解回歸模型②隨機梯度下降(StochasticGradientDescent,SGD)算法。隨機梯度下降算法與批量梯度下降算法的原理類似,區(qū)別在于求梯度時沒有用所有的m個樣本的數(shù)據(jù),而是僅僅選取一個樣本i來求梯度。更新公式為隨機梯度下降算法每次隨機選擇一個樣本來更新模型參數(shù),這種方式的優(yōu)點是每次迭代量很小,訓練速度很快,同時隨機梯度下降算法可能從一個局部極小值點到另一個更低的局部極小值點;缺點是可能每次更新不會按照一定正確的方向進行,可能帶來優(yōu)化波動,也可能最終結果并不是全局最小值點。知識準備—4.梯度下降算法求解回歸模型③小批量梯度下降(Mini-BatchGradientDescent,MBGD)算法。小批量梯度下降算法同時參考了批量梯度下降算法和隨機梯度下降算法,選取一部分(少量)樣本進行迭代,例如對于總體m個樣本,選取其中x個樣本進行迭代,多數(shù)情況下可以選取x=10、20、100等。更新公式為使用小批量梯度下降算法在批量梯度下降算法和隨機梯度下降算法中間取得了一定的均衡效果。知識準備—4.梯度下降算法求解回歸模型(5)算法調優(yōu)。梯度下降算法,可以在以下幾個地方進行優(yōu)化調整:①算法的步長選擇。步長一般選擇1,但是在實際的應用過程中,步長的選擇取決于樣本數(shù)據(jù),我們可以采取多次實驗比較代價函數(shù)結果的方法進行選擇。在步長逐漸增大時,迭代速度加快也會導致“跨過”某些最佳解到達另一個解。步長越小,迭代速度就越慢,系統(tǒng)效率也就越低。在步長的選擇方面,可以依次選擇0.01、0.1、1、10、100進行測試,再在合適的區(qū)間內進行微調。②算法參數(shù)的初始值選擇。初始值不同,獲得的最小值也有可能不同,因此梯度下降算法求得的只是局部最小值,若代價函數(shù)是凸函數(shù),則該值一定是最佳解。由于有獲得局部最佳解的風險,需要多次用不同的初始值運行算法,選擇使得代價函數(shù)最小化的初始值。知識準備—4.梯度下降算法求解回歸模型③歸一化。由于樣本不同特征的取值范圍也不同,可能導致迭代速度很慢,為了減少特征取值的影響,可以將特征數(shù)據(jù)歸一化,也就是對于每個特征x,求出它的期望和標準差std(x),然后轉化為這樣特征的新期望為0,新方差為1,迭代速度可以大大加快。。知識準備—5.梯度下降算法與最小二乘法的對比梯度下降算法最小二乘法缺點:(1)需要選擇學習率a(2)需要多次迭代。(3)當特征值的范圍相差太大時,需要歸一化優(yōu)點:當特征數(shù)n很大時,能夠較好地工作優(yōu)點:(1)不需要選擇學習率a。(2)不需要多次迭代。(3)不需要歸一化。缺點:當特征數(shù)n很大時,運算得很慢,因為求逆矩陣的速度比較慢通常情況下,當n<10000時,用最小二乘法;當n≥10000時,用梯度下降算法。對于一些復雜的算法,只能用梯度下降算法。知識準備—5.梯度下降算法與最小二乘法的對比代碼實例1:批量梯度下降算法知識準備—5.梯度下降算法與最小二乘法的對比代碼實例2:隨機梯度下降算法知識準備—5.梯度下降算法與最小二乘法的對比代碼實例3:小批量梯度下降算法任務6.3模型評估任務情景

評估線性回歸模型優(yōu)劣的最好方式是利用方差,除了利用殘差平方和,還存在一些較為常用的評估方法。下面將采用幾種關鍵方法對線性回歸模型進行評估。任務布置要求通過幾種常見的評估線性回歸模型的方法對模型進行評估。MSE的值如圖6-19所示。圖6-19MSE的值R-squre評估模型的誤差如圖6-20所示。圖6-20R-squre評估模型的誤差任務情景使用曲線圖對比模型預測值與真實標簽,如圖6-21所示。圖6-21模型預

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論