機器學習WEEK5線性回歸

2021-10-01 11:28:38 字數 1860 閱讀 6454

線性回歸就是將輸入項分別乘以一些常量,在將結果加起來得到輸出。 假定輸入資料存放在矩陣 x 中,而回歸係數存放在向量 w 中。 那麼**結果可以通過y=x的轉置*w得出。所以我們求解線性回歸模型的核心就在於求解w,如何求呢?首先,我們一定是希望**出來的值和實際值之間的誤差越小越好,所以我們評判w好壞,就可以採用實際值與真實值之差表示,但是這個差有正有負,為了避免正負相互抵消的情況,我們採用平方誤差(也就是最小二乘法)

平方誤差,我們也可以叫他損失函式。我們現在就是要以w為變數求解損失函式的最小值。

我們可以對w進行求導,令其為0,可得到我們所要求解w所需的計算公式。

最小二乘法: 最小二乘法是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。

(1) 收集資料:採用任意方法收集資料。

(2) 準備資料:回歸需要數值型資料,標稱型資料將被轉成二值型資料。

(3) 分析資料:繪出資料的視覺化二維圖將有助於對資料做出理解和分析,在採用縮減法 求得新回歸係數之後,可以將新擬合線繪在圖上作為對比。

(4) 訓練演算法:找到回歸係數。

(5) 測試演算法:使用r2或者**值和資料的擬合度,來分析模型的效果。

(6) 使用演算法:使用回歸,可以在給定輸入的時候**出乙個數值,這是對分類方法的提 公升,因為這樣可以**連續型資料而不僅僅是離散的類

線性回歸的乙個問題是有可能出現欠擬合現象,因為它求的是具有小均方誤差的無偏估 計。顯而易見,如果模型欠擬合將不能取得好的**效果。所以有些方法允許在估計中引入一 些偏差,從而降低**的均方誤差。

其中的乙個方法是區域性加權線性回歸。在該演算法中,我們給待**點附近的每個點賦予一定的權重;在這個子集上基於 小均方差來進行普通的回歸。

區域性加權線性回歸的基本思想:設計代價函式時,待**點附近的點擁有更高的權重,權重隨著距離的增大而縮減——這也就是名字中「區域性」和「加權」的由來。

權重如何求取:

區別在於此時的代價函式中多了乙個權重函式w,這個w要保證,越靠近待測點附近權值越大,越遠離待測點權值越小。 這個函式w一般取用:x是待測點,k控制了權值變化的速率,k越大,影象越瘦,離x越遠權值下降越快。

增加了計算量,對每個資料點做**的時候都必須使用整個資料集合。有點類似與kmean演算法

如果資料的特徵比樣本點還多,會導致在計算(xtx)-1的時候會出錯。也就是說輸入資料的矩陣x不是滿秩矩陣。非滿秩矩陣在求逆的時候會出錯。為了解決這個問題所以引入了嶺回歸。

嶺回歸就是在矩陣x.tx上加乙個λi從而使得矩陣非奇異,進而能對x.tx + λi求逆。其中矩陣i是乙個m×m的單位矩陣,對角線上元素全為1,其他元素全為0。而λ是乙個使用者定義的 數值。在這種情況下,回歸係數的計算公式將變成:

通過引入λ來限制了所有w之和,通過引入該懲罰項,能夠減少不重要的引數,這 個技術在統計學中也叫做縮減(shrinkage)。

嶺回歸中的嶺是什麼?單位舉證i的對角線上面都是1,其他元素都是0。看起來就像是1組成的嶺。

λ非常小時,係數與普通回歸一樣。而λ非常大時, 所有回歸係數縮減為0。可以在中間某處找到使得**的結果好的λ值

前向逐步回歸演算法可以得到與lasso差不多的效果,但更加簡單。它屬於一種貪心演算法,即每 一步都盡可能減少誤差。一開始,所有的權重都設為1,然後每一步所做的決策是對某個權重增 加或減少乙個很小的值。

這個演算法感覺很像感知器訓練的思想啊。

資料標準化,使其分布滿足0均值和單位方差 在每輪迭代過程中:

設定當前最小誤差lowesterror為正無窮

對每個特徵:

增大或縮小:

改變乙個係數得到乙個新的w

計算新w下的誤差

如果誤差error小於當前最小誤差lowesterror:設定wbest等於當前的w

將w設定為新的wbest

這兩周的學習由於考試拉下了許多,這周之後一定補上落下的學習進度。

C 程式設計學習筆記 week5

定義乙個日期結構體,該結構體成員有年 月 日3個資料。要求從鍵盤輸入年月日,判斷該年是否閏年 函式呼叫 並以年 月 日格式輸出日期以及是否閏年 函式呼叫 includeusing namespace std class date int date whichleaps int n void date...

作業記錄 WEEK5

triplet計算細節 訓練過程中的呼叫 import torch from torch.autograd import function from torch.nn.modules.distance import pairwisedistance class tripletloss functio...

Python學習week5 樹的特性

1 樹 非線性結構,每個元素可以有多個前驅和後繼 2 樹的結點 樹種的資料元素 結點的度 結點擁有子樹的數目 1 二叉樹 每個結點最多2棵子樹 二叉樹是有序樹,左子樹 右子樹是順序的,不能交換次順 2 滿二叉樹 一顆二叉樹的所有分支結點都存在左子樹和右子樹,並且所有葉子結點只存在最下面一層 k為深度...